(DeepLearning) CNN平移不变性的研究? 如何避免?

(DeepLearning) CNN平移不变性的研究? 如何避免?_第1张图片

CNN不具有平移不变性?为什么?

这一部分主要参考18年的一篇论文1, 论文中经过实验, 阐述了CNN不具有平移不变性, 图形经过细微的平移, 旋转, 像素点更改, 会使得结果发生巨大的改变.
(DeepLearning) CNN平移不变性的研究? 如何避免?_第2张图片

在上图中, 作者分别做了平移, 缩放, 视频时间不同的实验, 发现任一修改都会使得最后的分类结果发生很大的变化.

  • 那么为什么会发生这种现象呢?
    我们都知道, CNN的卷积操作本来带有平移不变形的属性, 所以论文的研究目标就是什么结构破坏了CNN的平移不变形.

论文的主要贡献如下:

  • 现代深度卷积神经网络在图像中的小目标发生平移后对其类别的判断会产生非常大的误差,这与人们设计深度卷积网络的初衷并不一致。
  • 网络层数越深,这种错误越容易发生。
  • 这种错误的发生是由于现代卷积神经网络的架构设计没有遵从经典的采样定理以致于泛化能力不能得到保证。
  • 通用的图像数据集中的统计误差使得CNN难以学习到其中的变换不变性(invariant to these transformations)。
    上述内容的结论就是: CNN的泛化能力不如人类, 通过CNN通过简单的平移,缩放等操作并不能使得网络学习到平移不变形, 这种现象和下采样数据偏差有关.

下面举例解释, 下采样是罪魁祸首的原因:

shift为0时的Maxpooling如下:
(DeepLearning) CNN平移不变性的研究? 如何避免?_第3张图片
图片来源2
向左平移1时的Maxpooling:

(DeepLearning) CNN平移不变性的研究? 如何避免?_第4张图片
只是平移了一个位置, 但是maxpooling的结果发生了巨大的变化, 这也解释了CNN不具有平移不变形的原因.

(DeepLearning) CNN平移不变性的研究? 如何避免?_第5张图片

如何缓解平移不变性问题?

这一部分的内容参考一篇2019年的论文3
作者将Pooling采样分解为两个步骤: 首先取最大值, 然后下采样
通过卷积低通滤波操作, 减缓最大值的采取问题.
(DeepLearning) CNN平移不变性的研究? 如何避免?_第6张图片

结果如下:
(DeepLearning) CNN平移不变性的研究? 如何避免?_第7张图片

Ref


  1. Why do deep convolutional networks generalize so poorly to small image transformations? [paper] ↩︎

  2. 输入到CNN中的图像为什么不具有平移不变性?如何去解决? [知乎] ↩︎

  3. Making Convolutional Networks Shift-Invariant Again [paper] ↩︎

你可能感兴趣的:(#,3.1,深度学习之基础网络)