快把卷积神经网络中的平移不变性带回来!

2020 年 7 月 13 日 CVer

点击上方“CVer”,选择加"星标"置顶

重磅干货,第一时间送达

论文已上传,文末附下载方式

本文: 清雨影

https://zhuanlan.zhihu.com/p/157615441

本文已由原作者授权,不得擅自二次转载

简介

这篇博客主要是我读论文《Making Convolutional Networks Shift-Invariant Again》的读书笔记,夹杂了自己直白和幼稚的理解。因为我相信所有的创意无论最后的结果多么复杂,最初的想法一定都是直观的。

主页:https://richzhang.github.io/antialiased-cnns/

论文:https://arxiv.org/abs/1904.11486

代码:https://github.com/adobe/antialiased-cnns


Small shifts

卷积

其实说清楚这件事情,我们需要从卷积开始。其实卷积(或者说滤波吧,两者差个卷积核的Flip,这里姑且混为一谈)操作本身是一个平移两个信号并且积分的操作,从定义本身就是可以做到平移不变的。真正让卷积做不到平移不变的,是MaxPool。

计算资源的制约让我们一定要做Pool操作(准确的说是降采样),但是降采样的时候一定会丢失信息,例如步长为2的降采样就是丢掉一半的信息?

如果仅仅是丢掉一半的信息似乎还没有这么严重,因为图片中一些纹理的信息本身就是冗余的,丢了一半,还有一半,问题不大。

但是事实上是,我只是给图片稍稍平移了一下,我的模型就尼玛疯了。




邪恶的MaxPool

其实AvgPool都没有这个问题,为啥偏偏MaxPool有?既然有问题,为啥我们还偏偏要用MaxPool?


可以看到,仅仅是平移了一个像素,MaxPool的结果就有可能完全不同。

既然MaxPool这么不好,我们为什么还要用呢?因为我们需要。举个简单的例子:


我们需要的是这张图片分类,那么应该返回的是1(有猫),而不是猫占图片的面积比例。

一个频域上的解释是:MaxPool倾向于保留中高频信息,而网络的卷积核中,大多数是提取中高频信息的, 我尝试提取了VGG和MobileNet的部分卷积核,并且绘制了傅立叶变换以后的结果(仅保留幅度)。


解决方案

那我么你怎么解决这个问题呢?



作者提出了,MaxPool可以看成Max+Pool(subsample)的组合,我在中间插入一个Blur Kernel(我感觉长得有点像高斯核)可以有效的抑制这个情况的发生。

从测试结果可以看出,加了Blur核的MaxPool情绪稳定多了:


而且最神奇的是,按照道理说,这样的处理可以增强平移不变性,但是会损失精度。但是测试的结果居然是:精度也提升了。


Hack

作者测试了MaxPool和MaxBlurPool在不同的层的情况,可以看到,随着层数变深,平移引起的变化越发严重,而使用了MaxBlurPool以后,虽然不能完全消除印象,但是能减轻很多了。


作者的改动是,MaxPool的中间加入了一个Blur Kernel,而卷积的另外一个解释,则是加权平均。我们可以理解为,Max之后,在做了一个加权平均(Weighted-Avg)之后再做Pool。我个人对此的理解是:我们需要高频数据,但是不需要那么高频的数据也可以。所以可以作出一个介于AvgPool和MaxPool之间的Pool来,在这个上面作出的模型,效果要好于单纯的使用MaxPool。

参考

  • Making Convolutional Networks Shift-Invariant Again

  • Why do deep convolutional networks generalize so poorly tosmall image transformations?

  • Shiftable multiscale transforms



下载


在CVer公众号后台回复:平移不变,即可下载本论文

在CVer公众号后台回复:CVPR2020,即可下载CVPR2020 2020代码开源的论文合集

在CVer公众号后台回复:ECCV2020,即可下载ECCV 2020代码开源的论文合集


重磅!CVer-论文写作与投稿交流群成立


扫码添加CVer助手,可申请加入CVer-论文写作与投稿 微信交流群,目前已满2000+人,旨在交流顶会(CVPR/ICCV/ECCV/ICML/ICLR/AAAI等)、顶刊(IJCV/TPAMI等)、SCI、EI等写作与投稿事宜。


同时也可申请加入CVer大群和细分方向技术群,细分方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch和TensorFlow等群。


一定要备注:研究方向+地点+学校/公司+昵称(如论文写作+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群


▲长按加微信群


▲长按关注CVer公众号

整理不易,请给CVer点赞和在看

登录查看更多
8

相关内容

基于改进卷积神经网络的短文本分类模型
专知会员服务
25+阅读 · 2020年7月22日
少标签数据学习,54页ppt
专知会员服务
197+阅读 · 2020年5月22日
【CVPR 2020-商汤】8比特数值也能训练卷积神经网络模型
专知会员服务
25+阅读 · 2020年5月7日
卷积神经网络的概述论文:分析、应用和展望,21页pdf
专知会员服务
90+阅读 · 2020年4月7日
【ICLR-2020】网络反卷积,NETWORK DECONVOLUTION
专知会员服务
38+阅读 · 2020年2月21日
DeepLabv1 & DeepLabv2 - 空洞卷积(语义分割)
AI研习社
12+阅读 · 2019年3月25日
原来CNN是这样提取图像特征的。。。
计算机视觉life
8+阅读 · 2018年11月23日
卷积神经网络简明教程
论智
8+阅读 · 2018年8月24日
证伪:CNN中的图片平移不变性
论智
5+阅读 · 2018年6月12日
【CNN】一文读懂卷积神经网络CNN
产业智能官
18+阅读 · 2018年1月2日
入门 | 一文了解神经网络中的梯度爆炸
机器之心
8+阅读 · 2017年12月22日
从LeNet-5到DenseNet
AI研习社
9+阅读 · 2017年11月18日
CNN之卷积层
机器学习算法与Python学习
8+阅读 · 2017年7月2日
Arxiv
4+阅读 · 2018年7月4日
Arxiv
3+阅读 · 2018年6月1日
Arxiv
3+阅读 · 2018年5月28日
Arxiv
3+阅读 · 2017年10月1日
Arxiv
4+阅读 · 2017年7月25日
VIP会员
相关资讯
DeepLabv1 & DeepLabv2 - 空洞卷积(语义分割)
AI研习社
12+阅读 · 2019年3月25日
原来CNN是这样提取图像特征的。。。
计算机视觉life
8+阅读 · 2018年11月23日
卷积神经网络简明教程
论智
8+阅读 · 2018年8月24日
证伪:CNN中的图片平移不变性
论智
5+阅读 · 2018年6月12日
【CNN】一文读懂卷积神经网络CNN
产业智能官
18+阅读 · 2018年1月2日
入门 | 一文了解神经网络中的梯度爆炸
机器之心
8+阅读 · 2017年12月22日
从LeNet-5到DenseNet
AI研习社
9+阅读 · 2017年11月18日
CNN之卷积层
机器学习算法与Python学习
8+阅读 · 2017年7月2日
相关论文
Top
微信扫码咨询专知VIP会员