CVPR 2021 | CA:用于高效移动网络设计的同位注意力 | 代码开源

简介: Coordinate Attention (CA) 可以插入到移动网络中,如助力MobileNetV2、EfficientNet等网络涨点,性能优于SE、CBAM等注意力模块,还可提高检测、分割性能,代码已开源!

640.png


Coordinate Attention (CA) 可以插入到移动网络中,如助力MobileNetV2、EfficientNet等网络涨点,性能优于SE、CBAM等注意力模块,还可提高检测、分割性能,代码已开源!


640.png


作者单位:南洋理工大学

代码:https://github.com/Andrew-Qibin/CoordAttention

论文:https://arxiv.org/pdf/2103.02907.pdf

移动网络设计的最新研究表明,通道注意力(例如,SE注意力)对于提升模型性能具有显著效果,但它们通常会忽略位置信息,这对于生成空间选择性注意图非常重要。


在本文中,我们通过将位置信息嵌入到通道注意力中提出了一种新颖的移动网络注意力机制,我们将其称为“coordinate attention”。与通过2D全局池化将特征张量转换为单个特征向量的通道注意力不同,coordinate注意力将通道注意力分解为两个1D特征编码过程,分别沿两个空间方向聚合特征。这样,可以沿一个空间方向捕获远程依赖关系,同时可以沿另一空间方向保留精确的位置信息。


然后将生成的特征图分别编码为一对方向感知和位置敏感的注意图,可以将其互补地应用于输入特征图,以增强关注对象的表示。


640.png


我们的coordinate注意力很简单,可以灵活地插入到经典的移动网络中,例如MobileNetV2,MobileNeXt和EfficientNet,而几乎没有计算开销。


协调注意块(Coordinate Attention Blocks)


算法细节(推荐看原文,深入学习)


我们的注意力集中在两个步骤中,利用精确的位置信息对渠道关系和远程依存关系进行编码:嵌入信息协调注意力生成。所建议的坐标注意块的图可以在图2的右侧找到。在下文中,我们将对其进行详细描述。


坐标信息嵌入


全局池通常用于频道注意中以对空间信息进行全局编码,但是它将全局空间信息压缩到频道描述符中,因此很难保留位置信息,这对于在视觉任务中捕获空间结构至关重要。为了鼓励注意力块利用精确的位置信息在空间上捕获远程交互,我们将等式中公式化的全局池分解。


image.png


式(1)进行一对1D要素编码操作。具体来说,给定输入X,我们使用池核的两个空间范围(H,1)或(1,W)分别沿水平坐标和垂直坐标对每个通道进行编码。因此,高度为h的第c个通道的输出可表示为


image.png


类似地,第c个通道在宽度w处的输出可以写成


image.png


上面的两个变换分别沿两个空间方向聚合了特征,从而生成了一对方向感知的特征图。这与产生单个特征向量的通道注意方法中的压缩操作(等式(1))完全不同。这两个变换还使我们的注意力块能够捕获沿一个空间方向的远距离依赖关系,并沿另一空间方向保留精确的位置信息,这有助于网络更准确地定位感兴趣的对象。


协调注意力生成


如上所述等式(4)和等式(5)启用全局接受域并编码精确的位置信息。为了利用由此产生的表现形式,我们提出了第二种转换,称为坐标注意力生成。我们的设计参考以下三个标准。首先,关于移动环境中的应用程序,新的转换应该尽可能简单和便宜。其次,它可以充分利用捕获的位置信息,从而可以准确地突出显示感兴趣的区域。最后但并非最不重要的一点是,它还应该能够有效地捕获渠道间的关系,这在现有研究中已被证明是必不可少的。


640.png


设计轻量级注意力块的一些技巧


  1. SiLU激活(代码中的h_swish)比ReLU6更好
  2. 水平或垂直方向注意都与SE注意相同
  3. 当应用于MobileNeXt时,在第一个深度3x3卷积后添加关注块效果更好
  4. 请注意,如果在水平和垂直要素之间应用softmax,结果是否会更好


640.jpg

640.jpg


实验结果


大量实验表明,我们的coordinate注意力不仅有益于ImageNet分类,而且更有趣的是,它在下游任务(如目标检测和语义分割)中表现更好。


640.png

640.png

640.png

640.png

640.png


相关文章
|
7月前
|
传感器 机器学习/深度学习 算法
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
185 0
|
7月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
473 2
|
6月前
|
机器学习/深度学习 数据采集 存储
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
957 0
|
6月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
268 0
|
7月前
|
算法 数据挖掘 区块链
基于遗传算法的多式联运车辆路径网络优优化研究(Matlab代码实现)
基于遗传算法的多式联运车辆路径网络优优化研究(Matlab代码实现)
196 2
|
7月前
|
机器学习/深度学习 缓存 算法
2025年华为杯A题|通用神经网络处理器下的核内调度问题研究生数学建模|思路、代码、论文|持续更新中....
2025年华为杯A题|通用神经网络处理器下的核内调度问题研究生数学建模|思路、代码、论文|持续更新中....
608 1
|
6月前
|
传感器 机器学习/深度学习 数据采集
【航空发动机寿命预测】基于SE-ResNet网络的发动机寿命预测,C-MAPSS航空发动机寿命预测研究(Matlab代码实现)
【航空发动机寿命预测】基于SE-ResNet网络的发动机寿命预测,C-MAPSS航空发动机寿命预测研究(Matlab代码实现)
441 0
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
399 17
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
310 10
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。

热门文章

最新文章