Coordinate Attention for Efficient Mobile Network Design(CVPR2021)
文章目录
- Coordinate Attention for Efficient Mobile Network Design(CVPR2021)
- 摘要
- 1.引言
- 2.相关工作
- 3.方法:Coordinate Attention
- 3.1.Revisit Squeeze-and-Excitation Attention
- 3.2.Coordinate Attention Blocks
- 3.2.1.Coordinate Information Embedding
- 3.2.2.Coordinate Attention Generation
- 3.3.Implementation
- 4.实验
- 5.结论
实验部分详见原文,文章为原文翻译,如有错误请参照原文
摘要
-
挑战:最近在移动网络设计的研究在通道注意力上(如SENet)表现出引人注意的效果,但是他们普遍忽略了位置信息,这对生成空间注意力特征映射是重要的
-
方法:
- 在本文中,我们通过将位置信息嵌入到通道注意力中,提出一种新颖的移动网络注意力机制,名为“coordinate attention”
- 不同于通道注意力将特征张量经过二维池化操作转换成单一特征向量,coordinate attention将通道注意力分解为两个一维特征,分别沿两个空间方向聚集特征
- 这样可以在一个空间方向上捕获远程依赖关系,同时在另一个空间方向上保持精确的位置信息
- 然后将得到的特征图分别编码为一对方向感知和位置敏感的注意映射,它们可以互补地应用于输入特征映射,以增强感兴趣目标的表示
- 我们的coordinate attention 是简单的,可以灵活地插入经典的移动网络,如MobileNetV2, MobileNeXt,是几乎没有计算开销的高效率网络
-
贡献:
-
大量的实验表明,我们的 coordinate attention 关注不仅有利于ImageNet分类,更有趣的是,在下游任务中,如目标检测和语义分割中表现更好
-
code:https://github.com/Andrew-Qibin/CoordAttention
1.引言
Figure 1. Performance of different attention methods on three classic vision tasks. The y-axis labels from left to right are top-1 accuracy, mean IoU, and AP, respectively. Clearly, our approach not only achieves the best result in ImageNet classification [33] against the SE block [18] and CBAM [44] but performs even better in down-stream tasks, like semantic segmentation [9] and COCO object detection [21]. Results are based on MobileNetV2 [34].
1st Para:
- 注意机制,用来告诉模型“what”和“where”,已经被广泛研究,并提高现代深度神经网络的性能
- 然而,它们在移动网络中的应用(模型大小有限)明显落后于大型网络
- 这主要是因为大多数注意力机制带来的计算开销对于移动网络来说是无法承受的
2st Para:
- 考虑到移动网络有限的计算能力,迄今为止,移动网络中最流行的注意力机制仍然是(squeeze-and-excitation, SE)注意力
- 它在2D全局池化的帮助下计算通道注意力,并以相当低的计算成本提供显著的性能提升
- 然而,SE注意力只考虑了通道间信息的编码,而忽略了位置信息的重要性,而位置信息对于视觉任务中捕获目标结构至关重要
- 后来的研究,比如BAM和CBAM试图通过降低输入张量的通道维数,然后使用卷积计算空间注意力来利用位置信息,如Figure 2(b)
- 然而,卷积只能捕获局部关系,而不能对视觉任务所必需的长期依赖关系进行建模
3st Para:
- 在本文中,除了第一项工作之外,我们提出了一种新颖有效的注意机制,通过将位置信息嵌入到通道注意中,使移动网络能够关注大区域,同时避免产生显著的计算开销
- 为了减轻二维全局池化造成的位置信息丢失,我们将通道注意分解为两个并行的一维特征编码过程,以有效地整合空间坐标信息到生成的注意力映射
- 具体来说,我们的方法利用两个一维全局池化操作,分别将垂直和水平方向的输入特征聚合到两个独立的方向感知特征映射中
- 这两个嵌入了特定方向信息的特征映射被分别编码成两个注意力映射,每个注意力映射可以沿一个空间方向捕获输入特征映射的远程依赖关系
- 因此,位置信息可以保存在生成的注意力映射中
- 然后,通过乘法将两个注意映射应用于输入特征映射,以强调感兴趣的表示
- 我们将提出的注意方法命名为coordinate attention,因为它可以区分空间方向(即坐标)并生成坐标感知的注意力映射
4st Para:
- 我们的coordinate attention 提供了以下优势
- 首先,它不仅可以捕获跨通道信息,还可以捕获方向感知和位置敏感信息,这有助于模型更准确地定位和识别感兴趣的目标
- 其次,我们的方法灵活且轻量级,可以很容易地插入到移动网络的经典构建块中,例如MobileNetV2中提出的residual块和MobileNeXt中提出的sandglass块,通过强调信息表示来增强特征
- 第三,作为一个预训练模型,我们的coordinate attention 可以为移动网络的下游任务带来显著的性能提升,特别是对于那些密集预测的任务(例如,语义分割),我们将在我们的实验部分中展示
5st Para:
- 为了证明本文提出的方法相对于以往移动网络关注方法的优势,我们在ImageNet分类和流行的下游任务(包括目标检测和语义分割)中进行了大量实验
- 通过相当数量的可学习参数和计算,我们的网络在ImageNet上的top1分类准确率中实现了0.8%的性能提升
- 在目标检测和语义分割方面,我们也观察到与其他注意机制的模型相比有了显著的改进,如Figure 1
- 我们希望我们简单高效的设计能够促进未来移动网络注意力机制的发展
2.相关工作
Figure 2. Schematic comparison of the proposed coordinate attention block © to the classic SE channel attention block [18] (a) and CBAM [44] (b). Here, “GAP” and “GMP” refer to the global average pooling and global max pooling, respectively. ‘X Avg Pool’ and ’Y Avg Pool’ refer to 1D horizontal global pooling and 1D vertical global pooling, respectively.
3.方法:Coordinate Attention
- coordinate attention block可以被看作是一个旨在增强移动网络学习特征的表达能力的计算单元
- 它可以取任何中间特征张量 X = [ x 1 , x 2 , … , x C ] ∈ R C × H × W \mathbf{X} = [\mathbf{x}_1,\mathbf{x}_2,\ldots,\mathbf{x}_C] \in \mathbb{R}^{C\times H\times W} X=[x1,x2,…,xC]∈RC×H×W 作为输入并输出具有增广表示的与 X \mathbf{X} X 尺寸相同的变换张量 Y = [ y 1 , y 2 , … , y C ] \mathbf{Y} = [\mathbf{y}_1,\mathbf{y}_2,\ldots,\mathbf{y}_C] Y=[y1,y2,…,yC]
- 为了清晰地描述所提出的coordinate attention,我们首先回顾在移动网络中广泛使用的SE注意
3.1.Revisit Squeeze-and-Excitation Attention
1st Para:
- 如文献[18]所示,标准卷积本身很难对通道关系进行建模
- 显式地构建通道相互依赖关系可以提高模型对最终分类决策贡献更大的信息通道的敏感性
- 此外,使用全局平均池化还可以帮助模型捕获全局信息,这是卷积所缺乏的
2st Para:
- 在结构上,SE块可分解为squeeze和excitation两个步骤,分别用于全局信息嵌入和通道关系的自适应重新校准
- 给定输入 X \mathbf{X} X ,对第 c c c 个通道的squeeze可以表示为:
z c = 1 H × W ∑ i = 1 H ∑ j = 1 W x c ( i , j ) , (1) z_c=\frac{1}{H\times W}\sum_{i=1}^{H}\sum_{j=1}^{W}x_c(i,j),\tag{1} zc=H×W1i=1∑Hj=1∑Wxc(i,j),(1)
- 其中 z c z_c zc 是第 c c c 个通道的输出
- 输入 X \mathbf{X} X 是直接来自一个卷积层与一个固定的核大小,因此可以视为一个集合的局部描述
- squeeze操作使得收集全局信息成为可能
3st Para:
- 第二步,excitation,旨在完全捕获通道关系,可以表示为:
X ^ = X ⋅ σ ( z ^ ) , (2) \hat{\mathbf{X}}=\mathbf{X}\cdot\sigma(\hat{\mathbf{z}}),\tag{2} X^=X⋅σ(z^),(2)
- 其中, ⋅ \cdot ⋅ 表示通道的乘法, σ \sigma σ 表示sigmoid, z ^ \hat{\mathbf{z}} z^ 是由转换函数生成的结果:
z ^ = T 2 ( ReLU ( T 1 ( z ) ) ) . (3) \hat{\mathbf{z}}=T_2(\text{ReLU}(T_1(\mathbf{z}))).\tag{3} z^=T2(ReLU(T1(z))).(3)
- 其中, T 1 T_1 T1 和 T 2 T_2 T2 是两个线性变换,可以通过学习来捕捉每个通道的重要性
4st Para:
- SE模块已广泛应用于最近的移动网络,并被证明是实现最先进性能的关键组件
- 然而,它只考虑通过建模通道关系来重新权衡每个通道的重要性,而忽略了位置信息,正如我们将在第4节中通过实验证明的那样,位置信息对于生成空间选择性注意图是重要的
- 在下面,我们介绍了一种新的注意块,它同时考虑了通道间关系和位置信息
3.2.Coordinate Attention Blocks
- 我们通过坐标信息嵌入和坐标注意生成两个步骤,对通道关系和远程依赖进行精确的位置信息编码
- 所提出的坐标注意块示意图如Figure 2.右侧所示
- 在下面,我们将详细描述它
3.2.1.Coordinate Information Embedding
1st Para:
- 全局池化通常用于通道注意力中,以全局编码空间信息,但它将全局空间信息压缩成一个通道描述符,因此难以保留位置信息,而位置信息对于在视觉任务中捕捉空间结构是至关重要的
- 为了鼓励注意力模块在空间上捕捉具有精确位置信息的长交互,我们将全局池化如公式(1)所示分解为一对一维特征编码操作
- 具体来说,给定输入 $ X $,我们使用两种空间范围的池化核 ( H , 1 ) (H, 1) (H,1) 和 ( 1 , W ) (1, W) (1,W),分别沿水平坐标和垂直坐标对每个通道进行编码
- 因此,第 $ c $ 个通道在高度 $ h $ 处的输出可以表示为:
z c h ( h ) = 1 W ∑ 0 ≤ i < W x c ( h , i ) . (4) z_c^h(h)=\frac{1}{W}\sum_{0\leq i<W}x_c(h,i). \tag{4} zch(h)=W10≤i<W∑xc(h,i).(4)
- 类似地,第 $ c $ 个通道在宽度 $ w $ 处的输出可以表示为:
z c w ( w ) = 1 H ∑ 0 ≤ j < H x c ( j , w ) . (5) z_c^w(w)=\frac{1}{H}\sum_{0\leq j<H}x_c(j,w). \tag{5} zcw(w)=H10≤j<H∑xc(j,w).(5)
2st Para:
- 上述两种变换分别沿两个空间方向聚合特征,生成一对方向感知特征映射
- 这与通道注意力方法中的压缩操作 Eq(1)产生单一特征向量的方式截然不同
- 这两种变换还使我们的注意力模块能够沿一个空间方向捕捉长程依赖关系,并沿另一个空间方向保留精确的位置信息,从而帮助网络更准确地定位感兴趣的目标
3.2.2.Coordinate Attention Generation
1st Para:
- 如上所述,Eq(4)和 Eq(5)实现了全局感受野并编码了精确的位置信息
- 为了利用所得的表现力强的表示,我们提出了第二种变换,称为坐标注意力生成
- 我们的设计遵循以下三个标准
- 首先,新变换在移动环境中的应用应该尽可能简单和廉价
- 其次,它可以充分利用捕获到的位置信息,以便准确突出感兴趣的区域
- 最后但同样重要的是,它还应能够有效捕捉通道间的关系,这在现有研究中已被证明是至关重要的
2st Para:
- 具体来说,给定由 Eq 4 和 Eq 5 生成的聚合特征图,我们首先将它们拼接起来,然后将它们发送到共享的 1 × 1 1 \times 1 1×1 卷积变换函数 $ F_1 $,得到:
f = δ ( F 1 ( [ z h , z w ] ) ) , (6) \mathbf{f}=\delta(F_1([\mathbf{z}^h,\mathbf{z}^w])), \tag{6} f=δ(F1([zh,zw])),(6)
- 这里, [ ⋅ , ⋅ ] [\cdot, \cdot] [⋅,⋅] 表示沿空间维度的连接操作,$ \delta $ 是非线性激活函数,$ f \in \mathbb{R}^{C/r \times (H+W)} $ 是中间特征图
- 其中 $ r $ 是减少比例,用于控制块大小,就像 SE 块中一样,它编码了水平方向和垂直方向的空间信息
- 然后,我们沿着空间维度将 $ f $ 分割成两个单独的张量 $ f_h \in \mathbb{R}^{C/r \times H} $ 和 $ f_w \in \mathbb{R}^{C/r \times W} $
- 再利用另外两个 1 × 1 1 \times 1 1×1 卷积变换 $ F_h $ 和 $ F_w $ 分别将 $ f_h $ 和 $ f_w $ 转换为与输入 $ X $ 通道数相同的张量,得到:
g h = σ ( F h ( f h ) ) , (7) \mathbf{g}^h=\sigma(F_h(\mathbf{f}^h)), \tag{7} gh=σ(Fh(fh)),(7)
g w = σ ( F w ( f w ) ) . (8) \mathbf{g}^w=\sigma(F_w(\mathbf{f}^w)). \tag{8} gw=σ(Fw(fw)).(8)
- 回想一下,$ \sigma $ 是 sigmoid 函数
- 为了降低模型复杂度,我们通常使用适当的减少比例 $ r $(例如,32)来减少 $ f $ 的通道数
- 我们将在实验部分讨论不同减少比例对性能的影响
- 然后,输出 $ g_h $ 和 $ g_w $ 分别被扩展并用作注意力权重
- 最后,我们的坐标注意力块的输出 $ Y $ 可以写成:
y c ( i , j ) = x c ( i , j ) × g c h ( i ) × g c w ( j ) . (9) y_c(i,j)=x_c(i,j)\times g_c^h(i)\times g_c^w(j). \tag{9} yc(i,j)=xc(i,j)×gch(i)×gcw(j).(9)
3st Para: Discussion
- 与仅关注重新加权不同通道重要性的通道注意力不同,我们的坐标注意力块还考虑编码空间信息
- 如上所述,沿水平和垂直方向的注意力同时应用于输入张量
- 两个注意力图中的每个元素反映了感兴趣的对象是否存在于相应的行和列中
- 这种编码过程使得我们的坐标注意力能够更准确地定位感兴趣对象的确切位置,从而帮助整个模型更好地识别
- 我们将在实验部分详细展示这一点
3.3.Implementation
Figure 3. Network implementation for different network architectures. (a) Inverted residual block proposed in MobileNetV2;(b) Sandglass bottleneck block proposed in MobileNeXt.
- 由于本文的目标是探究一种更好的方法来增强移动网络的卷积特征,在这里,我们以两种经典的轻量级架构(即 MobileNetV2 和 MobileNeXt)为例,这两种架构具有不同类型的残差块,以展示所提出的坐标注意力块相对于其他著名的轻量级注意力块的优势
- Figure 3显示了我们如何将注意力块插入到MobileNetV2的反向残差块和MobileNeXt的 sandglass 块中
4.实验
5.结论
- 本文提出了一种新的移动网络轻量级注意机制——coordinate attention
- 我们的coordinate attention继承了通道注意方法(例如,squeeze-and-excitation注意)的优势,这些方法可以模拟通道间的关系,同时通过精确的位置信息捕获远程依赖关系
- 在ImageNet分类、目标检测和语义分割方面的实验证明了该方法的有效性