空洞卷积(Dilated Convolution):有之以为利,无之以为用

空洞卷积(Dilated Convolution):有之以为利,无之以为用

原论文链接
arxiv.org/pdf/1705.0991


一、论文核心

《Dilated Residual Networks》这篇论文的核心在于创造性地提出了空洞卷积(Dilated Convolution)使 ResNet 在保持参数量不变、每个阶段的卷积层视野不变的前提下,靠后的卷积层也可保持较大的 feature maps 尺寸从而有利于对小目标的检测,提高模型整体性能。具体来说,ResNet最后一层卷积的 整体步长为32,DRN(Dilated ResNet) 则仅为8。当然,既然 feature maps 尺寸大了,计算量当然也会变大,虽然作者在论文中避而不谈,但作为读者可还要心知肚明。


二、什么是空洞卷积

参考链接:如何理解空洞卷积(dilated convolution)?

两张图就可以秒懂:小朋友们,你们学会了吗?

普通卷积 i.e. dilation=1


空洞卷积 i.e. dilation=2

空洞卷积核中的点距离由 1 增加到了 dilation 值,即中间 dilation-1 的地方都是空着的,这个空着的地方,一方面保持了卷积的参数的单次卷积运算量的不变,同时扩大了卷积的视野。所谓有之以为利,无之以为用是也。


小朋友们,你们学会了吗?


三、DRN 的设计和改进

首先我们看看ResNet,它大致可分为6个阶段,即 conv1~5加上最后的分类层:

其中conv2~5为4个分别由相同结构、规模的Residual Block堆砌而成,每个阶段都会进行 stride=2 的下采样,其带来的作用是:

  1. feature maps 尺寸在长宽长都减半
  2. 下采样后续卷积核的视野翻倍

如何在保持第2点的同时取消第1点呢?DRN是这样处理的:

总结来说即以下几点:

  1. 在conv4、conv5阶段不下采样,即保持整体 stride=8 的步长、feature maps 尺寸相较conv3 不变。
  2. 由于原ResNet 的conv4视野相对于conv3是两倍,conv5是conv3的四倍,为了弥补视野行的缺陷,如上图 DRN 在 conv4 设置卷积的 dilation=2,conv5 的dilation=4,卷积核大小依然为3x3。


然而这样设计虽然在不增加模型参数量的情况下,提高了模型对小物体的识别精度,但存在明显的问题,作者称之为 degridding,如下图(c):


为了消除空洞卷积带来的 degridding 效应,作者改进了DRN:

绿色竖线表示 stride=2 的下采样,可以看到,DRN 整体下采样只有3次。整体而言的改进有以下几点:

  1. DRN-B、DRN-C 都取消了pooling,使用 stride=2 的卷积层替代。因为作者发现其会导致更严重的 degriding 效应,如下图(b)所示。

2. DRN-B 在最后加了两个 dilation 分别是2、1(即正常卷积)的Residual Block,而DRN-C 在此基础上进一步取消了二者的跳层连接,最后使得输出的 fature maps 如丝般顺滑,如下图(d)(e)。


一个小问题是,上面这张图是怎么画出来的?NIN里的 AvgPooling + conv1x1 替代全连接层输出分类还有印象么?这样可以使得模型参数量大大减少的同时,提高模型的精度,所以许多模型都采用这种方式输出预测分类,而这样训练出来的模型,将 AvgPooling 取消,对于 hxw 大小的 feature map 上的每一点,即 shape 为 (1,1,c) 的 tensor 使用原有的 conv1x1,即可得到上图,此过程如下图所示:


四、DRN 的性能

DRN 的性能如下列图所示,可以看到,在物体检测任务上,模型最后高分辨率输出的feature maps 的确带来了极高的性能提升。

图像分类
物体检测
语义分割


PS:
广告时间啦~
理工生如何提高人文素养软实力?快关注微信公众号:

欢迎扫码关注~

编辑于 2019-05-24

文章被以下专栏收录