深度学习:空洞卷积dilated convolution

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

一、空洞卷积概念

引入空洞卷积不得不提的是感受野,感受野就是卷积神经网络的每一层输出的特征图(fe ature map)上的像素点在原图像上映射的区域大小。空洞卷积主要为了解决图像分割中的一些问题而提出的在FCN中通过pooling增大感受野缩小图像尺寸,然后通过upsampling还原图像尺寸,但是这个过程中造成了精度的损失那么为了减小这种损失理所当然想到的是去掉pooling层,然而这样就导致特征图感受野太小,因此空洞卷积应运而生。

感受野: 卷积神经网络的每一层输出的特征图上的像素点在原图像上映射的区域大小

  • FCN 全卷积,图像分割,不含全连接层的全卷积网络(fully conv),可适应任意尺寸大小的输入 
  • 增大数据尺寸 反卷积层,能够输出精细的效果
  • 结合深度层结果的跳级skip结构,同时确保鲁棒性和精确性
  • https://blog.csdn.net/qq_36269513/article/details/80420363

空洞卷积顾名思义就是卷积的一种,如下图所示这个就是空洞卷积,这里stride:1,padding:0。这里空洞卷积有两种理解,一是可以理解为将卷积核扩展,如图卷积核为 3\times3 但是这里将卷积核变为 5\times5 即在卷积核每行每列中间加0。二是理解为在特征图上每隔1行或一列取数与 3\times3 卷积核进行卷积。当然这里改变stride、padding空洞卷积就会和下图有区别。

三.空洞卷积的感受野

首先介绍cnn感受野计算公式: r=(m-1)\times stride+ksize 这里 r 为本层感受野, m 上层感受野, stride 卷积或池化的步长, ksize 卷积核大小。例子如下(初始感受野大小为1):

3\times3 卷积(stride=1): r=(1-1)*1+3=3 感受野为 3\times3

2\times2 池化(stride=2): r=(3-1)\times2+2=6 感受野为 6\times6

3\times3 卷积(stride=3): r=(6-1)*1+3=8 感受野为 8\times8

空洞卷积的感受野计算方法和上面相同所谓的空洞可以理解为扩大了卷积核的大小,下面来介绍一下空洞卷积的感受野变化(卷积核大小为 3\times3 ,stride=1,下面的卷积过程后面的以前面的为基础):

1-dilated conv:rate=1的卷积其实就是普通 3\times3 因此 r=(1-1)\times1+3=3 ( r=2^{(1/2)+2}-1=3 )卷积因此感受野为 3\times3

2-dilated conv:rate=2可以理解为将卷积核变成了 5\times5 ,因此 r=(3-1)*1+5=7 ( r=2^{(2/2)+2}-1=7 )感受野大小为 7\times7 。

4-dilated conv:rate=3可以理解为将卷积核变成了 9\times9 因此 r=(7-1)\times1+9=15 ( r=2^{(4/2)+2}-1=15 )感受野大小为 5\times5

可以看到将卷积以上面的过程叠加感受野变化会指数增长,感受野公式为 r=2^{(rate/2)+2}-1

3*3  5*5  9*9

 

 


版权声明:本文为weixin_41108334原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。