20

张航、李沐等人提出ResNet最强改进版:性能提高3%,参数不增

 4 years ago
source link: https://www.jiqizhixin.com/articles/2020-04-18-3
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

2015 年,ResNet 横空出世,一举斩获 CVPR 2016 最佳论文奖,而且在 Imagenet 比赛的三个任务以及 COCO 比赛的检测和分割任务上都获得了第一名。四年过去,这一论文的被引量已超 40000 次,也陆续出现了很多变体。最近,来自亚马逊、加州大学戴维斯分校的张航、李沐、Alexander Smola 等研究者进一步改进了 ResNet,性能显著提升,但参数量并没有显著增加,超越了之前的 ResNeXt、SENet 等模型。

该研究的一作,亚马逊应用科学家张航表示:「分类网络通常作为下游应用的核心,但是最近很多分类问题的工作没有保持之前 ResNet 那样的模块化的设计,导致目标检测等主流应用的研究还在使用 ResNet。所以我们设计了新的 ResNet 变体 ResNeSt,可以直接应用到已有的主流模型中,显著提高 Mask R-CNN,Cascade R-CNN 等模型的结果(~3%)。」

6B3eYb2.png!web

  • 论文地址:https://hangzhang.org/files/resnest.pdf

  • 项目地址:https://github.com/zhanghang1989/ResNeSt

尽管图像分类模型不断进化,但目标检测、语义分割等多数下游任务仍在使用 ResNet 变体作为其骨干网络,因为后者拥有简单而模块化的结构。

在这份论文中,研究者提出了一种模块化 Split-Attention 块,可以将注意力分散到若干特征图组中。按照 ResNet 的风格堆叠这些 Split-Attention 块,研究者得到了一个 ResNet 的新变体,称为 ResNeSt。它保留了整体的 ResNet 结构,可直接用于下游任务,但没有增加额外的计算量。

研究者致力于对 ResNet 进行简单的架构修改。具体地说,每个块都将特征图分为几组(根据通道维数)和更细粒度的子组或 splits,其中,每个组的特征表示是通过它的 splits 表示的加权组合确定的(根据全局上下文信息选择权重)。研究者将得到的结果单元称为 Split-Attention 块,它简单且模块化。

实验表明,ResNeSt 优于其他拥有相似模型复杂度的网络。 ResNeSt-50 在 ImageNet 上实现了 81.13% 的 top 1准确率,比此前最好的 ResNet 变体高 1% 以上。 这一提升对于目标检测、实例分割、语义分割等下游任务来说很有意义。此外, 将 ResNet-50 的骨干网络替换为 ResNeSt-50,MS-COCO 上 FasterRCNN 的 mAP 从 39.25% 提升至 42.33%,ADE20K 上 DeeplabV3 的 mIoU 从 42.1% 提升至 45.1%。

B7jQ7vR.png!web

表 1:如左图所示,在速度与准确率的平衡方面,ResNeSt 达到了 SOTA 水平;右上图为 ResNeSt 在 ImageNet 上的 Top-1准确率;右下图为迁移学习结果:MS-COCO 上的目标检测mAP 以及 ADE20K 上的语义分割mIoU。

Split-Attention 网络

Split-Attention 块

Split-Attention 块是一个由特征图组和 split attention 运算组成的计算单元,下图展示了 Split-Attention 块的整体思路:

BZ7j6vQ.png!web

特征图组(Feature-map Group)

与 ResNeXt 块一样,输入的特征图可以根据通道维数被分为几组,特征图组的数量由一个基数超参数K 给出,得到的特征图组被称为基数组(cardinal group)。研究者引入了一个新的底数超参数R,该参数规定了基数组的 split 数量。

然后将块输入 X 根据通道维数 X = {X1, X2, ...XG} 分为 G = KR 个组。在每个单独的组中应用不同的变换 {F_1, F_2, ...F_G},则每个组的中间表征为 Ui = Fi(Xi), i ∈ {1, 2, ...G}。

基数组中的 Split Attention 

