膨胀卷积透彻理解——小白也能看懂

  

膨胀卷积(Dilated convolution),也叫空洞卷积(Atrous convolution)。

        左半部分的普通卷积核尺寸为3×3,右半部分卷积核尺寸为5×5,但右半部分深蓝色的参与运算的元素依然是9 [ 3 × 3 3×33×3 ] 个)。

为什么要使用膨胀卷积?

        使用最大池化(max_pooling)会降低输入特征图的高度和宽度,其次通过最大池化会丢失一些特征图的细节信息以及丢失一些比较小的目标,这些丢失的目标无法通过上采样还原,那么会导致语义分割效果不理想。

膨胀卷积的作用:

        1. 增大感受野

        2. 保持原输入特征图

补充知识:感受野

为了更好的理解膨胀卷积的作用,我们先介绍一下感受野

感受野,是指在当前尺寸的特征图上的一个像素点在原图像的覆盖范围,即特征图上的这个点是由输入图像中感受野大小区域的计算得到的。网络越深,输出的结果所拥有的感受野越大。

        对于当前层的输出结果,要看其感受野多大可通过以下方式:从当前层的输出结果反向映射,直到映射回原始输入特征,此时即可得到对应的感受野大小。比如上图中的第三层结果C,C由中的元素由B中的3×3区域得到,B中的3×3区域需要A中的5×5区域得到,而A中的5×5区域由原始输入中的7×7区域得到,所以对于C中元素而言,其感受野大小为7×7。

感受野计算方式:

        此处RF、S、K分别表示感受野、步长、卷积核大小,计算第i层输出结果的感受野时,利用上面公式从RF(1)一直计算到RF(i)时,RF(i)即为第i层对应的感受野大小。

        增大感受野,有两种办法。一是增大卷积核尺寸,二是增大卷积步长(池化层也可以用步长为2的卷积替代,参考Darknet53

        膨胀卷积其实是通过扩大卷积核尺寸的方式来增大感受野,同时既没有增大计算量,也没有降低特征图的分辨率。

        膨胀卷积有一个超参数:膨胀因子 r,通过膨胀因子我们可以控制卷积核的膨胀程度,图3中的膨胀因子为 r=2。膨胀因子是如何控制卷积核的膨胀程度的呢?

Kc=r ×(Ko-1)+1

                                Kc:普通卷积核通过膨胀设计后的卷积核尺寸

                                Ko:普通卷积核尺寸

膨胀卷积并不是万能的,它存在gradding effect的问题。

gridding effect:  经过空洞卷积之后的特征图有空余点,并没有被完全覆盖(下图中0点)

解决办法:通过每层的空洞卷积的膨胀系数设置为(1,2,3),卷积步长为1,如下图所示:

这样,第一层感受野为RF1=1

第二层感受野为RF2=1+(3-1)1=3    经过膨胀因子为1的卷积也就是正常卷积,卷积核为3×3

第三层感受野为RF3=3+(5-1)1=7     经过膨胀因子为2的膨胀卷积,卷积核为5×5

第四层感受野为RF4=7+(7-1)1=13    经过膨胀因子为3的膨胀卷积,卷积核为7×7

        普通卷积得到的第四层的感受野为7×7。

        由上面分析可以看出,膨胀卷积可以在不改变参数量的情况下,扩大感受野。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值