膨胀卷积(DILATED CONVOLUTIONS)是在卷积核的元素之间插入一些额外的空间,而插入空间的量由参数膨胀因子d (dilation rate)来控制, 通常有d-1个空间在卷积核元素之间被插入,这样普通卷积就对应着d=1的特殊膨胀卷积。膨胀卷积是在论文MULTI-SCALE CONTEXT AGGREGATION BYDILATED CONVOLUTIONS中开始普及的。
下面的两个gif图中,第一个是3x3的无padding和strides的普通卷积示意,第2个是3x3的d=2的无padding和strides的膨胀卷积示意,两者的参数是一样的,普通卷积的接受野是3x3而膨胀卷积的接受野是5x5.
![](https://i-blog.csdnimg.cn/blog_migrate/aa0a767e501bb5b1942c7dd5d7ca485a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a59b2f22219696c4ce11b5e77e42a000.gif)
以二维图像为例(假设两个维度上的参数都一样),设输入的尺寸为i, 卷积核的大小为k, stride的大小为s, p为zero padding的大小, 这时普通卷积的输出大小为。 而对于卷积核大小为k, 膨胀因子为d的膨胀卷积的有效尺寸为
, 所以膨胀卷积的输出大小为
膨胀卷积相比于普通卷积的优点在于不增加卷积核的大小就可以实现感受野的增加,正如前面例子示意的那样。而当多个卷积层堆叠在一起的时候,膨胀卷积可以实现感受野的指数级增加(从而减少了参数量)。
在论文Understanding Convolution for Semantic Segmentation中提到膨胀卷积的缺点是如果在多层膨胀卷积的膨胀率一样时会导致"网格化"现象,造成信息的丢失;论文中提到的解决办法是在每层中使用不同的膨胀率。(下图来自论文)
![](https://i-blog.csdnimg.cn/blog_migrate/21cbcb3cb04d6f8b75cd46bc6137746c.png)
参考资料:
Fisher Yu and Vladlen Koltun. “Multi-Scale Context Aggregation by Dilated Convolutions” arXiv: Computer Vision and Pattern Recognition(2015): n. pag.
Panqu Wang et al. “Understanding Convolution for Semantic Segmentation” Workshop on Applications of Computer Vision(2018): n. pag.