论文地址: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的时候能够最大限度的保留下来。
文章图片
这是本文对几种常用的下采样操作的改进。
文章图片
【[深度学习从入门到女装]Making Convolutional Networks Shift-Invariant Again】一点小感悟,在学习图像处理时候,人人都知道在做下采样之前要先使用模糊滤波器对图像进行处理,以遵守采样定理,但是大家在CNN阶段,进行下采样之前都没有进行高斯模糊等操作,为什么没有想到呢?文章中也提到说,在最早的CNN里边,我们使用的是average pooling,其实average pooling相当于是在subsampling之前进行了box filter的操作,是可以保持一部分平移不变性的,但是后来大家发现max pooling提取重要特征能够获取更好的效果,都放弃了average pool转用max pool。
推荐阅读
- C语言学习|第十一届蓝桥杯省赛 大学B组 C/C++ 第一场
- paddle|动手从头实现LSTM
- pytorch|使用pytorch从头实现多层LSTM
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- pytorch|YOLOX 阅读笔记
- 前沿论文|论文精读(Neural Architecture Search without Training)
- 联邦学习|【阅读笔记】Towards Efficient and Privacy-preserving Federated Deep Learning
- OpenCV|OpenCV-Python实战(18)——深度学习简介与入门示例
- 深度学习|深度学习笔记总结
- 《繁凡的深度学习笔记》|一文绝对让你完全弄懂信息熵、相对熵、交叉熵的意义《繁凡的深度学习笔记》第 3 章 分类问题与信息论基础(中)(DL笔记整理