性能显著提升,参数量却没有明显增加。最新的 Split-Attention Networks 继承了 ResNet 简洁通用的特性。
2015 年,ResNet 横空出世,一举斩获 CVPR 2016 最佳论文奖,而且在 Imagenet 比赛的三个任务以及 COCO 比赛的检测和分割任务上都获得了第一名。四年过去,这一论文的被引量已超 40000 次,也陆续出现了很多变体。最近,来自亚马逊、加州大学戴维斯分校的张航、李沐、Alexander Smola 等研究者进一步改进了 ResNet,性能显著提升,但参数量并没有显著增加,超越了之前的 ResNeXt、SENet 等模型。
该研究的一作,亚马逊应用科学家张航表示:「分类网络通常作为下游应用的核心,但是最近很多分类问题的工作没有保持之前 ResNet 那样的模块化的设计,导致目标检测等主流应用的研究还在使用 ResNet。所以我们设计了新的 ResNet 变体 ResNeSt,可以直接应用到已有的主流模型中,显著提高 Mask R-CNN,Cascade R-CNN 等模型的结果(~3%)。」尽管图像分类模型不断进化,但目标检测、语义分割等多数下游任务仍在使用 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%。表 1:如左图所示,在速度与准确率的平衡方面,ResNeSt 达到了 SOTA 水平;右上图为 ResNeSt 在 ImageNet 上的 Top-1 准确率;右下图为迁移学习结果:MS-COCO 上的目标检测 mAP 以及 ADE20K 上的语义分割 mIoU。Split-Attention 块是一个由特征图组和 split attention 运算组成的计算单元,下图展示了 Split-Attention 块的整体思路:与 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}。根据 [30,38],每个基数组的组合表征可以通过跨多个 split 的元素求和融合来获得。第 k 个基数组的表征为:,k ∈ 1, 2, ...K。带有嵌入 channel-wise 统计数据的全局上下文信息可以通过全局池化来获得。第 c 个分量的计算公式为:基数组表征 V^k ∈ R^{H×W×C/K} 的加权融合通过使用 channel-wise 软注意力来聚合。其中,每个特征图通道都是在若干 split 上使用一个加权组合获得的。第 c 个通道的计算公式如下:随后,将基数组表征根据通道维数进行级联: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 块的整体对比。Split-Attention 的细节可参考图 2。第一个实验研究了 ResNeSt 在 ImageNet 2012 数据集上的图像分类性能,结果如表 3 所示。ResNeSt50 达到了 81.13% 的 top-1 准确度。表 5 和表 6 显示了 ResNeSt 在目标检测和实例分割任务中的表现。表 5:在 MS-COCO 验证集上的目标检测性能结果。在目标检测任务中,与使用标准 ResNet 的基线相比,ResNeSt 骨干网络能够将模型在 Faster-RCNN 和 CascadeRCNN 上的 mAP(平均精度均值)提高大约 3%。表 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 语义分割任务上的表现。表 7:在 ADE20K(左)、Citscapes(右)语义分割任务中的性能。与之前的结果类似,使用 ResNeSt-50 骨干网络的 DeepLabv3 模型已经优于使用更深层 ResNet-101 骨干网络的 DeepLabv3 模型。具有 ResNeSt-101 骨干网络的 DeepLabV3 模型达到了 82.07% 的 pixAcc 和 46.91% 的 mIoU,据了解,这是为 ADE20K 提出的最佳单一模型。