根据 [30,38],每个基数组的组合表征可以通过跨多个 split 的元素求和融合来获得。第 k 个基数组的表征为: ueuyqqu.png!web ,k ∈ 1, 2, ...K。带有嵌入 channel-wise 统计数据的全局上下文信息可以通过全局池化来获得。第 c 个分量的计算公式为:

6zEnAvf.png!web

基数组表征 V^k ∈ R^{H×W×C/K} 的加权融合通过使用 channel-wise 软注意力来聚合。其中,每个特征图通道都是在若干 split 上使用一个加权组合获得的。第 c 个通道的计算公式如下:

jYBF7nJ.png!web

ResNeSt 块

随后,将基数组表征根据通道维数进行级联:V = Concat{V^1 , V^2 , ...V^K}。和标准残差块中一样,如果输入和输出特征图共享相同的形状,则使用快捷连接生成 Split-Attention 块的最终输出 Y,Y = V +X。对于步幅较大的块,将适当的变换 T 应用于快捷连接以对齐输出形状:Y = V + T(X)。T 可以是跨步卷积或带有池化的组合卷积。

图 1 右为 Split-Attention 块的实例,组变换 F_i 是 1×1 卷积,然后是 3×3 卷积,注意力权重函数 G 使用两个带有 ReLU激活函数的全连接层进行参数化。

与现有注意力方法的关系

squeeze-and-attention(原论文叫 excitation)是 SE-Net 论文中首先引入的,核心想法是应用全局上下文预测 channel-wise 的注意力因素。若 radix=1,Split-Attention 块可将 squeeze-and-attention 操作应用于每个基数组,而 SE-Net 则在整个块的顶部运行,与多个组无关。此前 SK-Net 等模型引入了两个网络分支之间的特征注意力,但这些操作没有针对训练效率及扩展到大规模神经网络进行优化。新的方法扩展了之前的特征图注意力相关研究,但其实现在计算上仍然是高效的。

图 1 展示了 ResNeSt 块与 SE-Net 和 SK-Net 块的整体对比。

b2qEruj.png!web

Split-Attention 的细节可参考图 2。

eumaEjA.png!web

实验

第一个实验研究了 ResNeSt 在 ImageNet 2012 数据集上的图像分类性能,结果如表 3 所示。ResNeSt50 达到了 81.13% 的 top-1 准确度。

Qjya2uY.png!web

表 3:ImageNet 上的图像分类结果。

表 5 和表 6 显示了 ResNeSt 在目标检测和实例分割任务中的表现。

JZbYRfn.png!web

表 5:在 MS-COCO验证集上的目标检测性能结果。

在目标检测任务中,与使用标准 ResNet 的基线相比,ResNeSt 骨干网络能够将模型在 Faster-RCNN 和 CascadeRCNN 上的 mAP(平均精度均值)提高大约 3%。

nMBvYnR.png!web

表 6:在 MS-COCO验证集上的实例分割结果。

如表 6 所示,ResNeSt 骨干网络具有更好的性能,对于 Mask-RCNN,ResNeSt50 的性能优于基线,在 box/mask 任务中的性能分别提高了 2.85%/2.09%。而 ResNeSt101 的提高更多,为 4.03%/3.14%。对于 Cascade-Mask-RCNN,切换到 ResNeSt50 或 ResNeSt101 所产生的性能提升分别为 3.13%/2.36% 或 3.51%/3.04%。

下表 7 展示了 ResNeSt 在 ADE20K、Citscapes语义分割任务上的表现。

UZvUBjZ.png!web

表 7:在 ADE20K(左)、Citscapes(右)语义分割任务中的性能。

与之前的结果类似,使用 ResNeSt-50 骨干网络的 DeepLabv3 模型已经优于使用更深层 ResNet-101 骨干网络的 DeepLabv3 模型。具有 ResNeSt-101 骨干网络的 DeepLabV3 模型达到了 82.07% 的 pixAcc 和 46.91% 的 mIoU,据了解,这是为 ADE20K 提出的最佳单一模型。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK