[深度学习从入门到女装]Making Convolutional Networks Shift-Invariant Again

论文地址:Making Convolutional Networks Shift-Invariant Again

一篇来自ICML的论文,Adobe出品

论文的观点很新颖,在传统的图像识别领域的特征提取,如SIFT等特征,都追求shift-invariant,也就是平移不变性,对于一个图像中的目标提取到的特征,应该与其平移之后提取到的特征一致,这样才具有平移不变性。

CNN里边,我们大量采用了卷积、pooling等操作,由于卷积相当于slide window的操作,因此我们认为CNN是具有平移不变性的,但是,近两年有论文指出(Azulay, A. and Weiss, Y. Why do deep convolutional networks generalize so poorly to small image transformations?In arXiv, 2018.Engstrom, L., Tsipras, D., Schmidt, L., and Madry, A. A rotation and a translation suffice: Fooling cnns with simple transformations. In ICML, 2019.),对于目标的轻微平移,都会很大程度影响到该目标的识别准确率

论文中给出的原因,是因为stride=2的时候卷积和pool等下采样操作时,违反了采样定理,会导致信号走样,其实这个问题在很久之前就有所说明,就比如我们在构建高斯、拉布普斯金字塔的时候,下采样之前都需要先使用高斯模糊对图像进行处理,就是为了防止下采样出现走样的情况,也就是anti-aliasing by low-pass filtering before downsampling.

本文就是通过这样一个简单的思路,将loss pass filter插入到cnn中,在下采样之前进行,以防止走样

原始的stride=2的maxpooling,对(0,0,1,1,0,0,1,1)进行下采样的时候,会得到(0,1,0,1)的输出,但是当原始信号平移一次的时候,maxpooling会得到(1,1,1,1)的输出,这就充分显示了maxpooling带来的走样

本文将maxpool分为两步,第一步为max,这一步操作能够保留平移不变性,第二步为subsampling,这一步操作会破坏平移不变性,因此本文想到在这两步操作之间,插入一步操作,就是anti-aliasing filter,让平移不变性在subsampling的时候能够最大限度的保留下来。

这是本文对几种常用的下采样操作的改进。

一点小感悟,在学习图像处理时候,人人都知道在做下采样之前要先使用模糊滤波器对图像进行处理,以遵守采样定理,但是大家在CNN阶段,进行下采样之前都没有进行高斯模糊等操作,为什么没有想到呢?文章中也提到说,在最早的CNN里边,我们使用的是average pooling,其实average pooling相当于是在subsampling之前进行了box filter的操作,是可以保持一部分平移不变性的,但是后来大家发现max pooling提取重要特征能够获取更好的效果,都放弃了average pool转用max pool。

发布了164 篇原创文章 · 获赞 36 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/py184473894/article/details/98066491
今日推荐