总结-空洞卷积(Dilated/Atrous Convolution)、gridding问题以及解决方案、训练技巧BN和PReLU、CReLU

这里有个可视化、直观的图:https://github.com/vdumoulin/conv_arithmetic

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

https://www.zhihu.com/question/54149221/answer/192025860

https://www.zhihu.com/question/54149221/answer/323880412

https://blog.csdn.net/qq_21997625/article/details/87080576

deconved:https://www.zhihu.com/question/43609045/answer/132235276

图来自:如何理解空洞卷积(dilated convolution)? - 梁思远的回答 - 知乎 https://www.zhihu.com/question/54149221/answer/547315413

 

增大感受野:可以设置普通卷积的stride>1,但是stride大于1就会导致downsampling,卷积后图像尺寸减小、分辨率降低。

Dilated convolutional layer (also called as atrous convolution in DeepLab) allows for exponential increase in field of view without decrease of spatial dimensions.

注意:解决办法大概就是:使得卷积前后的每组结果能进行相互交错,相互依赖,解决空洞卷积局部信息丢失问题。或者捕获多尺度信息、获得局部信息依赖,以此解决局部信息不一致的问题。

在Deeplab_v3中对dilation rate的使用提出一个思考,当dilation rate过大时,由于图像的边缘效应导致long range information并没有被学习到。 * 个人思考:在网络的底层,不适合使用较大的dilation rate(貌似很多都是用标准卷积),因为底层网络层更多包含底维信息,如果引入大的dilation rate,会导致部分细节的底层信息被忽略掉。

1.例如[1, 2, 5, 1, 2, 5]这样的循环结构;dilated rate[1, 2, 5] with 3*3 kernel;

2.太繁琐,部分看不懂;

3.在最后生成的4组卷积结果之后,经过一层组交错层第二种方法为在空洞卷积之前进行局部信息依赖,即增加一层分离卷积操作;

4.增加图像级特征,使用全局池化获取图像全局信息,没有仔细说明,需要补充学习;

5.ESPNet利用分解卷积的思想,先用1*1卷积将通道数降低减少计算量,后面再加上基于空洞卷积的金字塔模型,捕获多尺度信息。所有卷积后都使用BN和PReLU(PReLU(Parametric Rectified Linear Unit)。很多实时分割小网络都使用了PReLU;使用Adam训练,很多小网络使用这个;消融实验表明,在一维卷积之间加入BN+PReLU,精度会增加1.4%;

6.Kronecker convolution,参数量是不增加的总体效果mIOU提升了1%左右。提出了一个TFA模块,利用树形分层结构进行多尺度与上下文信息整合。结构简单,但十分有效,精度提升4-5%。没有仔细说明,需要补充学习、

7.看不懂。

8.未细说。

;

目录

dilation conv

空洞卷积的作用

空洞卷积gridding问题

解决方案

1. Panqu Wang,Pengfei Chen, et al.Understanding Convolution for Semantic Segmentation.//WACV 2018

2. Fisher Yu, et al. Dilated Residual Networks. //CVPR 2017

3. Zhengyang Wang,et al.Smoothed Dilated Convolutions for Improved Dense Prediction.//KDD 2018.

4. Liang-Chieh Chen,et al.Rethinking Atrous Convolution for Semantic Image Segmentation//2017

5. Sachin Mehta,et al. ESPNet: Efficient Spatial Pyramid of DilatedConvolutions for Semantic Segmentation.//ECCV 2018

6. Tianyi Wu,et al.Tree-structured Kronecker Convolutional Networks for Semantic Segmentation.//AAAI2019

7. Hyojin Park,et al.Concentrated-Comprehensive Convolutionsfor lightweight semantic segmentation.//2018

8. Efficient Smoothing of Dilated Convolutions for Image Segmentation.//2019


dilation conv

首先空洞卷积的目的是为了在扩大感受野的同时,不降低图片分辨率和不引入额外参数及计算量(一般在CNN中扩大感受野都需要使用s>1的conv或者pooling,导致分辨率降低,不利于segmentation。而如果使用大卷积核来增加感受野,会引入额外的参数及计算量)。可以代替降采样(pooling或s2/conv),标准卷积可以看做空洞卷积的特殊形式。

空洞卷积(Dilated/Atrous Convolution),广泛应用于语义分割与目标检测等任务中

  • 空洞卷积:在3*3卷积核中间填充0,有两种实现方式,第一,卷积核填充0,第二,输入等间隔采样。

而dilated conv不是在像素之间padding空白的像素,而是在已有的像素上,skip掉一些像素,或者输入不变,对conv的kernel参数中插一些0的weight,达到一次卷积看到的空间范围变大的目的。

空洞卷积的作用

  • 扩大感受野:(不影响微调的,也就是改了之后之前的模型可以继续训练)
  • 捕获多尺度上下文信息:空洞卷积有一个参数可以设置dilation rate,具体含义就是跳过或者same采样时在卷积核中填充dilation rate-1个0,因此,当设置不同dilation rate时,感受野就会不一样,也即获取了多尺度信息。多尺度信息在视觉任务中相当重要啊。

空洞卷积可以任意扩大感受野,且不需要引入额外参数,但如果把分辨率增加了,算法整体计算量肯定会增加。

空洞卷积实际卷积核大小:

 d为空洞卷积参数空洞率dilation rate;(d - 1) 的值则为塞入的空格数,假定原来的卷积核大小为 k,那么塞入了 (d - 1) 个空格后的卷积核大小 n 为:

因此输出feature map尺寸是

width=[\tfrac{W+2p-k-(k-1)\times (d-1)}{S}]+1

感受野从k*k变为[k+(r-1)*(k+1)]*[k+(r-1)*(k+1)]

same的话需要pad的像素点是(new_width-1)*S + k - W_ori

以三个r=2的3*3/s1空洞卷积为例计算感受野:

K=k+(k-1)(r-1)=3+2*1=5
R=1+4+4+4=13

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值