Dilated/Atrous Convolution

Dilated Convolution(或者叫做 Atrous Convolution), 中文称作 空洞卷积/带孔卷积/扩张卷积/膨胀卷积/多孔卷积.
这些名称指的都是同一个意思,都是同一种操作.
出处Multi-Scale Context Aggregation by Dilated Convolutions

为什么需要空洞卷积

在出现空洞卷积之前的CNN分割网络中,习惯于使用Pooling的方式降低图像的尺寸,同时增大网络的感受野.最后再使用Upsampling操作将图像的尺寸恢复到原始的大小,以得到像素级的分割结果.这样的一个Pooling->Upsampling的操作导致图像的一些信息丢失(Pooling不可逆),尤其在细节上可能会有比较大的影响.所以为了达到增大感受野同时不丢失图像信息的效果,人们提出了空洞卷积这种操作.

空洞卷积是怎样操作的

使用两张动图可以简单清晰明了的展示空洞卷积的操作.
首先是普通的卷积过程:
Dilated/Atrous Convolution_第1张图片
然后是空洞卷积的操作:
Dilated/Atrous Convolution_第2张图片
(这里的两张图片来自这个博客)
可以很清楚的看到和普通的卷积操作不同的地方就在于相当于空洞卷积的卷积核中按照一定的规律插入了一些为零的值.

  1. 从原图角度,所谓空洞就是在原图上做采样。采样的频率是根据rate参数来设置的,当rate为1时候,就是原图不丢失任何信息采样,此时卷积操作就是标准的卷积操作,当rate>1,比如2的时候,就是在原图上每隔一(rate-1)个像素采样,如图b,可以把红色的点想象成在原图上的采样点,然后将采样后的图像与kernel做卷积,这样做其实变相增大了感受野。
  2. 从kernel角度去看空洞的话就是扩大kernel的尺寸,在kernel中,相邻点之间插入rate-1个零,然后将扩大的kernel和原图做卷积 ,这样还是增大了感受野。

空洞卷积在全卷积网络 ( F C N ) (FCN) (FCN)中可以有效地控制计算特征图响应的密度,在密集预测的任务中,如语义分割/semantic semanticsemantic image imageimage segmentation, segmentation,segmentation, optica opticaoptical flow flowflow computation computationcomputation, or oror depth depthdepth estimation estimationestimation,当它和双线性插值一起使用时可以替代转置卷积。空洞卷积可以在kernel有效增大感受野的同时不增加模型参数或者计算量。在图像需要全局信息或者语音文本需要较长的sequence信息依赖的问题中,都能较好的应用空洞卷积。在图像分割,语音合成WaveNet,机器翻译ByteNet中都有空洞卷积的身影。

你可能感兴趣的:(dilated,atrous,convolution,空洞,膨胀,机器学习)