为什么卷积计算机视觉网络不使用水平对称滤波器?

数据挖掘 计算机视觉 卷积 卷积神经网络
2022-02-14 07:09:01

例如,如果我有一个用于对犬种进行分类的神经网络,并且我给它提供了一些狗的图像,那么无论我给它提供的是原始图像还是水平镜像的图像,本质上都无关紧要。
我想在网络中实现这种对称性,根据我对 CNN 的理解,这意味着我通常需要所有过滤器都是水平对称的,然后网络会更加健壮,并且将花费近 40% 的时间训练假设过滤器大小 = 5。

但是,根据我的研究,现代网络不使用这样的过滤器。嗯……为什么?这种架构有什么缺点我找不到一个提到这种想法的地方?

1个回答

我想在网络中实现这种对称性,根据我对 CNN 的理解,这意味着我通常需要所有过滤器都是水平对称的,然后网络会更加健壮,并且会减少近 40% 的时间训练假设过滤器大小 = 5。

如果两个镜像图像属于同一类——例如它们都显示一只狗或一只猫——这图像中的所有组件(线条、纹理、形状)对对称过滤器的响应良好不同。一般来说,情况并非如此。即使对于对称的外观形状(例如面部),它也仅在一定的比例和特定的姿势下才是正确的。

这种架构有什么缺点我找不到一个提到这种想法的地方?

它的效果很差,因为被检测为图像组成部分的线条、纹理和形状很少水平对称。

CNN 不能轻易地利用镜像或旋转不变性——其中类别或检测在镜像或旋转变换下不会发生变化。您可以做的一件事是提高转换的泛化能力,即数据增强,即对训练图像执行非类别变化的转换,可能在训练过程中根据需要随机进行。这确实有效,但在效率方面产生了您希望的相反影响。

Geoffrey Hinton 小组最近发布的CapsNet或许能够利用更多类型的变换不变性。但是,这仍处于研究的早期阶段,尚不清楚它是否为您的案例提供了实际优势。各种框架中都有实现,例如 Keras,如果您有兴趣可以尝试。