本文提出了一个模块化的 Split-Attention 块,能够跨特征图组进行注意力操作

通过将这些 Split-Attention 块以 ResNet 方式叠加得到的一个新ResNet变体,称之为ResNeSt

本文网络保留了整个ResNet结构,可以直接用于下游任务,而不会引入额外的计算成本

介绍

我们研究了了ResNet的一个简单的结构性修改,在各个网络块中加入了特征图分割注意力机制。

我们的每个块都将特征图沿通道维度分为若干组和更细的子组或分块,其中每组的特征表示(输出?)是通过其分块的表示的加权组合来确定的.

我们把这样的单元称为 Split-Attention块。

通过堆叠几个 Split-Attention 块,我们创建了一个类似 ResNet 的网络,称为ResNeSt.

ResNeSt很容易被用作其他视觉任务的骨干网络,并且在多个任务上得到最先进的性能.

相关工作

现代CNN架构.
NIN首先使用全局平均池化层来代替全连接层,并采用1×1卷积层来学习特征图通道的非线性组合,这是第一种特征图注意力机制.

ResNet引入了跳层链接,缓解了深度神经网络中梯度消失的困难,并允许网络学习更深的特征表示.

多路和特征图注意力

多路径表示在GoogleNet中获得了成功.

ResNeXtResNet瓶颈块中采用了分组卷积,将多路径结构转换为统一的运算方式.

SE-Net引入了channel-attention.

SK Net引入feature-map attention.

受先前方法的启发,本文的网络将channel attention推广到特征图组表示中,可以模块化和使用统一的CNN操作符进行加速.

NAS

尽管最近的NAS生成的最先进的算法在图像分类方面取得了巨大成功,但元网络结构彼此不同,这使得他们难以用于下游任务.

我们的模型保留了ResNet元结构,可以直接应用在许多现有的下游模型上.

Split-Attention 网络

Split-Attention 块可以在不同的特征图组中进行特征图注意力机制.

Split-Attention Block

特征图组

特征图组的数目由cardinality超参数 KK给出.我们将得到的特征图组称为 cardinal组.

我们引入了一个新的radix超参数 RR,它表示cardinal组内进一步划分的splits数.

可以对每个单独的 split 应用一系列变换 {F1,F2,...,FG}\{\mathcal{F}_1,\mathcal{F}_2,...,\mathcal{F}_G\},那么每个 split 的中间表示便是 Ui=Fi(X)U_i = \mathcal{F}_i(X).

特征图组中的Cardinal

每个cardinal组的表示可以通过多个split的元素求和获得。

KKcardinal组的表示为 U^k=j=R(k1)+1RkUj\hat{U}^k=\sum^{Rk}_{j=R(k-1)+1}U_j.

其中 U^kRH×W×C/K,  k1,2,...,K\hat{U}^k \in \mathbb{R}^{H \times W \times C/K},\;k\in 1,2,...,K.

H,W,CH,W,C是块的输出的特征图的尺寸.

嵌入通道统计的全局上下文信息可以用全局平均池化收集各空间维度的数据

cc个通道为

sck=1H×Wi=1Hj=1WU^k(i,j)s^k_c = \frac{1}{H \times W}\sum^H_{i=1}\sum^W_{j=1}\hat{U}^k(i,j)

其中 skRC/Ks^k \in \mathbb{R}^{C/K}

cardinal组表示的加权融合 VkRH×W×C×KV^k \in \mathbb{R}^H \times W \times C \times K 通过按通道软注意力聚合的

每个特征图通道都使用channel-wise soft attention的加权组合生成,每个通道计算如下:

Vck=i=1Raik(c)UR(k1)+iV^k_c=\sum^R_{i=1}a^k_i(c)U_{R(k-1)+i}

其中 αik(c)\alpha^k_i(c) 表示(软)分配权重:

aik(c)={exp(Gic(sk))j=0Rexp(Gjc(sk))ifR>111+exp(Gjc(sk))ifR=1a^k_i(c)= \begin{cases} \frac{\exp(\mathcal{G}^c_i(s^k))}{\sum^R_{j=0}\exp(\mathcal{G}^c_j(s^k))} & if R>1 \\ \frac{1}{1+\exp(-\mathcal{G}^c_j(s^k))}& if R=1 \end{cases}

映射 Gic\mathcal{G}^c_i 根据全局上下文表示 sks^k 确定第 cc 个通道的每个 splits 的权重.

ResNeSt 块

cardinal组的表示沿着通道维度拼接:V=Concat{V1,V2,...,VK}V=Concat\{V^1,V^2,...,V^K\}

如同标准的残差块一样,若输入和输出特征图形状相同,最终输出YY是由跳层链接产生的:Y=V+XY=V+X.

对于有stride的块,将适当的变换 T\mathcal{T} 应用于跳层连接以对齐输出形状: Y=V+T(X)Y = V + T (X).例如,T\mathcal{T} 可以是跨步卷积或卷积和池化的组合。

实例化、加速和计算成本

组变换 Fi\mathcal{F}_i 由 1×1 卷积与3×3 卷积组成,映射(注意力权重函数) G\mathcal{G} 使用两个全连接层(ReLU)进行参数化.

具有相同的基数和通道数量下Split-Attention 块的参数数量和FLOPS与残差块大致相同

结论

这项工作提出了具有新颖的Split-Attention块的ResNeSt架构,可以普遍提高学习到的特征表示,在很多下游任务中作为骨干网络可以大大提升网络性能.

Split-Attention块容易操作,计算成本第,因此应该广泛适用于各种视觉任务