吃透空洞卷积(Dilated Convolutions)
点击上方“程序员大白”,选择“星标”公众号
重磅干货,第一时间送达
来自 | 知乎 作者丨玖零猴
链接丨https://zhuanlan.zhihu.com/p/113285797
编辑丨极市平台
空洞卷积在图像分割需要增加感受野同时保持特征图的尺寸的需求中诞生,本文详细介绍了空洞卷积的诞生、原理、计算过程以及存在的两个潜在的问题,帮助大家将空洞卷积这一算法“消化吸收”。
一、空洞卷积的提出
空洞卷积中文名也叫膨胀卷积或者扩张卷积,英文名也叫Atrous Convolution
空洞卷积最初的提出是为了解决图像分割的问题而提出的,常见的图像分割算法通常使用池化层和卷积层来增加感受野(Receptive Filed),同时也缩小了特征图尺寸(resolution),然后再利用上采样还原图像尺寸,特征图缩小再放大的过程造成了精度上的损失,因此需要一种操作可以在增加感受野的同时保持特征图的尺寸不变,从而代替下采样和上采样操作,在这种需求下,空洞卷积就诞生了(略有修改,引自[4])
玖零猴:感受野(Receptive Field)的理解与计算@玖零猴
https://zhuanlan.zhihu.com/p/113487374
当然,如果不用空洞卷积这种方案,那怎么去弥补经过下采样而造成信息损失呢?其实,这是另一个思路了,于是才有了我们熟知的skip connection,它可以为上采样弥补信息,像FCN、U-Net这种典型的拓扑网络,如下图所示,其实我个人认为,如果一个问题如果从不同的思路去想的话,就会出现不同的解决方案
空洞卷积自2016在ICLR(International Conference on Learning Representation)上才被提出后,本身是用在图像分割领域,但立马被deepmind拿来应用到语音(WaveNet)和NLP领域,它在物体检测也发挥了重要的作用,虽然不要求逐个像素检测,但对于小物体的检测也是十分重要的
二、空洞卷积的原理
与正常的卷积不同的是,空洞卷积引入了一个称为 “扩张率(dilation rate)”的超参数(hyper-parameter),该参数定义了卷积核处理数据时各值的间距。扩张率中文也叫空洞数(Hole Size)。
在此以 卷积为例,展示普通卷积和空洞卷积之间的区别,如图2所示
图2中从左到右分别为a、b、c子图,三幅图是相互独立进行卷积的(区别于下面图4),大框表示输入图像(感受野默认为1),黑色的圆点表示的卷积核,灰色地带表示卷积后的感受野(后面有相关计算公式,这里都是一层卷积的,直接可以看出来)
a是普通的卷积过程(dilation rate = 1),卷积后的感受野为3 b是dilation rate = 2的空洞卷积,卷积后的感受野为5 c是dilation rate = 3的空洞卷积,卷积后的感受野为8
可以这么说,普通卷积是空洞卷积的一种特殊情况
另外,空洞卷积可以增大感受野,但是可以不改变图像输出特征图的尺寸(分辨率,resolution),这句话怎么理解?
为了更好地理解这一点,我们从一维去分析容易理解点
dense prediction problems such as semantic segmentation ... to increase the performance of dense prediction architectures by aggregating multi-scale contextual information(来自[1])
三、感受野的计算
当前层的感受野计算公式如下,其中, 表示当前层的感受野, 表示上一层的感受野, 表示卷积核的大小
四、潜在的问题及解决方法
Panqu Wang,Pengfei Chen, et al**.Understanding Convolution for Semantic Segmentation.//**WACV 2018 Fisher Yu, et al. Dilated Residual Networks. //CVPR 2017 Zhengyang Wang,et al.**Smoothed Dilated Convolutions for Improved Dense Prediction.//**KDD 2018. Liang-Chieh Chen,et al.Rethinking Atrous Convolution for Semantic Image Segmentation//2017 Sachin Mehta,et al. ESPNet: Efficient Spatial Pyramid of DilatedConvolutions for Semantic Segmentation. //ECCV 2018 Tianyi Wu**,et al.Tree-structured Kronecker Convolutional Networks for Semantic Segmentation.//AAAI2019** Hyojin Park,et al.Concentrated-Comprehensive Convolutionsfor lightweight semantic segmentation.//2018 Efficient Smoothing of Dilated Convolutions for Image Segmentation.//2019
reference
1、Yu, Fisher, and Vladlen Koltun. "Multi-scale context aggregation by dilated convolutions." arXiv preprint arXiv:1511.07122 (2015).(https://arxiv.org/abs/1511.071220)
2、Understanding Convolution for Semantic Segmentation(https://arxiv.org/abs/1702.08502)
3、Rethinking Atrous Convolution for Semantic Image Segmentation(https://arxiv.org/abs/1706.05587)
4、书籍《深度学习之PyTorch物体检测实战》
5、如何理解空洞卷积(dilated convolution)?(https://www.zhihu.com/question/54149221)
6、U-Net++作者对U-Net的分析(https://zhuanlan.zhihu.com/p/44958351)
7、GIF动图,加深普通卷积和空洞卷积的区别: https://github.com/vdumoulin/conv_arithmetic/blob/master/README.md
8、如何理解Dilated Convolutions(空洞卷积)
9、yyfyan:总结-空洞卷积(Dilated/Atrous Convolution)(https://zhuanlan.zhihu.com/p/50369448)
推荐阅读
关于程序员大白
程序员大白是一群哈工大,东北大学,西湖大学和上海交通大学的硕士博士运营维护的号,大家乐于分享高质量文章,喜欢总结知识,欢迎关注[程序员大白],大家一起学习进步!