CNN不具备平移不变性?为何?
这一部分主要参考18年的一篇论文1, 论文中通过实验, 阐述了CNN不具备平移不变性, 图形通过细微的平移, 旋转, 像素点更改, 会使得结果发生巨大的改变.
markdown
在上图中, 做者分别作了平移, 缩放, 视频时间不一样的实验, 发现任一修改都会使得最后的分类结果发生很大的变化.网络
- 那么为何会发生这种现象呢?
咱们都知道, CNN的卷积操做原本带有平移不变形的属性, 因此论文的研究目标就是什么结构破坏了CNN的平移不变形.
论文的主要贡献以下:架构
- 现代深度卷积神经网络在图像中的小目标发平生移后对其类别的判断会产生很是大的偏差,这与人们设计深度卷积网络的初衷并不一致。
- 网络层数越深,这种错误越容易发生。
- 这种错误的发生是因为现代卷积神经网络的架构设计没有听从经典的采样定理以至于泛化能力不能获得保证。
- 通用的图像数据集中的统计偏差使得CNN难以学习到其中的变换不变性(invariant to these transformations)。
上述内容的结论就是: CNN的泛化能力不如人类, 经过CNN经过简单的平移,缩放等操做并不能使得网络学习到平移不变形, 这种现象和下采样和数据误差有关.
下面举例解释, 下采样是罪魁祸首的缘由:学习
shift为0时的Maxpooling以下:
图片来源2
向左平移1时的Maxpooling:
spa
只是平移了一个位置, 可是maxpooling的结果发生了巨大的变化, 这也解释了CNN不具备平移不变形的缘由.
.net
如何缓解平移不变性问题?
这一部分的内容参考一篇2019年的论文3
做者将Pooling采样分解为两个步骤: 首先取最大值, 而后下采样
经过卷积低通滤波操做, 减缓最大值的采起问题.
架构设计
结果以下:
设计