logo 您当前浏览器版本过低,为了不影响您的使用,建议您使用最新的谷歌浏览器、火狐浏览器、 360浏览器,更换浏览器后使用更流畅!(注意!双核浏览器请切换为极速模式)

ResNet最强改进版来啦!ResNest在多项任务中达到SOTA

发布时间:2020-06-12

2015 年,ResNet 横空出世,一举斩获 CVPR 2016 最佳论文奖,而且在 Imagenet 比赛的三个任务以及 COCO 比赛的检测和分割任务上都获得了第一名。四年过去,这一论文的被引量已达43413次。


ResNet最强改进版来啦!ResNest在多项任务中达到SOTA1.jpg.jpg


最近,来自亚马逊、加州大学戴维斯分校的张航、李沐、Alexander Smola 等研究者进一步改进了 ResNet,提出了ResNeSt,在性能上有显著提升,但参数量并没有显著增加,超越了之前的 ResNeXt、SENet 等模型。


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


ResNet最强改进版来啦!ResNest在多项任务中达到SOTA3.png

论文地址: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 优于其他拥有相似模型复杂度的网络。

  • ResNeSt-50在224×224的ImageNet上,实现了81.13%的TOP-1精度,比之前最好的ResNet变体精度高出1%以上。

  • 简单地用ResNeSt-50替换ResNet-50骨干,可以让MS-COCO上的FasterRCNNNN的mAP,从39.25%提高到42.33%;ADE20K上的DeeplabV3的mIoU,从42.1%提高到45.1%。

这些改进对下游任务有很大的帮助,包括目标检测、实例分割和语义分割。

ResNet最强改进版来啦!ResNest在多项任务中达到SOTA4.png

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

Split-Attention 网络


Split-Attention 块


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

ResNet最强改进版来啦!ResNest在多项任务中达到SOTA5.png

特征图组(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 个基数组的表征为:,k ∈ 1, 2, ...K。带有嵌入 channel-wise 统计数据的全局上下文信息可以通过全局池化来获得。第 c 个分量的计算公式为:

ResNet最强改进版来啦!ResNest在多项任务中达到SOTA6.png

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

ResNet最强改进版来啦!ResNest在多项任务中达到SOTA7.png

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 块的整体对比。

ResNet最强改进版来啦!ResNest在多项任务中达到SOTA8.png

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

ResNet最强改进版来啦!ResNest在多项任务中达到SOTA9.png

模型的跨界:我拿Transformer去做目标检测,结果发现效果不错!10.jpg