Coordinate Attention for Efficient Mobile Network Design 学习笔记

摘要

背景:在移动网络的研究证明了通道注意力有助于提升模型性能

挑战:但他们忽略了位置信息,而位置信息对于生成空间选择注意力图很重要

方法:本文提出一种新的注意力制止用于移动网络,通过嵌入位置信息到通道注意力中,称之为"协调注意力",在这种方式下,长距离依赖关系能被一个空间方向捕捉,同时准确的位置信息能被另一个空间方向保留。然后生成的特征图被编码成一对方向感知和位置敏感的注意力图,这些注意力图能互补地应用于输入特征图,以增强感兴趣的对象表示。

贡献:协调注意力简单且能灵活插入经典的移动网络,几乎没有计算开销,实验证明不仅有利于ImageNet分类,切在下游任务如对象检测和语义分割中也表现的很好

引言

背景:

通道注意力告诉模型"什么"和"在哪里",被广泛研究

挑战:

然后在移动网络中的应用明显落后于大型网络,这是因为大多数注意力机制带来的计算开销对移动网络来说是负担不起的。

研究现状:

移动网络最流行的还是Squeeze-and-Excitation 注意力,他通过2D全局池化来计算通道注意力,以相当低的计算成本提供了显著的性能提升,但SE注意力只考虑编码通道内的信息但忽略了位置信息,这对于视觉任务中捕捉目标结构是关键的,后续的BAM和CBAM尝试探索位置信息通过减少输入张量的通道维度,然后通过卷积计算空间注意力来利用位置信息,但卷积只能捕获局部信息,对于视觉任务至关重要的远程依赖无法建模

提出新方法:

本文提出了一种新颖高效的注意力机制,通过将位置信息嵌入通道注意力,使得移动网络能在大区域内进行关注。为了减少由于2D全局池化层导致的位置信息损失,将通道注意力分解为两个平行的一维特征编码过程,将空间坐标有效集中到生成的注意力地图中,具体说,该方法通过两个一维全局池化层将垂直方向和水平方向的输入特征聚合到两个独立的方向感知特征图。然后这两个特定方向的特征图被分别编码到两个注意力图中,每个注意力图会沿着一个空间方向捕捉输入特征图的远程依赖关系。位置信息会保存在生存的注意力图上,然后通过乘法将两个注意力图应用于输入特征图,以强调注意力表示。

优势如下:

不仅可以捕获跨通道信息,还能捕获方向感知和位置敏感信息,有助于模型更准确的定位和识别感兴趣的物体

其次方法灵活轻量级,容易插入移动网络的经典构建块

第三作为一个预训练模型,协调注意力可以为移动网络下游任务显著提升。

贡献:

在ImageNet分类和下游任务上实现了性能提升,并有显著改进

相关工作

移动网络架构

最先进的移动网络主要基于深度可分离卷积和倒置残差块,JBONet在每个倒置残差块引入了下采样操作用于代表空间信息的建模

ShuffleNetV2在倒置残差块前后饮用了空间拆分模块和通道洗牌模块,MobileNetV3通过神经架构搜索算法搜索不同深度的最有激活函数和倒置残差块的拓展率。MixNet、EfficientNet和ProxylessNAX采用不同的激活策略来搜索深度可分离卷积或标量的最佳核大小,Zhou等重新思考了利用深度可分离卷积的方法,提出了MobileNeXt,采用移动神经网络的经典瓶颈结构

注意力机制

注意力机制已经被证明有助于各种计算机视觉任务,如图像分类和图像分割,SENet通过简单压缩每个2D特征图,以有效建立通道之间的相互依赖关系,CBAM通过引入大尺寸核卷积的空间信息编码推动了这一想法。

非本地/自注意力网络最近非常流行,因为他们能够建立空间或通道注意力,然而自注意力模块内部的计算量都很大,经常被用于大模型,不适用于移动网络

本方法考虑了一种更有效的方法来捕获位置信息和信道关系,以增强移动网络的特征表示。

通过将二维池化分解成两个一维编码的过程,方法比其他具有轻量级属性的方法性能好得多。

坐标注意力

坐标注意力模块作为一个计算单元,旨在增强网络学习特征的表达能力,可作用于任何中间特征的张量作为输入并输入具有增强表示的相同大小的转换张量

预先准备

输入X=[x1,x2,...,xC]∈RC×H×WX=[x_1,x_2,\dots,x_C] \in \mathbb{R}^{C \times H \times W}X=[x1,x2,...,xC]∈RC×H×W

输入为相同大小的Y=[y1,y2,...,yC]∈RC×H×WY=[y_1,y_2,\dots,y_C] \in \mathbb{R}^{C \times H \times W}Y=[y1,y2,...,yC]∈RC×H×W

先沿着空间上的水平方向和垂直方向进行平均池化,分别得到
Xavgx=AvgPoolx(X)X_{avg}^x=AvgPool_x(X)Xavgx=AvgPoolx(X)
Xavgy=AvgPooly(X)X_{avg}^y=AvgPool_y(X)Xavgy=AvgPooly(X)

然后将它们在空间维度上凭借拼接起来,得到Xavgxy∈RC×1×(W+H)X_{avg}^{xy} \in \mathbb{R}^{C \times 1 \times (W+H)}Xavgxy∈RC×1×(W+H)

然后通过1x1卷积层的到中间映射F∈RC/r×1×(W+H)F \in \mathbb{R}^{C/r \times 1 \times (W+H)}F∈RC/r×1×(W+H)

沿着空间方向将F分割为两个向量表示
Fx∈RC/r×1×HF_x \in \mathbb{R}^{C/r \times 1 \times H}Fx∈RC/r×1×H
Fy∈RC/r×1×WF_y \in \mathbb{R}^{C/r \times 1 \times W}Fy∈RC/r×1×W

分别对他们再做卷积变换和Sigmoid门控机制的到权重表示
Fx,Fy=Split(F)F_x,F_y=Split(F)Fx,Fy=Split(F)
Wx=sigmoid(Conv(Fx))W_x=sigmoid(Conv(F_x))Wx=sigmoid(Conv(Fx))
Wy=sigmoid(Conv(Fy))W_y=sigmoid(Conv(F_y))Wy=sigmoid(Conv(Fy))

将空间方向的两个权重作用于输入,得
Y=X⊙Wx⊙WyY=X \odot W_x \odot W_yY=X⊙Wx⊙Wy

实验

实验设置

是用标准SGD优化器,衰减和动量为0.9,权重衰减为4×10−54 \times 10^{-5}4×10−5,批大小为256,使用MobileNetV2进行训练,在添加了坐标注意力后不显著增加参数量和延迟的情况下达到了最好的效果

消融实验

通过删除水平或垂直注意力,以了解编码坐标信息的重要性,沿任一方向具有注意力的模型与具有SE注意力的模型相当的性能,但当水平注意力与垂直注意力结合在一起时,获得了最佳的效果

结论

提出了一种新的轻量级注意力机制,称为坐标注意力,继承了通道注意力的方法,通过准确的位置信息捕获远程依赖关系,在ImageNet分类,目标检测和语义分割等方面的实验都证明了有效性

相关推荐
tingshuo291715 小时前
S001 【模板】从前缀函数到KMP应用 字符串匹配 字符串周期
笔记
BingoGo2 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack2 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo3 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack3 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack4 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo4 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack5 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理6 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
西岸行者6 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习