【Resnet最强变体】ResNeSt学习笔记 --- ResNeSt: Split-Attention Networks

代码:https://github.com/zhanghang1989/ResNeSt
论文:https://hangzhang.org/files/resnest.pdf

尽管图像分类模型最近不断发展,但是由于其简单而模块化的结构,大多数下游应用程序(例如目标检测和语义分割)仍将ResNet变体用作backbone。ResNeSt展示了一个简单的模块:Split-Attention,该块可实现跨特征图的注意力。通过以ResNet样式堆叠这些Split-Attention块,作者获得了一个称为ResNeSt的新ResNet变体。ResNeSt保留了完整的ResNet结构,可直接用于下游任务,而不会引起额外的计算成本。

给出ResNeSt战绩如下:

  • ResNeSt-50在ImageNet上实现了81.13%的top-1。
  • 简单地用ResNeSt-50替换ResNet-50,可以将MS-COCO上的FasterRCNN的mAP从39.25%提高到42.33%
  • 简单地用ResNeSt-50替换ResNet-50,可以将ADE20K上的DeeplabV3的mIoU从42.1%提高到45.1%

性能得到了显著的提升,但是参数量并没有增加,与ResNeXt、SEnet等前辈们的pk结果如下:

【Resnet最强变体】ResNeSt学习笔记 --- ResNeSt: Split-Attention Networks_第1张图片

论文贡献

  • 探索了ResNet的结构修改,提出Split-Attention,将特征图的注意力分散到各个网络模块中

更具体地说,我们的每个块都将特征图分为几组(沿通道维数)和细粒度的子组或分割,其中每组的特征表示是通过其分割表示的加权组合来确定的( 根据全局上下文信息选择权重)。作者将结果单元称为Split-Attention块,它保持简单且模块化。通过堆叠几个Split-Attention块创建了一个类似ResNet的网络,称为ResNeSt(S代表‘split’

  • 在图像分类和迁移学习应用的大规模基准测试。

作者发现,利用ResNeSt主干的模型能够在几个任务上达到最先进的性能,即:图像分类,对象检测,实例分割和语义分割。本文所提出的ResNeSt优于所有现有的ResNet变体,并且具有相同的计算效率,甚至比通过神经架构搜索生成的最新的CNN模型[55]达到了更好的速度精度权衡,如表1所示。

ResNeSt

Relate work

  • GoogleNet - 采用Multi-path机制,其中每个网络块均由不同的卷积kernel组成
  • ResNeXt - 在Resnet bottle中采用组卷积,multi-path结构转换为统一操作。
  • SE-Net - 通过自适应地重新校准通道响应来引入通道注意力(channel-attention)机制
  • SK-Net - 通过两个网络分别引入特征图注意力(feature-map)

受先前方法的启发,ResNetSt是上述思想的集大成者,ResNeSt将 channel-wise attention概括为特征图组表示,这样就可以使用统一的CNN运算符对其进行模块化和加速。
ResNeSt和SE-Net、SK-Net的对应图示如下:
【Resnet最强变体】ResNeSt学习笔记 --- ResNeSt: Split-Attention Networks_第2张图片
(翻译)图2中显示了Split-Attention单元的详细视图。为简单起见,我们在基数主要视图中显示ResNeSt块(具有相同基数组索引的特征图组彼此相邻)。我们在实际实现中使用了基数优先级,可以通过组卷积和标准CNN层对其进行模块化和加速。

Split-Attention Networks

  • Split-Attention Block

Split Attention结构如下图所示:
【Resnet最强变体】ResNeSt学习笔记 --- ResNeSt: Split-Attention Networks_第3张图片

从Fig 1和Fig 2可以看到,都有split的影子,比如Fig 1中的K(k) 和Fig 2 中的R(r)都是超参数,一共有G = K * R组。

    • Feature-map Group

与ResNeXt块中一样,输入特征图可以沿通道维度分为几组,特征图组的数量由基数超参数K给出。作者将结果特征图组称为基数组。引入了一个新的基数超参数R,该基数指示了基数组中的拆分数。那么输入X会沿着通道尺寸被拆分成G = K * R组。

    • Split Attention in Cardinal Groups

与[30,38]一样,可以通过跨多个拆分的元素加和来获得每个基数组的组合表示。第k个基数组表示为:
在这里插入图片描述
具有嵌入的通道统计信息的全局上下文信息可以通过跨空间维度的s ** k 全局平均池来收集
s ** k由如下计算得到:
在这里插入图片描述
V ** k 基数组表示的加权融合可以使用通道方式的软注意力进行聚合,其中每个特征图通道均使用加权拆分组合生成。第c个通道计算如下:
在这里插入图片描述
其中,
【Resnet最强变体】ResNeSt学习笔记 --- ResNeSt: Split-Attention Networks_第4张图片

    • ResNeSt Block

将基数组表示形式沿通道维度连接起来:
在这里插入图片描述
与标准残差块一样,我们的Split-Attention块的最终输出Y是使用快捷连接生成的:Y = V +X,如果输入输出的feature map尺寸一样。对于具有跨步的块,将适当的变换T应用于残差连接以对齐输出形状:
在这里插入图片描述
T可以是跨步卷积或带池组合卷积。

网络和训练

  • 网络调整

平均下采样

当迁移学习的下游应用是密集的预测任务(例如检测或分段)时,保留空间信息就变得至关重要。卷积层需要使用零填充策略来处理特征图边界,这在转移到其他密集的预测任务时通常不是最佳的。 而不是在过渡块(对空间分辨率进行下采样)上使用分步卷积,我们使用内核大小为3 * 3的平均池化层。

来自Resnet-D的调整

我们还采用了两个简单但有效的ResNet修改,这些修改由:
(1)将第一个7 * 7卷积层替换为三个连续的3* 3卷积层,它们具有相同的感受野大小,并且计算成本与原始设计相似。
(2)对于步长为2的过渡块,在1 * 1卷积层之前,将2 * 2平均池化层添加到快捷连接。

  • 训练策略

此外,论文还提供了很多训练tricks,如下:

  • Large Mini-batch Distributed Training.
  • Label Smoothing
  • Auto Augmentation.
  • Mixup Training
  • Large Crop Size
  • Regularization

实验结果

  • 图像分类

【Resnet最强变体】ResNeSt学习笔记 --- ResNeSt: Split-Attention Networks_第5张图片

  • 目标检测

【Resnet最强变体】ResNeSt学习笔记 --- ResNeSt: Split-Attention Networks_第6张图片

  • 图像分割

【Resnet最强变体】ResNeSt学习笔记 --- ResNeSt: Split-Attention Networks_第7张图片
参考:
https://hangzhang.org/files/resnest.pdf

你可能感兴趣的:(计算机视觉,深度学习)