原标题 | Review: DRN — Dilated Residual Networks (Image Classification & Semantic Segmentation)
作者 | Sik-Ho Tsang
翻译 | had_in(电子科技大学)
编辑 | Pita
本文回顾了普林斯顿大学和英特尔实验室的DRN(扩张残差网络)。2016年ICML发布了用于语义分割的DilatedNet后,作者提出了DRN,不仅可以提高语义分割效果,还可以提高图像分类效果,而不增加模型的深度和复杂度。文章发表于2017年,被引用超过100次。(SH Tsang @ Medium)
为了简单起见,我仅引用了DilatedNet结构中的公式:
标准卷积(左),扩张卷积(右)
左边是标准卷积。右边是扩张卷积。我们可以看到在求和时,需要满足s+l*t=p,索引我们在卷积操作过程中的会跳过一些点。
当l=1时,上式表示标准卷积。
当l>1时, 上式表示扩张卷积。
标准卷积(l=1)(左),扩张卷积(l=2)(右)
上面的例子说明了l=2时的卷积过程。我们可以看到感知野比标准卷积大。
l=1(左),l=2(中),l=4(右)
上面的图显示了更多不同感知野的例子。
研究结果表明,在网络末端得到的较小输出特征map,降低了语义分割的精度。
在全卷积网络(FCN,https://towardsdatascience.com/review-fcn-semantic-segmentation-eb8c9b50d2d1)中,当需要32倍的上采样时,我们只能得到非常粗略的分割结果。因此,需要更大的输出特征map。
一种简单的方法是删除网络中的下采样(跨步)步骤,以提高特征map的分辨率。然而,这也减少了感知野,从而严重减少了获得的上下文信息。因为更高的分辨率而产生的感知野减少的代价是不值得的。
因此,扩张卷积用于增加后面网络层的感知野,补偿去除下采样而引起的感知野减少。
研究发现,使用扩张卷积也有助于这篇文章中的图像分类任务。
本文采用d作为扩张因子。
当d=1时,为标准卷积。
当d>为1时,为扩张卷积。
在原残差网络中,最后两组卷积层G4和G5使用3×3标准卷积(d=1):
由于最大池化层的存在,特征map变得越来越小。
输出特征map的大小只有7×7。这并没有前面提到的那样好。
在DRN中,在G4层,卷积采用d=2:
在G5层,对于第一次卷积(i=1),仍然采用d=2:
在G5层,对于剩余的卷积(i>1),采用d=4:
最后,DRN中G5层的输出为28×28,远远大于原始的ResNet(https://towardsdatascience.com/review-resnet-winner-of-ilsvrc-2015-image-classification-localization-detection-e39402bfa5d8)。
对于图像分类任务,最后是一个全局平均池化,然后是1×1卷积层和softmax层。
要将模型用于定位,只需删除平均池化。不涉及任何训练或参数调优。准确的分类DRN可以直接用于定位。
当特征图的频率比扩张卷积的采样率高时,就会出现网格化效应,如上所示。
DRN-A(上),DRN-B(中),DRN-C(下)
DRN-A:仅有膨胀卷积的网络,有网格效应。
DRN-B: 研究发现,第一个最大池化操作会导致高幅度高频率的激活值。因此,将第一个最大池化层替换为2个残差块(4个3×3卷积层),以减少网格效应。在网络的末端还添加了2个残差块。
DRN-C: 在网络的末端,扩张率逐渐降低,以消除混叠效应,如先进行2倍膨胀的卷积,再进行1倍膨胀的卷积。然而,混叠效应仍然存在,因为它可以通过残差连接传递。因此,相应的残差连接被删除。
ResNet-18和相应DRNs的激活图
上面展示了一个可视化。
DRN-A-18: 随着卷积的扩张,存在网格效应。
DRN-B-26: 使用卷积代替最大池化,特征map网格效应减少了。
DRN-C-26: 随着扩张卷积的逐步缩小和残差连接的去除,网格效应进一步减小。
DRN-C-26中不同层级的特征map的可视化(显示了每层的最高平均激活值)
ImageNet验证集的Top-1和Top-5错误率
DRN-A-18和DRN-A-34的1-crop top-1准确率分别比ResNet-18和ResNet-34高2.43和2.92个百分点。(从ResNet-34到DRN-A-34,相对误差降低了10.5%。)
DRN-A-50在1-crop top-1准确率上超过ResNet-50一个百分点。
将ResNet直接转换为DRN-A,完全不改变模型的深度或容量,但是显著提高了分类精度。
每个DRN-C模型都显著优于相应的DRN-A。
由DRN-A-18衍生而来的DRN-C-26,其精度与较深的DRN-A-34相当。
由DRN-A-34衍生而来的DRN-C-42,其精度与较深的DRN-A-50相当。
DRN-C-42接近ResNet-101的精度,但后者层数是前者的2.4倍。
这里基于特征map激活值进行弱监督目标检测。
C=1000,因为ImageNet是一个1000类的ImageNet数据集。
在分辨率为W×H的C响应map中,f(C, W, H)为位置(W, H)的响应,每个位置的最可能的类别为g(W, H),边界框集合为Bi,其中t为激活阈值。bi为在Bi中选择的最小边界框。
与ground-truth的IOU大于0.5的框,被认为是准确的。
ImageNet验证集目标检测Top-1和Top-5错误率
DRN的性能优于相应的ResNet模型,说明了基本DRN结构的优势。
DRN-C-26的性能明显优于DRN-A-50,尽管深度要低得多。这表明,去网格化方案对于需要更详细的空间图像分析的应用程序具有特别显著的好处。
DRN-C-26也优于ResNet-101。
ResNet-101得到的平均IOU为66.6%。
DRN-C-26的表现比ResNet-101基准模型高出一个多百分点,尽管ResNet-101的网络层数是 DRN-C-26的4倍。
DRN-C-42模型的表现比ResNet-101基准模型高出4个百分点以上,尽管网络层数要低2.4倍。
DRN-C-26和DRN-C-42的表现都优于DRN-A-50,这表明去网格化结构对密集预测任务特别有利。
Cityscape数据集
如上所示,即使模型是利用密集标注像素级数据集进行监督训练的,DRN-A-50的预测结果也被网格效应所破坏。
相比之下,DRN-C-26的预测不仅更准确,而且明显更清晰。
作者的GitHub中还有一种DRN-D版本,它是DRN-C的一个简化版本。
在ImageNet的验证集上的分类错误率和模型参数的个数
在ImageNet的验证集上的分类错误率和模型参数的个数
所有的DRN都可以在参数较少(模型较小)的情况下获得较低的错误率。
分割的mIoU和模型参数个数(在多种学习率、随机缩放比率和旋转等设置下进行训练)。
DRN-D-22参数较少,达到68% mIoU,与DRN-C-26相同,高于DRN-A-50。
这里并没有逐步降低网络特征表示的分辨率,直到场景的空间结构不再可见,而是通过使最后的输出层始终保持较高空间分辨率。提高了图像分类精度,最终DRN性能优于最先进的ResNet。