卷积层平移的等变特性是否有助于学习平移不变的特征?

机器算法验证 机器学习 神经网络 卷积神经网络 卷积
2022-03-21 05:57:14

在一些文本中,人们提到卷积神经网络能够学习平移不变特征的原因与卷积层与平移等变的性质有关,这意味着被移位的输入的卷积与移位的输出相同原始输入的卷积。

但是我对此有点困惑,因为无论如何卷积层的输出信号仍然会发生偏移(“等变”不是“不变”,后一种情况不仅保留了幅度,还保留了输出信号的位置),因此后面的输出应该会有一些变化,除非到该层中任何节点的连接系数相同。

我还读到池化层可能有助于解决这个翻译问题,但它仅对非常小的本地翻译几乎不变。如果我将猫的图像从图像的一个角移动到另一个角怎么办?CNN 是如何意识到它仍然是一只猫,只是位置发生了变化?

2个回答

导致卷积神经网络在某种程度上具有平移不变性的是最大池化。每个神经元在原始图像中都有一个感受野。例如,如果您有两个步幅为 1 的卷积层,中间有一个 2x2 最大池化步骤,

即输入图像 --> C3x3/1 --> M2x2/2 --> C3x3/1 --> 输出特征图,

然后输出特征图中的每个神经元在原始图像中看到 8x8 个块,即有一个 8x8 的感受野。那个神经元会因为在这个 8x8 区域(忽略边界效应)的任何地方发生的事情而感到兴奋,因为空间信息在最大池化步骤中丢失了。如果您向网络添加更多最大池化步骤,您将增加这个感受野。

通常,在最后几层中,使用密集连接的层,它们结合了来自不同感受野的信息。在那里,图像的不同区域以不同的权重连接,因此信息的来源很重要。

例如,在面部识别软件中,您可能希望通过最大池化稍微抽象信息,但不要太多,因为不同图像组件(眼睛、鼻子等)在空间上如何相关的信息很重要。

或者,扩展您给出的示例。想象一下,你要训练一个包含猫和狗图像的网络,其中动物只出现在左上角。此外,您设计的网络使得在全连接层之前的最后一个特征图的感受野是输入图像的四分之一。那么分类器将无法识别右下角的猫或狗。连接到图像那部分的全连接层中的权重永远不会学到任何东西。

最后,您可以使您的网络如此之深,以使全连接层之前的最后一层的感受野覆盖整个图像。在这种情况下,输入图像中的任何东西都可以激发最后一个特征图中的任何神经元。

我认为,如果你有一个 ConvNet 链,中间没有任何东西,那么等方差属性确实会延续连续的卷积层。但在实践中,您有一个 relu 或一个池层,因此等变属性不会跨层成立。

对于池化,我认为它只有助于输入中的小转换,保持输出相当恒定(例如在 max-pool 的情况下)并允许上面的层更好地学习该表示。我不认为 Pooling 有助于像猫从一个角落移动到另一个角落那样的大型翻译。卷积会对此有所帮助,因为它会通过对两张图片的输出进行平移和成比例的增加,使该信号对后面的层更加明显。