Coordinate Attention (CA) 可以插入到移动网络中,如助力MobileNetV2、EfficientNet等网络涨点,性能优于SE、CBAM等注意力模块,还可提高检测、分割性能,代码已开源!
作者单位:南洋理工大学
代码:https://github.com/Andrew-Qibin/CoordAttention
论文:https://arxiv.org/pdf/2103.02907.pdf
移动网络设计的最新研究表明,通道注意力(例如,SE注意力)对于提升模型性能具有显著效果,但它们通常会忽略位置信息,这对于生成空间选择性注意图非常重要。
在本文中,我们通过将位置信息嵌入到通道注意力中提出了一种新颖的移动网络注意力机制,我们将其称为“coordinate attention”。与通过2D全局池化将特征张量转换为单个特征向量的通道注意力不同,coordinate注意力将通道注意力分解为两个1D特征编码过程,分别沿两个空间方向聚合特征。这样,可以沿一个空间方向捕获远程依赖关系,同时可以沿另一空间方向保留精确的位置信息。
然后将生成的特征图分别编码为一对方向感知和位置敏感的注意图,可以将其互补地应用于输入特征图,以增强关注对象的表示。
我们的coordinate注意力很简单,可以灵活地插入到经典的移动网络中,例如MobileNetV2,MobileNeXt和EfficientNet,而几乎没有计算开销。
协调注意块(Coordinate Attention Blocks)
算法细节(推荐看原文,深入学习)
我们的注意力集中在两个步骤中,利用精确的位置信息对渠道关系和远程依存关系进行编码:嵌入信息和协调注意力生成。所建议的坐标注意块的图可以在图2的右侧找到。在下文中,我们将对其进行详细描述。
坐标信息嵌入
全局池通常用于频道注意中以对空间信息进行全局编码,但是它将全局空间信息压缩到频道描述符中,因此很难保留位置信息,这对于在视觉任务中捕获空间结构至关重要。为了鼓励注意力块利用精确的位置信息在空间上捕获远程交互,我们将等式中公式化的全局池分解。
式(1)进行一对1D要素编码操作。具体来说,给定输入X,我们使用池核的两个空间范围(H,1)或(1,W)分别沿水平坐标和垂直坐标对每个通道进行编码。因此,高度为h的第c个通道的输出可表示为
类似地,第c个通道在宽度w处的输出可以写成
上面的两个变换分别沿两个空间方向聚合了特征,从而生成了一对方向感知的特征图。这与产生单个特征向量的通道注意方法中的压缩操作(等式(1))完全不同。这两个变换还使我们的注意力块能够捕获沿一个空间方向的远距离依赖关系,并沿另一空间方向保留精确的位置信息,这有助于网络更准确地定位感兴趣的对象。
协调注意力生成
如上所述等式(4)和等式(5)启用全局接受域并编码精确的位置信息。为了利用由此产生的表现形式,我们提出了第二种转换,称为坐标注意力生成。我们的设计参考以下三个标准。首先,关于移动环境中的应用程序,新的转换应该尽可能简单和便宜。其次,它可以充分利用捕获的位置信息,从而可以准确地突出显示感兴趣的区域。最后但并非最不重要的一点是,它还应该能够有效地捕获渠道间的关系,这在现有研究中已被证明是必不可少的。
设计轻量级注意力块的一些技巧
- SiLU激活(代码中的h_swish)比ReLU6更好
- 水平或垂直方向注意都与SE注意相同
- 当应用于MobileNeXt时,在第一个深度3x3卷积后添加关注块效果更好
- 请注意,如果在水平和垂直要素之间应用softmax,结果是否会更好
实验结果
大量实验表明,我们的coordinate注意力不仅有益于ImageNet分类,而且更有趣的是,它在下游任务(如目标检测和语义分割)中表现更好。