大致看了看这个paper, 很novel.

我的观点: 在traditional convolutional neural netwoks 中,我们通常会depend 于 extracting features.       而本paper把 hand-crafted 和 feature extraction 结合在了一起,用于处理 invariance of various inputs.

spatial transformer 可以包括:平移、旋转、放缩等操作。      在数学上的名称有: affine transformasion ,另外还有:projective transformation、 piece-wise affine、 thin plate spline等。

实施方法:

列举文中的二维的例子:

对于二维的图片识别中,如果图片是旋转的怎么办?被平移怎么办?(通常做法就是不管输入如何,我就统统原样输入给CNN,让其学习 features), 现在我们可以手动进行纠正吧,方法就是通过 affine transformation, 这个变换需要参数的,参数如何确定只能靠人了。。。 而这个 paper的做法为根据输入的图片让 auxiliary 学习这个参数,然后进行 affine transformation(这个是提前决定好的),然后再进行原来的操作。          另个,这个transformer 可以应用于inputs 上,也可以用于feature maps上。

具体:

第一步:  利用一个 localization network 来学习后面进行transformer 需要的参数;  这个 network 可以是fully-connected 也可以是 convolutional neural networks, 两个网络最后都会通过一个regression layer进行输出参数;

注意:  一开始,我认为这个参数的训练也是 supervise的,即训练的时候给定对应每一个输入的参数,不过我认为错了,   训练过程中并没有已知的参数, 而是像其它的网络参数一下通过back-propagetion进行训练。    既然如此,我认为这个参数的初始化绝对不一样,一开始应该都设为 idnetity 变换的相应参数;

第二步: 有了第一步的transformer的参数,这一步进行求出这个 transformer 的映射来。 用文中的方法就是求出:  sampling grid(原像素点的位置组成的grid)与regular grid(变换以后的像素点组成的grid).

通常的作法: 求出从输入点到输出点的位置的映射。    本文的作法: 学习出从输出点到输入点的位置的映射。 (通常:输入与输出这个映射矩阵互为逆)

文中这么做的好处:    我们可以保证的是:输出的每一个像素点的值来自输入的像素点或者通过输入像素点的插值得到。  反过来就不操作了。 所以呢,应该求从 regular grid 至 sampling grid 的映射;  这一点很重要,也很容易范错的;

从 regular grid 至 sampling grid 的映射矩阵的参数就是第一步求出来的参数组成了;

第三步:不可能永远可以映射到输入的像素点,所以呢,就需要进行插值了, 文中的 differentiable image samling介绍了一个简单的插值方法(双张线性插值,在求像素的value时,会用到相关的公式), 并且证明了这个过程是可以求导的, 意思就是可能通过 back-propagation algorithm 进行训练;

整个过程:

用文中一个图表示一下:

这个图画的很简单;

我认为的核心:

这篇文章引入了 hand-crafted的 transformer(如, affine transformer).  但是呢,相关的参数是通过网络训练得到的;

(这个不算):另外, 求不连续的函数导数时,需要用于sub-gradient(子梯度,我需要了解一下)

不清楚的地方:

通过网络训练,学习到的tansformer的相关参数的含义,是否就是我们希望得到的 spatial transformer 呢?? 文中的实验结果表明了,是。如下图所示(第二个图):

即然是,这个参数是怎么学到的呢,没有引用相应的 参数的label啊。。 纯粹通过 back-propagation algorithm .           这个让我有点惊讶!!!!!!!!

引用文献:Jaderberg M, Simonyan K, Zisserman A. Spatial transformer networks[C]//Advances in Neural Information Processing Systems. 2015: 2017-2025.

