大致看了看这个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. studying Bitcoin

    https://github.com/bitcoinbook/bitcoinbook/blob/develop/book.asciidoc https://github.com/bitcoin/bip ...

  2. Kprobes

    https://landley.net/kdocs/ols/2007/ols2007v1-pages-215-224.pdf https://www.kernel.org/doc/Documentat ...

  3. 最全Java锁详解:独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁

    在Java并发场景中,会涉及到各种各样的锁如公平锁,乐观锁,悲观锁等等,这篇文章介绍各种锁的分类: 公平锁/非公平锁 可重入锁 独享锁/共享锁 乐观锁/悲观锁 分段锁 自旋锁 01.乐观锁 vs 悲观 ...

  4. 银联在线支付B2C UnionPay.NET

    新春即将来临,首先给大家拜个早年,祝攻城狮们新年快乐.万事如意.合家欢乐.团团圆圆.幸福健康.来年更能大展宏图 实现各自的梦想! 同时预祝各大科技公司大佬们事业蒸蒸日上.公司转型突破创新.冲出突围带领 ...

  5. .NET微信扫码支付模式二API接口开发测试

    主要实现微信扫码支付,官网的SDKdemo 就不要使用 一直不能调试通过的,还是自己按照API接口文档一步一步来实现,吐槽下微信一点责任感都木有,能不能demo搞个正常的吗,不要坑惨了一大群码农们有点 ...

  6. 【硅谷问道】 WWDC 17: 开发者的最初观感

    [硅谷问道] WWDC 17: 开发者的最初观感 前言 每年的 WWDC 都是 iOS 开发者集体高潮的时刻.第一天的 WWDC 带来了全新的 iOS 11.MacOS.tvOS 和 watchOS, ...

  7. 【Delphi】@,^,#,$特殊符号意义

    概述 ^: 指针 @: 取址 #: 十进制符 $: 十六进制符   @ :取址运算符 var int :integer; p :^integer; begin new(P); int :=; p := ...

  8. 【线程】linux之thread错误解决方案

      1.错误现象:   undefined reference to 'pthread_create' undefined reference to 'pthread_join' 2.问题原因: pt ...

  9. linux和windows共享鼠标键盘

    先说下原因,因为无线鼠标突然没电了,需要在两台PC间共享鼠标.好吧查找下方案,最后选择Synergy. Synergy 特别说明下,Synergy是开源软件,只是近期修改为下载付费模式. Synerg ...

  10. RedHat下安装Python开发环境

    Linux RedHat下安装Python2.7.pip.ipython环境.eclipse和PyDev环境 准备工作,源Python2.6备份: 根据which python具体目录而定,进行备份 ...