ResNeSt
Abstract
作者提出了一个新的模块,Split-Attention block分离注意力模块,能够跨特征图组使用注意力。像ResNet那种方式堆叠Split-Attention block得到的ResNet变体叫ResNeSt。作者将DeeplabV3中的backbone换成了ResNeSt,在ADE20K上的mIoU从42.1%提到了45.1%。
1 Introduction
前两段都会提出问题。
第一段说在图像分类上,大尺度的神经架构搜索(Neural Architecture Search,NAS)很大程度上提高了分类精度。然后问题来了:虽然NAS有SOTA的性能,但是NAS驱动的模型并没有去优化训练效率,也没有减少在通用的处理硬件(CPU/GPU)上的内存占用。由于这些模型训练要消耗大量内存,因此大部分的NAS模型在单GPU上训练,即使使用合适的单设备batch-size,这就限制了NAS驱动的模型的应用,特别是在密集预测如分割上。
第二段说ResNet模型存在的问题,即ResNet模型最初提出来是为了进行图像分类的,又因为感受野尺寸的限制以及缺少跨通道间的交互,那么这些模型就有可能不适合其他的任务。作者指出CV中各种任务的性能提升,都是对ResNet进行修改来去适应特定的CV任务,如增加各种模块,金字塔模块、引入长距离连接或使用跨通道特征图注意。论文还说最近的那些使用组卷积或depth-wise卷积的分类任务,虽然他们在计算和准确度上有很好的平衡,但由于他们独立的特征表示不能够获取跨通道的关系,因此他们不能很好的迁移到别的CV任务中去。
之后说了文章了两个贡献:第一个就是提出了一个Split-Attention block,弄出了一个ResNeSt backbone;第二个就是这个backbone这图像分类、目标检测、实力分割以及语义分割上都达到了SOTA。
2 Related Work
多路径和特征图注意力:SE-Net引入了一个channel-attention机制来自适应校准通道特征相应。SK-Net通过两个网络分支实现了特征图注意力。论文提出的结构就是在特征图组表示中生成通道级注意力,感觉缝合了。
神经架构搜索NAS(Neural Architecture Search):随着计算能力的提升,人们的兴趣从人造架构转移到了系统地搜索自适应地使用特定任务的体系结构。但是NAS驱动模型的元网络结构都是不同的且内存消耗贼大,因此很难建立下游模型。
3 Split-Attention Networks
3.1 Split-Attention Block
Feature-map Group
首先借鉴了ResNeXt网络的思 想,提出了一个超参数——cardinality基数K,将特征在通道方向上分成K个组(尺寸不变),每一个group叫做cardinal group;在论文中又提出了一个新的超参数——radix R,即在一份cardinal group中分成R个splits。那么特征图总组数为G=KR,对每一个组都用相同的变换{F1,F2,…,F3},于是就得到了每个组的intermediate representation Ui=Fi(X), for i ϵ {1,2,…,G}。
Split Attention in Cardinal Groups
在具体的一个cardinal group中的实现如上图所示,即上图中每一个cardinal group里面最底下的split attention block的内部图就是右图的样子。右图input有r个即r个splits。
(1)先对每个splits经过transformation之后得到的intermediate representation进行element-wise累加。比如,对第k个cardinal group来说,累加公式为:其中H,W,C是ResNeSt block之前input feature的维度。
(2)全局的上下文信息可以用全局平均池化在不同的空间维度间收集起来,第c个component(c∈{1,2,…,C/K})的计算方式:就是将每个channel单独拿出来,就是一个H×W的矩形,对这个矩形所有元素进行求和取平均,就得到
,而整个的
是一个维度为
的列向量这个
相当于是一个channel-wise attention的作用,它每一列上的数字,就对应着这个channel上的特征图的重要程度,后面还有一个softmax。
(3)最终,当前cardinal group里面的每一个splits都会按照一定的权重加起来,输出的特征图就是当前cardinal group的特征图。对于
中第c个channel的计算,有
其中
是soft assignment weight(软分配权重),当分叉split数R为1就用sigmoid,分叉数>1就用softmax
mapping 是基于全局上下文表示
来决定每一个split的第c个channel的权重。
ResNeSt Block
最后回到图1的ResNeSt block,经过Split-Attention Block之后得到的输出会被简单的concat起来:V=Concat{V1,V2,…,VK},经过1×1卷积改变通道数,最后再加上ResNet经典的跳远连接,最终的输出为Y=V+X。
Relation to Existing Attention Methods
利用全局上下文来预测channel-wise attention factors是首次在SENet中提出来的。文章与SENet的Squeeze-and-Excitation不同的是:ResNeSt是对每一个cardinal group来进行的,而SENet是在整个block上进行的。