您如何使用于图像分类的 NN 对平移 ** 和 ** 旋转保持不变?

数据挖掘 机器学习 图像分类 卷积
2021-09-21 12:08:31

CNN(我认为)对于输入图像的小翻译是不变的,即它们会将图像分类到同一类X和一张图片X使得所有像素都沿向量平移v通过一些“小”距离d. 然而,它们并不是旋转不变的。即,如果X由获得X应用任意度数的旋转θ绕轴z与图像平面正交,他们不一定会将其归类为与X. 从业者通常通过数据增强来解决这个问题,但这是不必要的浪费,而且在我的情况下无论如何都不是一个选择。有没有办法使 NN 架构对两种等距都保持不变?我不必使用 CNN,但由于 CNN 已经享有某种平移不变性,我认为修改它们以获得旋转不变性比使用完全不同的架构更容易。

2个回答

CNN* 不可能具有通用的旋转不变神经网络架构。事实上,CNN 不是强平移不变性,除了由于池化 - 相反,它们结合了一点平移不变性和平移等效性。没有等效的池化层可以以这种方式减少旋转的影响(尽管对于非常小的旋转,平移不变性仍然会有所帮助)。

但是,您可以构建特征并创建一个管道,以减少输入中的传入旋转差异。例如,Signal Processing Stack Exchange 上的这个答案建议计算图像的主要梯度,然后旋转图像,以便在进一步处理之前始终以相同的方式定向。如果你的图像有很强的直边,你可以通过检测那些(例如通过使用霍夫变换)并旋转输入来做类似的事情,这样它们总是以相同的方式定向。这些方法仅适用于某些图像任务,但可以节省处理时间并在可能的情况下提高准确性。实际上,它们是输入规范化的一种形式。

一个更激进的想法可能是在处理之前对图像中的极坐标执行映射。这将有效地将旋转(和径向)方差转换为图像中的平移方差。处理此映射图像的 CNN 将有效地将其平移不变性转换为原始未映射图像上的旋转不变性。但代价是失去所有平移不变性,因此只有在您的输入具有高旋转方差但平移方差低时才值得考虑。


* 永不说永不。这在特殊情况下会受到警告,例如论文Group Equivariant Convolutional Networks解释了一种架构,该架构增加了对 90 度旋转倍数的支持(利用计算机图像中的网格结构和构建神经网络层的权重矩阵)。但是,如果您想支持 90、180、270 度以外的值的自由旋转,那么据我所知,在网络中没有办法在架构上做到这一点

请参阅最近的 3 个关于转换相同 CNN (TI-CNN) 和齿轮旋转相同 CNN (GRI-CNN) 的预印本 (6-8/2018)。它们是由乔治城大学医学中心的同一个医学 AI 研究团队发起的循环路径 CNN(SPIE MI 1998 和 IEEE TMI 2002)扩展和衍生的,该团队还在 1990 年代初期独立开发了 CNN 和小波 CNN,用于癌症研究。

“通过对称元素算子的变换相同和不变的卷积神经网络” https://arxiv.org/abs/1806.03636

“通过组合对称操作或输入向量的变换相同和不变的卷积神经网络” https://arxiv.org/abs/1807.11156

“齿轮旋转相同和不变的卷积神经网络系统” https://arxiv.org/abs/1808.01280