大致看了看这个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. Windows: 打开关闭网络连接的方法

    在Cmd中键入 netsh interface set interface name="本地连接" admin=disablednetsh interface set interf ...

  2. Java 虚拟机类加载器

    虚拟机设计团队把类加载阶段张的”通过一个类的全限定名来获取此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类.实现这个动作的代码模块称为”类加载器”. ...

  3. Win7 下面升级VS2017 vs_community install Microsoft.Windows.D3DCompiler.Msu.Win7

    因为.NET Framework 4.7 WPF 功能采用D3DCompiler_47.dll依赖项.默认情况下,此 D3DCompiler_47.dll 并不是存在于 Windows 7 SP1,W ...

  4. 新书《深入应用C++11:代码优化与工程级应用》出版,感谢支持

    经过一年的编写,这本书终于和大家见面了, 已经由机械工业出版社出版,希望本书能给学习C++尤其是C++11的朋友们更多的帮助. 关于C++11 在StackOverflow的最近一次世界性调查中,C+ ...

  5. 李洪强iOS开发之静态库的打包一

    李洪强iOS开发之静态库的打包一 //静态库一般做一下几种事情 //1 工具类 算法逻辑 新建工具类LHQTools 定义类方法 + (NSInteger)sumWithNum1: (NSIntege ...

  6. CR, LF, CR/LF 回车 换行

    [时间:2016-07] [状态:Open] 本文主要介绍"回车"(Carriage Return)和"换行"(Line Feed)这两个概念的来历和区别. C ...

  7. Makefile常用万能模板(包括静态链接库、动态链接库、可执行文件)

    本文把makefile 分成了三份:生成可执行文件的makefile,生成静态链接库的makefile,生成动态链接库的makefile. 这些makefile都很简单,一般都是一看就会用,用法也很容 ...

  8. maven invalid loc header

    项目部署之后出现如题错误 清除maven资源库原有的jar,重新下载即可解决

  9. Python操作SQLAlchemy之连表操作

    多对一连表操作 首先有两个知识点: 改变数据输出的方式:可以在表的类中定义一个特殊成员:__repr__,return一个自定义的由字符串拼接的数据连接方式. 数据库中表关系之间除了MySQL中标准的 ...

  10. Spring boot 报错 Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.

    在实际开发中修改别人的代码,发现了这个报错,后来发现是因为pom.xml里面 只要将注释掉的部分注释掉就好了.