我目前正在学习如何在图像识别中使用 CNN。我阅读的许多解释动机的不同资源都提到了这些网络(在某种程度上)是平移不变的这一事实。我的理解如下:
- 由于数据的高维性,特别是因为它们不保留像素之间的空间关系,全连接网络不适合图像识别。我关心像素 X 周围的像素状态以及 X 本身。
- CNN 解决了这个问题,因为它们以二维方式查看图像,因此也考虑了周围的像素(内核会这样做)。然而,虽然我关心 X 周围的情况,但我并不关心 X 在哪里。所以,我在任何地方都应用相同的内核,并制作了一堆层,这样我就可以获得一堆内核。
- 我也使用池化。这减少了数据维度,但也增加了一些平移不变性。
所以,我的问题是:CNN 的什么特征导致了不变性?我看到一些解释说这是地图基本上在某个功能出现时激活的结果,无论在哪里。其他人说,池化意味着,例如,如果一条水平线出现在一个地方而不是一个像素,那么池化将对两者都激活相同的。似乎第一个理由完全足够,第二个理由并不充分,但我也可以看到两者兼而有之。
我还阅读了一篇关于全卷积网络的论文 ( https://arxiv.org/pdf/1606.09549.pdf )。在第 2.1 节中,作者解释说他们有意选择使其完全卷积,因为这使他们能够“在一次评估中计算密集网格上所有已翻译子窗口的相似性”。
那句话让我觉得这更像是第一个解释。无论如何,我希望能更直观地了解 CNN 的不同部分如何结合在一起,从而在图像上表现得特别好。谢谢!