spatial transformer networks 这篇论文的更多相关文章

  1. [论文理解] Spatial Transformer Networks

    Spatial Transformer Networks 简介 本文提出了能够学习feature仿射变换的一种结构,并且该结构不需要给其他额外的监督信息,网络自己就能学习到对预测结果有用的仿射变换.因 ...

  2. 论文笔记:空间变换网络(Spatial Transformer Networks)

    2015, NIPS Max Jaderberg, Karen Simonyan, Andrew Zisserman, Koray Kavukcuoglu Google DeepMind 为什么提出( ...

  3. 深度学习方法(十二):卷积神经网络结构变化——Spatial Transformer Networks

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.机器学习技术感兴趣的同学加入. 今天具体介绍一个Google ...

  4. Spatial Transformer Networks(空间变换神经网络)

    Reference:Spatial Transformer Networks [Google.DeepMind]Reference:[Theano源码,基于Lasagne] 闲扯:大数据不如小数据 这 ...

  5. (转载)理解Spatial Transformer Networks

    理解Spatial Transformer Networks 转载于:知乎-SIGAI 书的购买链接 书的勘误,优化,源代码资源 获取全文PDF请查看:理解Spatial Transformer Ne ...

  6. STN(Spatial Transformer Networks)

    url: https://arxiv.org/abs/1506.02025 year:2015 blog: https://kevinzakka.github.io/2017/01/10/stn-pa ...

  7. Spatial Transformer Networks

    参考:http://blog.csdn.net/xbinworld/article/details/69049680 论文的关键在理解这句话: 先通过V中坐标(xtarget,ytarget)以此找到 ...

  8. Graph Transformer Networks 论文分享

    论文地址:https://arxiv.org/abs/1911.06455 实现代码地址:https://github.com/ seongjunyun/Graph_Transformer_Netwo ...

  9. GN算法---《Community structure in social and biological networks》这篇论文讲了什么?

    用中文记下这篇论文的大致意思,以防止忘了.好记性不如烂笔头! 摘要:最近的一些研究在研究社交网络或WWW.研究者都集中于研究网络的“小世界性”,“幂率分布特性”,“网络传递性”(聚类性吧).本文提出网 ...

随机推荐

  1. nginx配置长连接

    http { keepalive_timeout 20; --长连接timeout keepalive_requests 8192; --每个连接最大请求数 } events { worker_con ...

  2. [Windows Azure] How to Configure Cloud Services

    How to Configure Cloud Services To use this feature and other new Windows Azure capabilities, sign u ...

  3. 【嵌入式】FS2410移植U-Boot-1.1.6

    移植环境 硬件平台:FS2410 U-Boot版本:u-boot-1.1.6 编译器:arm-linux-gcc version 3.4.1 U-Boot主要目录结构    U-Boot的 stage ...

  4. 【教程】Source Insight 关联 .S文件,汇编文件

    加载.s汇编文件 做ARM嵌入式开发时,有时得整汇编代码,但在SI里建立PROJECT并ADD TREE的时候,根据默认设置并不会把该TREE里面所有汇编文件都包含进来,默认只加了.inc和.asm后 ...

  5. 网络广告CPS/CPC/CPV/CPM/CPA分别是什么意思

    CPA:注册广告(一般按用户来计算)CPC:点击广告(一般按一千个ip计算)CPS:消费广告(用户通过你的网站中投放的广告,达成消费,有提成)CPM:展示广告(展示广告,一般的视频比较多)CPV:按照 ...

  6. 如何添加Samba用户

    Window系统连上我们的开发机Linux,自然需要在Samba里添加一个新用户. linux-06bq:/usr/local/services/samba/bin # ./smbpasswd -a ...

  7. 【X-Forwarded-For】WEB修改访客IP

    X-Forwarded-For(XFF)是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段. Squid 缓存代理服务器的开发人员最早引入了这一HT ...

  8. spring 强制采用cglib进行代理

    spring对AOP的支持 *如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP* 如果目标对象实现了接口,可以强制使用CGLIB实现AOP*如果目标对象没有实现了接口,必须采用CGL ...

  9. DCHP是什么意思

    不是DCHP,应该是DHCP. DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部 ...

  10. JSP怎么将表单提交到对应的servlet

    昨天学习了这些内容,今天做一下分享吧,个人感觉挺乱的....呵呵,其实没事,慢慢就好了.难的不会,会的不难嘛!努力+认真就可以了,相信大家都可以的!加油!!! 下面的图是我用myeclipse建立的项 ...