卷积层提取的特征具有平移不变性

1. 什么是不变性

不变性是指目标发生了变换,但是你依然可以识别出来。对于图像处理任务来说,这是一种很好的特性。图像中的目标即使被平移、旋转或者缩放,模型都可以识别出来图像中的目标。

不变性有以下几种类型
平移不变性;旋转不变性;尺度不变性;光照不变性。

对于图像分类任务: 平移不变性就是图像中的目标不管被移动到哪个位置,模型给出的标签都是相同的。

除此之外,还有一个对应的概念:平移同变性。是指:在图像的目标监测中,如果输入图像中的目标进行了平移,那么最终检测出来的候选框应该也相应的移动,这就是同时改变。

2. 卷积网络有没有平移不变性?

有的说有,有的说没有。下面分别对着两个观点进行阐述:

2.1卷积网络有平移不变性

主要有两个原因:一个是卷积,一个是最大池化。
问:为什么卷积可以提供平移不变性?
答: 比方说目标是在图像的左上角,经过卷积之后,目标的特征也会在特征图的左上角;目标在图像的左下角,经过相同的卷积核卷积之后,目标的特征也会在特征图的左下角。然后卷积层后面接上一个全连接层进行分类,就算目标位置改变了,但是经过相同的卷积核卷积,然后展开变成全连接层,对于全连接层来说,改变的之后特征的位置。可能之前目标的特征是作为全连接的第一个神经元的输入,平移目标位置之后,该特征就作为全连接的最后一个神经元的输入。
回答的链接
链接内容:
简单的说,卷积+最大池化约等于平移不变性。
卷积层提取的特征具有平移不变性
问:为什么池化可以提供平移不变性?
答: 最大池化层返回感受野中的最大值,如果最大值被移动了,但是仍然在这个感受野中,那么池化层也仍然会输出相同的最大值。这就有点平移不变的意思了。
参考链接中,给出了几个池化层具有不变性的例子:
卷积层提取的特征具有平移不变性
可以看到,同样的数字,原图中平移了1个像素,但是经过最大池化层之后,得到了相同的特征图。此外,最大池化层还可以根据类似的原理,得到尺度不变性和旋转不变性:
卷积层提取的特征具有平移不变性
卷积层提取的特征具有平移不变性
池化层引入了平移不变性我觉得是比较靠谱的,这也是池化层的重要作用之一:为CNN引入不变性。在面试的时候被问起来池化层的作用的时候,我觉得回答上不变性也是不错的,但是下文就会讲解,池化层实际上并没有引入不变性。好像是2019年的一个论文强调了池化层并没有不变性。

2.2 为什么没有平移不变性?

现在卷积网络的图像输入,改变一个像素就可能会得到不同的结构,所以很容易遭到对抗攻击。
池化层并没有平移不变性:
下面是此链接给出的一个简单的例子,这是一个一维卷积的例子:
卷积层提取的特征具有平移不变性
上图是一个没有平移的原始一位数据做了一个1*2的最大池化:
卷积层提取的特征具有平移不变性
如果对一位数据做了一个平移,那么得到的池化结果就完全不同!这也就是为什么下采样(平均池化层,最大池化层)没有平移不变性。

3. 什么是平移不变性?

通过平移不变性的定义来解释:如果平移之后的输入图像的下采样的上采样于原始图像的下采样的上采样相同,那么就是平移不变性。
举个例子:
卷积层提取的特征具有平移不变性
上图是平移之前的原始图像。
卷积层提取的特征具有平移不变性
上图是平移之后的图像,可以发现两者并不相等,所以并没有平移不变性。

4. 如何实现平移不变性?

利用全局平局池化层就可以实现平移不变性。举个例子:
卷积层提取的特征具有平移不变性
卷积层提取的特征具有平移不变性
可以发现,不管平移多少,反正得到的数值是一样的,全局平均池化消除了位置的影响,所以实现了平移不变性。

参考资料:https://cloud.tencent.com/developer/article/1661000