究竟是什么意味着 CNN 是位置等变的

数据挖掘 卷积
2022-03-13 05:28:52

有一个很好的解释,完全符合我的愿景。但似乎它缺少最后一步。正如 Jean 所说,在输入图像中显着移动对象将导致黄色层(第一个完全连接层之前的那个)中激活神经元的变化。所以我们看到FCL之前的网络部分是位置等变的。然后作者说,因为网络在任何位置检测到一个对象,FCL 应该已经处理了它。

  • 等方差属性是否适用于整个网络,包括尾随分类器?(我已经阅读了“翻译等价”和“翻译不变”之间的区别,但不确定我是否正确地将其应用于这种情况)
  • 如果仅使用具有左下角对象的图像进行训练,网络是否应该检测右上角的对象?

(试过 这个演示,但它似乎没有解决第二个问题)

1个回答

在您的链接中,作者 Jean 说:

此外,我相信如果 CNN 被训练只在​​一个角落显示人脸,那么在学习过程中,全连接层可能对其他角落的人脸不敏感。

我也相信这是正确的。FCN 不会以任何方式增加或改进平移不变性。相反,它将把最后一个卷积层的所有输出——“特征图”的每个单独像素——视为完全不同的特征。必须用足够多的例子训练它才能很好地泛化。

然而,特征图本身并不像 CNN 的简化解释所暗示的那样简单、干净的物体检测器。在深度网络中,它们可能非常复杂,并对广泛的刺激做出反应。它们的响应也会有些模糊,因此例如眼睛或头部侧面显示耳朵可以触发多个特征图像素(对于特征图的内核,稍微平移的相同对象看起来像相同特征的扭曲版本,并且仍然会匹配足够多的对象子组件来触发积极响应)。最后一层不一定会检测到完整的对象,而是大量的对象、重要纹理的区域等。因此位置仍然可以非常流畅,并且“头部检测器在最后一个卷积层中偏移一个像素”

如果您需要网络泛化,这仍然是一个问题。如果您怀疑您的训练数据可能无法涵盖图像位置、方向等方面的足够变化,那么一种常见的方法是数据增强。由于对象的反射、旋转或裁剪图像通常应归类为同一对象,因此您可以使用这些变换对训练数据进行预处理,以对输入图像进行许多随机变化。一些深度学习框架将允许您连续执行此操作,为每批生成新图像。