论文下载:
https://arxiv.org/pdf/1705.09914.pdf
论文代码:
http://vladlen.info/publications/dilated-residual-networks/
论文摘要:
用于图像分类的卷积网络会逐渐降低图像的分辨率,图像以微小的特征图表现出来,其中原图像场景的空间结构不再可见。这些问题可以通过设置空洞卷积参数(dilation)来缓解,空洞卷积提高了输出特征图的分辨率,而不降低单个卷积核的感受野。
作者表明,在不增加模型深度或复杂性的情况下,扩张型残差神经网络(DRNs)在图像分类方面的表现优于非扩张型残差神经网络。作者提到,进行空洞卷积时,会出现“人为设置网格的现象”(gridding artifacts)。
作者开发了一种去除这些现象的方法,并且将进一步提高DRNs的性能。DRNs在目标定位和语义分割等下游应用中的准确性优势被进一步放大。
空洞卷积:
正常3×3卷积核的卷积过程(stride=2,padding=1),其中卷积核感受野是9个单元,都是相邻紧靠的,成九宫格形状:
空洞3×3卷积核的卷积过程(stride=1,padding=0,dilation=2),其中dilation>1时,便形成空洞卷积,相邻上下左右的两个单元相隔一个单元:
DRNs构建过程:
作者基于一组ResNet网络架构进行构建DRNs,每个架构都由五组卷积层组成,每组的第一层通过跨步进行下行采样。
用g表示每一层的组,f表示卷积核,p表示特征图,i表示层数:
作者主要关注于第四组(g4)和第五组(g5),用dilation=2的卷积代替原来的卷积:
在第五组中(Group5,g5),第二层(i=>2)开始的变化都和第一层一样:
第五组(g5)中后面的层连接两个已被消除的跨层。跨步的消除使它们每个维度的感受野减少了4倍,所以它们的dilation=4:
DRNs模块:
最后一组(g5)的最后一层后经过一个全局平均池化层(Global Average Pooling),一个全卷积层得到分类的输出:
如果想用于分割或者定位,则可以把全局平均池化层(Global Average Pooling)改为其他模块,其中K是1×1卷积:
Degridding现象:
假设原图像只有一个像素(下图白色块),经过空洞卷积后特征图出现了离散的九个像素(白色块):
翻译为“网络伪影”( gridding artifacts),造成的影响是得到的特征图会较为粗糙,呈现细碎的点状分布,结果不够精致:
ResNet中,在第一个7×7的卷积后有一个max pooling,作者发现这个max pooling会导致输出高频高幅值的激活值,这些高幅值的激活就很容易被后面的卷积传播下去,最后在顶层的空洞卷积处形成网格状激活,因此作者使用卷积来代替池化(Removing max pooling)
处理后的为DRN-B-26,特征图看起来也比较平滑了:
作者还在网络的末尾加卷积层,这些卷积层的dilation要比前面g4和g5的小,比如加入一层dilation=2的卷积层与一层正常的卷积层(Adding layers)。
最后作者把最后两层的残差连接去掉,因为残差连接会把底层的网络伪影特征直接传到顶层(Removing resdual connections)。
DRN网络最终结构:
(a)DRN-A是ResNet加dilation得到的。
(b) DRN-BDRN-B是DRN-A去除max pooling加入后两层得到的。
(c)DRN-CDRN-C是DRN-B最后两层去掉残差连接得到的。
实验结果:
ResNet-18及相应DRNs的激活图:
训练好的DRN-C-26内部的特征图:
ImageNet 2012验证集上的图像分类准确率(错误率),越低越好:
ImageNet验证集上弱监督对象定位错误率,越低越好:
城市景观验证集上扩张剩余网络的性能,越高越好: