CA:用于移动端的高效坐标注意力机制 | CVPR 2021
论文提出新颖的轻量级通道注意力机制coordinate attention,能够同时考虑通道间关系以及长距离的位置信息。通过实验发现,coordinate attention可有效地提升模型的准确率,而且仅带来少量的计算消耗,十分不错
来源:晓飞的算法工程笔记 公众号
论文: Coordinate Attention for Efficient Mobile Network Design

Introduction
目前,轻量级网络的注意力机制大都采用SE模块,仅考虑了通道间的信息,忽略了位置信息。尽管后来的BAM和CBAM尝试在降低通道数后通过卷积来提取位置注意力信息,但卷积只能提取局部关系,缺乏长距离关系提取的能力。为此,论文提出了新的高效注意力机制coordinate attention,能够将横向和纵向的位置信息编码到channel attention中,使得移动网络能够关注大范围的位置信息又不会带来过多的计算量。
coordinate attention的优势主要有以下几点:
- 不仅获取了通道间信息,还考虑了方向相关的位置信息,有助于模型更好地定位和识别目标。
- 足够灵活和轻量,能够简单地插入移动网络的核心结构中。
- 可以作为预训练模型用于多种任务中,如检测和分割,均有不错的性能提升。
Coordinate Attention
Coordinate Attention可看作增强移动网络特征表达能力的计算单元,接受中间特征\(X=[x_1,x_2,\cdots,x_C]\in\mathbb{R}^{C\times H\times W}\)作为输入,输出与\(X\)大小相同的增强特征\(Y=[y_1,y_2,\cdots,y_C]\)。

Coordinate Attention Blocks
Coordinate Attention基于coordinate information embedding和coordinate attention generation两个步骤来编码通道关系和长距离关系。
Coordinate Information Embedding
channel attention常用全局池化编码全局空间信息,将全局信息压缩成一个标量,难以保留重要的空间信息。为此,论文将全局池化改造成两个1维向量的编码操作。对于输入\(X\),使用池化核\((H,1)\)和\((1,W)\)来编码水平方向和垂直方向特征,即第\(c\)维特征的输出为:


上面的公式从不同的方向集成特征,输出一对方向可知的特征图。对比全局池化的压缩方式,这样能够允许attention block捕捉单方向上的长距离关系同时保留另一个方向上的空间信息,帮助网络更准确地定位目标。
Coordinate Attention Generation
为了更好地利用上述的coordinate infomation,论文提出了配套的coordinate attention generation操作,主要基于以下三点准则进行设计:
- 足够简单和轻量。
- 能完全利用提取的位置信息。
- 能同样高效地处理通道间的关系。
首先将公式4和公式5的输出concatenate起来,使用\(1\times 1\)卷积、BN和非线性激活进行特征转化:

\(f\in\mathbb{R}^{C/r\times(H+W)}\)为包含横向和纵向空间信息的中间特征,\(r\)为缩减因子。这里两个方向的特征没有做激烈的融合,concatenate的主要目的我觉得是进行统一的BN操作。随后将\(f\)分为两个独立的特征\(f^h\in\mathbb{R}^{C/r\times H}\)和\(f^w\in\mathbb{R}^{C/r\times W}\),使用另外两个\(1\times 1\)卷积和sigmoid函数进行特征转化,使其维度与输入\(X\)一致:

将输出\(g^h\)和\(g^w\)合并成权重矩阵,用于计算coordinate attention block输出:

coordinate attention block与se block的最大区别是,coordinate attention block的每个权重都包含了通道间信息、横向空间信息和纵向空间信息,能够帮助网络更准确地定位目标信息,增强识别能力。
Implementation

将coordinate attention block应用于MobileNetV2和MobileNeXt上,block结构如图3所示。
Experiment

基于MobileNetV2进行模块设置的对比实验。

不同注意力结构在不同主干网络上的性能对比。

对目标检测网络的性能对比。

对语义分割任务的性能对比。
Conclusion
论文提出新颖的轻量级通道注意力机制coordinate attention,能够同时考虑通道间关系以及长距离的位置信息。通过实验发现,coordinate attention可有效地提升模型的准确率,而且仅带来少量的计算消耗,十分不错。
如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】

CA:用于移动端的高效坐标注意力机制 | CVPR 2021的更多相关文章
- CVPR2021| 继SE,CBAM后的一种新的注意力机制Coordinate Attention
前言: 最近几年,注意力机制用来提升模型性能有比较好的表现,大家都用得很舒服.本文将介绍一种新提出的坐标注意力机制,这种机制解决了SE,CBAM上存在的一些问题,产生了更好的效果,而使用与SE,CBA ...
- Socket.IO介绍:支持WebSocket、用于WEB端的即时通讯的框架
一.基本介绍 WebSocket是HTML5的一种新通信协议,它实现了浏览器与服务器之间的双向通讯.而Socket.IO是一个完全由JavaScript实现.基于Node.js.支持WebSocket ...
- fastText一个库用于词表示的高效学习和句子分类
fastText fastText 是 Facebook 开发的一个用于高效学习单词呈现以及语句分类的开源库. 要求 fastText 使用 C++11 特性,因此需要一个对 C++11 支持良好的编 ...
- 深度学习教程 | Seq2Seq序列模型和注意力机制
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/35 本文地址:http://www.showmeai.tech/article-det ...
- CAP:多重注意力机制,有趣的细粒度分类方案 | AAAI 2021
论文提出细粒度分类解决方案CAP,通过上下文感知的注意力机制来帮助模型发现细微的特征变化.除了像素级别的注意力机制,还有区域级别的注意力机制以及局部特征编码方法,与以往的视觉方案很不同,值得一看 来源 ...
- TensorFlow从1到2(十)带注意力机制的神经网络机器翻译
基本概念 机器翻译和语音识别是最早开展的两项人工智能研究.今天也取得了最显著的商业成果. 早先的机器翻译实际脱胎于电子词典,能力更擅长于词或者短语的翻译.那时候的翻译通常会将一句话打断为一系列的片段, ...
- 机器学习(ML)十二之编码解码器、束搜索与注意力机制
编码器—解码器(seq2seq) 在自然语言处理的很多应用中,输入和输出都可以是不定长序列.以机器翻译为例,输入可以是一段不定长的英语文本序列,输出可以是一段不定长的法语文本序列,例如 英语输入:“T ...
- NLP教程(6) - 神经机器翻译、seq2seq与注意力机制
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www.showmeai.tech/article-det ...
- (转)注意力机制(Attention Mechanism)在自然语言处理中的应用
注意力机制(Attention Mechanism)在自然语言处理中的应用 本文转自:http://www.cnblogs.com/robert-dlut/p/5952032.html 近年来,深度 ...
- 注意力机制(Attention Mechanism)在自然语言处理中的应用
注意力机制(Attention Mechanism)在自然语言处理中的应用 近年来,深度学习的研究越来越深入,在各个领域也都获得了不少突破性的进展.基于注意力(attention)机制的神经网络成为了 ...
随机推荐
- Java并发编程实例--14.在一个同步类中安排独立属性
当你使用synchronized关键字去保护一个代码块时,你必须传入一个对象的引用. 正常来讲,你讲使用this关键字去引用执行这个方法的对象,但是你可以使用其他对象的引用. 通常的,这些对象将会是专 ...
- New Questions
1. C++/Qt 实现一个信号槽 #include <functional> #include <iostream> #include <vector> clas ...
- git tag 常用操作-创建、查看、推送、删除等
创建tag 1.创建tag: git tag -a v0.0.1 或者 对某一提交的信息打tag标签,末尾是一个commit id git tag -a v0.0.1 cc16905 2.创建tag带 ...
- 3D环饼图
// <div class="AnalysisAccCom"> <first-title title="分析对象统计"> ...
- SpringBoot的自动装配原理及应用
什么是SpringBoot自动装配 所谓的"SpringBoot自动装配"就是指:通过注解和一些简单的配置就能将某些组件载入Spring容器环境中,便于使用. 比如,很多sprin ...
- 文件的拓展及文件函数,定义函数及函数参数---day09
1.文件的拓展模式 utf-8 编码格式下,默认一个中文三个字节,一个英文或符号占用一个字节 read() 功能:读取字符的个数(里面的参数代表字符个数) seek() 功能:调整指针的位置(里面的参 ...
- DataGear 制作联动异步加载图表的数据可视化看板
通过DataGear的参数化数据集.图表事件处理和看板API功能,可以很方便地制作联动异步加载图表的数据可视化看板. 首先,新建一个参数化SQL数据集,如下所示: SELECT COL_NAME, - ...
- 谈谈在incubator-dolphinscheduler 中为啥不能及时看到python任务输出的print日志
一.incubator-dolphinscheduler 中如何获取shell类型的节点或者python类型的节点任务的日志 1.在org.apache.dolphinscheduler.server ...
- 详解Python魔法函数,__init__,__str__,__del__
1.简介 Python作为一门灵活而强大的编程语言,提供了许多特殊的方法,被称为魔法函数(Magic methods).这些魔法函数以双下划线开头和结尾,能够让我们自定义类的行为,使得Python更加 ...
- Nginx-负载均衡系列
综合架构-负载均衡系列 目录 综合架构-负载均衡系列 一个新的开始 一 代理模块 proxy 2.1 概述 2.2 正向代理用户 2.3 反向代理 2.4 反向代理环境准备 2.5 反正代理指令 二 ...