深度学习系列
第一篇 局部最优点+鞍点+学习率的调节
第二篇 并行计算 深度学习 机器学习
第三篇 长短期记忆网络(LSTM)是什么怎么工作的呢?
第四篇 Dropout解析 代码实现
第五篇 Auto-encoder 自编码器
第六篇 ResNet,Xception,DenseNet优缺点对比
第六篇 STM网络(Spatial Transformer Network)常见疑问解答
前言
网上有很多资料讲解STN网络,但是很多都是根据老师的视频讲解,有一些细节并不是很理解,这里将本人学习过程中常见的问题提出。如果有不懂,大家可以在评论区评论,我会更新博客。
这篇博客的前提是已近初步了解STN网络的基础上看的,如果您还没了解,可以看李宏毅老师的课程或者看下面的这篇博客,我觉得归纳得不错
详细解读Spatial Transformer Networks(STN)一篇文章让你完全理解STN了
使用最简单的mnist数据集进行举例
一、为什么STN就能刚好识别到mnist数据集上的数字进行旋转或者放大。
我们知道STN有一个6个数字的仿射变换的参数,通过这个参数,就能达到旋转等效果。但是对于STN来说,这些参数只是一堆数字,它并不知道是什么操作。这个参数好,最后的loss就小,不好则修改。它按照这个参数进行变化,如果不好,则会通过反向传播进行修改,这个数值的修改可能从旋转变成放大。
二、根据仿射变换参数得到的采样网格是什么?
采样网格(sampling grid)用于在输入图像的坐标系和输出图像的坐标系之间进行映射。也就是输出图像上的位置 ( x ′ , y ′ ) (x', y') (x′,y′),可以通过公式计算其在输入图像上的对应位置 ( x , y ) (x, y) (x,y),网格的大小和原图像一样。
在代码中就是有一个函数,输入仿射变换参数和输入图像大小,得到一个网格,再用另一个函数,根据这个网格采样出新的图像。
三、这个图看不懂
其实只要这样子看
对于1.6和2.4,不应该看成x和y,应该看成行和列,这样子就不会乱。
总结
以上就是我个人对STM网络(Spatial Transformer Network)常见疑问的解答,有什么疑问可以在评论区补充!