听六小桨讲AI | 第6期:卷积的变体之空洞卷积

点击左上方蓝字关注我们

本栏目由百度飞桨工程师联手精心打造,对深度学习的知识点进行由浅入深的剖析和讲解。大家可视它为深度学习百科(面试秘籍也是可以哒),当然也可收藏为深度学习查询手册~

上期为大家讲解了卷积的变体——转置卷积。那么转置卷积可以实现什么样的功能呢?知道的小伙伴请文末留言,我们将抽取一位幸运儿给予神秘奖品哦。本期将继续为大家带来卷积的变体:空洞卷积(Dilated Convolution)

空洞卷积提出背景

在像素级预测问题中(比如语义分割,这里以FCN[1]为例进行说明),图像输入到网络中,FCN先如同传统的CNN网络一样对图像做卷积以及池化计算,降低特征图尺寸的同时增大感受野。但是由于图像分割是一种像素级的预测问题,因此我们使用转置卷积(Transpose Convolution)进行上采样使得输出图像的尺寸与原始的输入图像保持一致。综上,在这种像素级预测问题中,就有两个关键步骤:首先是使用卷积或者池化操作减小图像尺寸,增大感受野;其次是使用上采样扩大图像尺寸。但是,使用卷积或者池化操作进行下采样会导致一个非常严重的问题:图像细节信息被丢失,小物体信息将无法被重建(假设有4个步长为2的池化层,则任何小于 pixel 的物体信息将理论上无法重建)。

空洞卷积及其应用

空洞卷积(Dilated Convolution),在某些文献中也被称为扩张卷积,是针对图像语义分割问题中下采样带来的图像分辨率降低、信息丢失问题而提出的一种新的卷积思路。

空洞卷积在某些特定的领域有着非常广泛的应用,比如:

  • 语义分割领域:DeepLab系列[2,3,4,5]与DUC[6]。在DeepLab v3算法中,将ResNet最后几个block替换为空洞卷积,使得输出尺寸变大了很多。在没有增大运算量的前提下,维持分辨率不降低,获得了更密集的特征响应,从而使得还原到原图时细节更好。

  • 目标检测领域:RFBNet[7]。在RFBNet算法中,利用空洞卷积来模拟pRF在人类视觉皮层中的离心率的影响,设计了RFB模块,从而增强轻量级CNN网络的效果。提出基于RFB网络的检测器,通过用RFB替换SSD的顶部卷积层,带来了显著的性能增益,同时仍然保持受控的计算成本。

  • 语音合成领域:WaveNet[8]等算法。

空洞卷积与标准卷积的区别

对于一个尺寸为 3 x 3 的标准卷积,卷积核大小为 3 x 3 ,卷积核上共包含9个参数,在卷积计算时,卷积核中的元素会与输入矩阵上对应位置的元素进行逐像素的乘积并求和。而空洞卷积与标准卷积相比,多了扩张率这一个参数,扩张率控制了卷积核中相邻元素间的距离,扩张率的改变可以控制卷积核感受野的大小。尺寸为 3 x 3 ,扩张率分别为 1,2,4 时的空洞卷积分别如 图1图2图3所示。

扩张率为1时,空洞卷积与标准卷积计算方式一样。

图1  扩张率为1时的3 * 3空洞卷积

扩张率大于1时,在标准卷积的基础上,会注入空洞,空洞中的数值全部填0。

图2  扩张率为2时的3 * 3空洞卷积

图3  扩张率为4时的3 * 3空洞卷积

空洞卷积的感受野和参数量

空洞卷积通过引入扩张率这一参数使得同样尺寸的卷积核获得更大的感受野。相应地,也可以使得在相同感受野大小的前提下,空洞卷积比普通卷积的参数量更少。

  • 标准卷积的感受野

对于标准卷积而言,当标准卷积核尺寸为 3 x 3 时,我们在输入矩阵上连续进行两次标准卷积计算,得到两个特征图。我们可以观察不同层数的卷积核感受野大小,如 图4 所示。

