大致看了看这个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. 《java虚拟机》汇总所有关键要点

    一  .java虚拟机底层结构详解 我们知道,一个JVM实例的行为不光是它自己的事,还涉及到它的子系统.存储区域.数据类型和指令这些部分,它们描述了JVM的一个抽象的内部体系结构,其目的不光规定实现J ...

  2. linux怎么关闭iptables linux如何关闭防火墙

    Linux系统下面自带了防火墙iptables,iptables可以设置很多安全规则.但是如果配置错误很容易导致各种网络问题,那么如果要关闭禁用防火墙怎么操作呢,咗嚛本经验以centos系统为例演示如 ...

  3. 【嵌入式】S3C2410平台移植linux 2.6.14内核

    小续 第一次接触内核的东西,有点小激动啊 激动归激动,这实验还是要继续做下去,书上三两句话就带过去的,剩下的就留给我们了,着实考验动手能力啊 当编译过内核之后,发现这个过程也不复杂嘛(复杂的是内核的配 ...

  4. java只使用try和finally不使用catch的原因和场景

    JDK并发工具包中,很多异常处理都使用了如下的结构,如AbstractExecutorService,即只有try和finally没有catch. class X { private final Re ...

  5. Mac下使用su命令提示sorry

    Mac下使用su命令提示sorry,解决办法如下: ➜ Downloads su Password: su: Sorry 谷歌之,两个解决方式: sudo su - # 输入开始第一个创建用户的密码 ...

  6. LeetCode: Distinct Subsequences 解题报告

    Distinct Subsequences Given a string S and a string T, count the number of distinct subsequences of  ...

  7. win8 无法显示桌面,运行explorer.exe 提示 0xc0000018 异常 解决办法

    win8 无法显示桌面,运行explorer.exe 提示 0xc0000018 错误 解决方法改注册表.这个就是DB03.EXE引起的. cmd打开注册表:regedit找到注册表"HKE ...

  8. MBCS与Unicode的转换

    一.绪 其实刚开始编程的时候我不太喜欢用Unicode编码,所以比较喜欢 VC6.0,即使使用VS2010,也会设置为未设置模式. 后来,没办法的接触了些Unicode的编程的东西,必须得研究字符集的 ...

  9. linux跑火车的命令sl

    http://forum.ubuntu.org.cn/viewtopic.php?t=250890 ubuntu下可以通过 apt-get install sl 安装.执行sl会出来什么呢?帖一下: ...

  10. One-hot 编码/TF-IDF 值来提取特征,LAD/梯度下降法(Gradient Descent),Sigmoid

    1. 多值无序类数据的特征提取: 多值无序类问题(One-hot 编码)把“耐克”编码为[0,1,0],其中“1”代表了“耐克”的中 间位置,而且是唯一标识.同理我们可以把“中国”标识为[1,0],把 ...