美文网首页深度学习
论文---模糊滤波器的抗锯齿版最大池化保持平移不变性让CNN有了

论文---模糊滤波器的抗锯齿版最大池化保持平移不变性让CNN有了

作者: jiandanjinxin | 来源:发表于2019-08-10 19:27 被阅读1次

论文在此:
2019 ICML Making Convolutional Networks Shift-Invariant Again
项目主页:
https://richzhang.github.io/antialiased-cnns/
开源代码:
https://github.com/adobe/antialiased-cnns#1-quickstart-load-an-antialiased-model


image.png image.png image.png image.png image.png image.png image.png image.png

古往今来,大家都知道:只要图像一平移,CNN就认不出来了

原因就在降采样身上。不管是最大池化,跨步卷积,还是平均池化,都对平移太敏感:

比如,0、0、1、1、0、0、1、1……这样的周期,最大池化是这样:

image

但如果平移一格,最大池化完全变了一个样子:

image

虽然,有著名的抗锯齿(Anti-Aliasing,AA) 方法,致力解决这个问题。但把这种模块直接插进网络,会严重影响模型的表现。

现在,来自Adobe的Richard Zhang (简称“理查”) ,让抗锯齿和各种降采样和平共处了

在保留平移不变性的情况下,还能提升ImageNet上的分类准确率。VGG、ResNet、DenseNet……各种架构都适用。

不止如此, 面对其他干扰更稳定了,如旋转如缩放;面对输入图像的损坏,还更鲁棒了。

研究登上了ICML 2019,代码已经开源,还有演讲可以看。Reddit热度已经超过了250,观众纷纷表达了谢意:

论文很厉害,演讲也很好。

怎样和解的?

想知道怎样帮助CNN保留平移不变形,就要了解平移不变性是怎样打破的。

理查观察了VGG的第一个卷积层,发现它对平移毫无波澜,并不是在这里打破的。

但再观察第一个池化层,对平移有了反应:平移偶数个像素,表征还不改变,平移奇数个像素,表征就完全变了。

向网络深处走,经过的池化层越多,问题就越严重。

image

抗锯齿

想解决这个问题,就要把抗锯齿降采样友好地结合到一起。

于是,理查又仔细查看了降采样过程,把它 (按顺序) 分成了两个部分:

一是取最大值,用密集的方式。

二是在中间特征图 (Intermediate Feature Map) 上做子采样 (Sub-Sampling) 。

第一步没有问题,完全不会出现锯齿。

第二步就要改了。理查给中间特征图,加了个模糊滤波器(Blur Filter) 来抗锯齿,然后再做子采样:

image

(2)为滤波器

那么,“抗锯齿版最大池化”效果怎么样?

平移不变性与准确率兼得

理查用ImageNet分类任务测试了一下进化后的VGG,原以为会损失一些准确率,结果:

image

右为抗锯齿

image

空心为抗锯齿

在解锁平移不变性的同时,准确率还提升了。

如果降采样方法不是最大池化,又怎么样呢?

所以,理查还测试了ResNetMobileNetv2,它们用的是跨步卷积;以及DenseNet,它用的是平均池化:

image

空心为抗锯齿

这些架构也获得了类似的提升。全面成功。

上面只讲了分类这一项任务。而进化后的降采样,在图到图翻译任务上也同样有效。

不惧各种变换,以及图像损坏

不只是平移,像旋转、缩放这样的干扰,都可以应对自如;另外,面对输入图像损坏(Image Corruption) ,也变得更加鲁棒了。

ImageNet-P数据集里,有受到各类干扰的图像;而ImageNet-C数据集里,包含了系统性损坏的图像。

image

mCE=Mean Corruption Rate, mFR=Mean Flip Rate

左边一栏 (除了Baseline) 之外,是不同的滤波器,从上到下依次变强。mCEmFR,都是越小越好。

数据显示,各种滤波器都能有效增强,应对干扰的稳定性,和应对图像损坏的鲁棒性。其中,最强的过滤器Bin-5表现最佳。

相关文章

  • 论文---模糊滤波器的抗锯齿版最大池化保持平移不变性让CNN有了

    论文在此:2019 ICML Making Convolutional Networks Shift-Invari...

  • CNN为什么丢失了平移不变性?怎么保持?

    欢迎关注我的个人微信公众号:小纸屑,致力于分享优秀AI论文如果不喜欢看文章的,可以观看视频讲解:官方视频讲解 ...

  • CNN-最大池化

    最大池化的过程 Let's say we have a 4x4 matrix representing our i...

  • 神经网络——最大池化层的使用

    1 池化的目的 实施池化的目的:(1) 降低信息冗余;(2) 提升模型的尺度不变性、旋转不变性;(3) 防止过拟合...

  • Hu矩

    Hu矩是归一化矩的线性组合,Hu矩在图像旋转、平移、缩放等操作后,仍能保持不变性,所以经常使用Hu矩来识别图像的特...

  • 【DCGAN】原理

    传统CNN: 卷积层:提取特征 池化层:特征下采样 DCGAN:没有池化层了,都是卷积层

  • tf.nn.max_pool()

    概述 max pooling是CNN当中的最大值池化操作,其实用法和卷积很类似 说明 tf.nn.max_pool...

  • Task03:字符识别模型

    0. CNN原理和发展 CNN由卷积(convolution)、池化(pooling)、非线性激活函数(non-l...

  • 图像分类实践及其优化

    一、基础网络 二、网络优化相关技术 1、层合并/池化技术 一种流行的CNN优化技术是池化。池化是一种用智能方法减少...

  • keras 池化层

    池化层又称下采样,是对卷积层的降维处理,常用的池化有最大池化、平均池化。 MaxPooling1D 一维数据上的池...

网友评论

    本文标题:论文---模糊滤波器的抗锯齿版最大池化保持平移不变性让CNN有了

    本文链接:https://www.haomeiwen.com/subject/aixdjctx.html