在您的链接中,作者 Jean 说:
此外,我相信如果 CNN 被训练只在一个角落显示人脸,那么在学习过程中,全连接层可能对其他角落的人脸不敏感。
我也相信这是正确的。FCN 不会以任何方式增加或改进平移不变性。相反,它将把最后一个卷积层的所有输出——“特征图”的每个单独像素——视为完全不同的特征。必须用足够多的例子训练它才能很好地泛化。
然而,特征图本身并不像 CNN 的简化解释所暗示的那样简单、干净的物体检测器。在深度网络中,它们可能非常复杂,并对广泛的刺激做出反应。它们的响应也会有些模糊,因此例如眼睛或头部侧面显示耳朵可以触发多个特征图像素(对于特征图的内核,稍微平移的相同对象看起来像相同特征的扭曲版本,并且仍然会匹配足够多的对象子组件来触发积极响应)。最后一层不一定会检测到完整的对象,而是大量的对象、重要纹理的区域等。因此位置仍然可以非常流畅,并且“头部检测器在最后一个卷积层中偏移一个像素”
如果您需要网络泛化,这仍然是一个问题。如果您怀疑您的训练数据可能无法涵盖图像位置、方向等方面的足够变化,那么一种常见的方法是数据增强。由于对象的反射、旋转或裁剪图像通常应归类为同一对象,因此您可以使用这些变换对训练数据进行预处理,以对输入图像进行许多随机变化。一些深度学习框架将允许您连续执行此操作,为每批生成新图像。