摘要:ResNest主要贡献是设计了一个Split-Attention模块,可以实现跨通道注意力。通过以ResNet样式堆叠Split-Attention块,获得了一个ResNet的变体。ResNest网络保留了完整的ResNet结构,可以直接用下游任务,而不会引起额外的计算成本。ResNest在分类、FasterRCNN、DeeplabV3上都有提升。

Resnet添加注意力机制 resnet 注意力机制_Resnet添加注意力机制

动机:著名的ResNet是针对图像分类设计的,对其他视觉任务的效果可能不是很好。在其他视觉任务中,使用图像金字塔或跨通道特征图注意力提高模型性能。因此ResNest希望能直接在backbone中实现跨通道的网络。

贡献:

1. 对ResNet进行修改,在单个网络内合并了特征图的拆分注意力。具体来说,把每个块的特征图分成几组(沿通道维度)和更细粒度的子组或分割,其中,每个组的特征表示是通过其分割表示的加权组合确定的。这个单元就是模块化的Split-Attention,通过叠加几个Split-Attention块,创建了一个类似ResNet的网络,即ResNest(S代表“split”)。

2. ResNest可用于图像分类、对象检测、实例分割、语义分割并取得良好的性能。在MS-COCO实例分割中,使用ResNeSt-101主干的Cascade-RCNN模型实现了48.3%的框mAP和41.56%的掩码mAP。我们的单个DeepLabV3 模型再次使用ResNeSt-101主干,在ADE20K场景解析验证集上的mIoU达到46.9%,比以前的最佳结果高出1%以上。

Resnet添加注意力机制 resnet 注意力机制_图像分类_02

   

图是SE-Net、SK-Net和ResNest的Block。ResNest应用了SK-Net中,使用1x1卷积分离channel,以及ResNext中Cardinal思想。Input输入分成k个Cardinal,每个Cardinal又分成r个Split。

Split Attention长这样:

 

Resnet添加注意力机制 resnet 注意力机制_池化_03

每个Cardinal中的r个Split通过1x1卷积分离通道和3x3卷积,加起来送进全局池化。文章里说的跨通道,就是指在k个Cardinal和r个Split中按比例切分通道数,然后在通道维度concatenta。

文章指出了残差网络中存在的问题:

1. 残差网络使用带步长的卷积,比如3×3卷积来减少图像的空间维度,这样会损失掉很多空间信息。对于像目标检测和分割领域,空间信息是至关重要的。而且卷积层一般使用0来填充图像边界,这在迁移到密集预测的其它问题时也不是最佳选择。因此本文使用的是核大小为3×3的平均池化来减少空间维度。

2. 将残差网络中的7×7卷积用3个3×3的卷积代替,拥有同样的感受野。将跳跃连接中的步长为2的1×1卷积用2×2的平均池化代替。