图4  标准卷积的感受野示例

其中,3 x 3卷积对应的感受野大小就是3 x 3,而通过两层3 x 3的卷积之后,感受野的大小将会增加到5 x 5。

  • 标准卷积的参数量

我们计算一下标准卷积通过两层3 x 3卷积后得到大小为5 x 5的感受野时参数量大小:

1 x 1 x 3 x 3 + 1 x 1 x 3 x 3 =18

  • 空洞卷积的感受野

空洞卷积的感受野计算方式与标准卷积大同小异。由于空洞卷积实际上可以看作在标准卷积核内填充'0',所以我们可以将其想象为一个尺寸变大的标准卷积核,从而使用标准卷积核计算感受野的方式来计算空洞卷积的感受野大小。对于卷积核大小为 k ,扩张率为 r 的空洞卷积,感受野 F 的计算公式为:

卷积核大小 k = 3 ,扩张率 r = 2 时,计算方式如 图5 所示。

图5  空洞卷积的感受野示例

其中,通过一层空洞卷积后,感受野大小为5 x 5,而通过两层空洞卷积后,感受野的大小将会增加到9 x 9。

  • 空洞卷积的参数量

当卷积核大小为3,扩张率为2时,通过一层空洞卷积后就可以得到大小为5 x 5的感受野,那么我们计算一下参数量:

1 x 1 x 3 x 3 = 9

本节课见见老师详细讲解了空洞卷积的数学推导以及应用。有疑问的同学可以及时留言,主桨人会及时回复哦。下节课还是为大家带来卷积变体的介绍,感兴趣的同学请持续关注。

对于本系列所有课程内容,大家可以在飞桨深度学习材料获取一站式平台

GitHub:https://github.com/PaddlePaddle/awesome-DeepLearning获取,该项目集成了深度学习教程、理论知识点解读、产业实践案例、常用Tricks和前沿模型解读等内容。

感兴趣的同学可以扫码关注或者fork和star哦~

参考文献

[1] Fully Convolutional Networks for Semantic Segmentation

[2] Semantic image segmentation with deep convolutional nets and fully connected CRFs

[3] DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs

[4] Rethinking Atrous Convolution for Semantic Image Segmentation

[5] Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation

[6] Understanding Convolution for Semantic Segmentation

[7] Receptive Field Block Net for Accurate and Fast Object Detection

[8] WaveNet: a generative model for raw audio

回顾往期:

听六小桨讲AI | 第1期:卷积概念及计算

听六小桨讲AI | 第2期:卷积的批量计算及应用案例

听六小桨讲AI | 第3期:优化器及其三种形式BGD、SGD以及MBGD

听六小桨讲AI | 第4期:优化器合集

听六小桨讲AI | 第5期:卷积的变体之转置卷积

如在使用过程中有问题,可加入官方QQ群进行交流:793866180。

如果您想详细了解更多飞桨的相关内容,请参阅以下文档。

·飞桨官网地址·

https://www.paddlepaddle.org.cn/

·飞桨开源框架项目地址·

GitHub: https://github.com/PaddlePaddle/Paddle 

Gitee: https://gitee.com/paddlepaddle/Paddle

????长按上方二维码立即star!????

飞桨(PaddlePaddle)以百度多年的深度学习技术研究和业务应用为基础,集深度学习核心训练和推理框架、基础模型库、端到端开发套件和丰富的工具组件于一体,是中国首个自主研发、功能完备、开源开放的产业级深度学习平台。飞桨企业版针对企业级需求增强了相应特性,包含零门槛AI开发平台EasyDL和全功能AI开发平台BML。EasyDL主要面向中小企业,提供零门槛、预置丰富网络和模型、便捷高效的开发平台;BML是为大型企业提供的功能全面、可灵活定制和被深度集成的开发平台。

END

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值