Making Convolutional Networks Shift-Invariant Again阅读笔记

Making Convolutional Networks Shift-Invariant Again阅读笔记

  • ICML 2019
    • Making Convolutional Networks Shift-Invariant Again

问题发现

​ 先介绍两个概念,平移等变性和平移不变性(参考这篇文章CNN 中的等变(equivariant)和不变(invariant) | 陆陆自习室 (lunarnai.cn)

​ 论文中给出的平移等变性(shift-equivariance)公式如下:
在这里插入图片描述
​ 其中Shift(x)是指对x做出一个平移变换,判断F这个函数如果是平移等变性的,如果函数F可以保证对输入X先经过Shift变换后再求得函数F结果,和先求函数值再将函数结果F做Shift变换得到的最终结果,两个结果是相同的,就可以认为这个函数F具有平移不变性。

​ 论文中给出的平移不变性(shift-invariance)公式如下:
在这里插入图片描述
​ 如果一个函数F可以保证无论对输入X做什么样的变换,都可以得到相同的函数F结果,则可以说F具有平移不变性。上面链接中的小例子可以帮助理解。

​ 有些文章中会说卷积具有平移等变性(Convolutions are shift-equivariant)是说假如说图片中有一只猫,都可以保证先将图片中一只猫从左上角移到右下角再做卷积,和先做卷积,然后再将提取出的特征层的左上角移到右下角得到的结果相同;说池化构建平移不变性(Pooling builds up shift-invariance),这里池化无法保证绝对的平移不变性,他提供的平移不变性很弱,那最大池化来说,只要做的平移变换没有使每个池化的小格子里的最大值改变,有平移变换和没有平移变换得到的结果就是相同的,但是就是比较容易破坏。这篇文章想要着手解决的就是这个问题。

​ 现代的大多数卷积网络都没有很好的做到平移不变性(shift-invariant,即使是一些小的平移也会使得输出具有很强烈的变化,可以看下面这张动图。

在这里插入图片描述

​ 右侧两个柱状图,左边的那个是对照组,右边的是作者使用了自己的blurpool方法后得到的结果。可以很明显的看出,随着图片的平移,对照组辨别该图片是鸟类的准确度有很剧烈的起伏,而作者使用了blurpool之后明显起伏就没有那么剧烈了。

问题原因

​ 平移而导致输出出现剧烈的变化这种现象,是传统的若干下采样方法(max-pooling, strided-convolution, average-pooling)都忽视了抽样定理(sampling theorem)而导致的,没有满足采样定理会导致混叠现象(信号的高频分量会混叠成低频分量,混叠现象在现实生活中表现为频闪效应,人眼的采样频率如果达不到风扇转动频率的一定倍数,就会看到风扇好像是在倒着转195.白炽灯的频闪效应 - 搜狐视频 (sohu.com))。在信号处理中,一般有两种方式对抗混叠现象:

  1. 增大采样频率
  2. 在下采样前先使信号经过低通滤波

​ 这一部分笔者也没有搞得很明白,希望有评论区大佬指正,个人理解是这里maxpool处理得到的是一个个感受野中的高频信号,池化的步长stride就相当于采样频率,stride越小,采样频率就越大,stride越大,采样频率就越小,因此导致满足不了抽样定理,从而出现平移后结果出现剧烈震荡的结果。

问题解决

​ 以往人们采用模糊下采样方法,即average pooling作为低通滤波,作为对抗混叠效应抗锯齿的工具。但是大量研究证明,average pooling在结果上表现出的性能是不如最大池化max pooling的。因此以往人们总是会将抗锯齿和更好的性能表现视作鱼与熊掌,不可兼得,模糊下采样(更好的抗锯齿效果)和最大池化(更高的性能表现)也视作两种对立的下采样策略。

​ 那么这篇文章的作者研究出的blurpool就是为了让两者相统一,证明鱼与熊掌是可兼得的。原文给出的方案是这样的:

在这里插入图片描述

​ 作者将最大池化分为两步,密集计算最大算子和朴素的子采样,现在问题就处在第二步上。作者通过在二者之间插入一个低通滤波器(blur kernel)来抗锯齿。这样做的结果是,既增强了低通滤波,又没有完完全全取代掉最大池化,从后面的结果上来看确实是做到了鱼与熊掌兼得了。

在这里插入图片描述

​ 关于卷积核的选择,文中测试了size为2-5的kernel,如下:
在这里插入图片描述

​ 下面这张图中,横轴是对角线偏移量,竖轴是预测正确类别的概率,蓝线是使用了作者方法的神经网络,黑线是对照组,可以明显看到,蓝线在图片平移的过程中要稳定的多。

在这里插入图片描述

​ 在这张图中,可以明显看出,无论kernel有多大,这些网络结果的稳定性都有所提升,准确度也有所提升(这是令作者也没想到的,作者本来以为会以较少的准确度为代价,换取稳定性)

在这里插入图片描述

论文演讲资料

论文链接:[1904.11486] Making Convolutional Networks Shift-Invariant Again (arxiv.org)

演讲链接:[ICML19 Talk] Making Convolutional Networks Shift-Invariant Again (06/2019) - YouTube

GitHub:[GitHub - adobe/antialiased-cnns: pip install antialiased-cnns to improve stability and accuracy

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值