论文中常用的注意力模块合集(上)

news2024/11/26 9:49:03

在深度卷积神经网络中,通过构建一系列的卷积层、非线性层和下采样层使得网络能够从全局感受野上提取图像特征来描述图像,但归根结底只是建模了图像的空间特征信息而没有建模通道之间的特征信息,整个特征图的各区域均被平等对待。

在一些复杂度较高的背景中,容易造成模型的性能不佳,因此可以引入注意力机制,而注意力机制的原理是通过参考人的视觉感知能力,即人在处理视觉信息初期会集中专注于当前情景下重点区域,而其他区域将相应降低,这为更高层级的视觉感知和逻辑推理以及更加复杂的计算机视觉处理任务提供更易于处理且更相关的信息。这样利用注意力机制提高模型对目标区域的关注度,降低其他区域对目标区域的干扰,进而提高模型的性能。

通过研究近几年论文中的出现的注意力机制和用法,这里介绍几种频次比较高的且在不同语义分割和目标检测领域上均提高了模型性能的注意力机制,希望对大家有帮助。

1.坐标注意力(Coordinate Attention, CA)

CA通过精确的位置信息对通道关系和长程依赖进行编码,使网络能够以较小的计算成本关注大的重要区域,主要包括坐标信息嵌入和坐标注意力生成两个步骤,其结构如图1所示。

图1 坐标注意力模块

1.1 Coordinate信息嵌入

为了获取图像宽度和高度上的注意力并对精确位置信息进行编码,先将输入特征图分别按照宽度和高度两个方向分别进行全局平局池化,分别获得在宽度和高度两个方向上的特征图。具体而言,给定对于输入的特征张量X,沿水平坐标使用尺寸为(H,1)的池化核对每个通道的特征进行编码,因此,第c通道的高度为h的输出可以表示为:

(1)

其中

表示第c通道的高度为h;

表示第c通道的高度为h的宽度坐标为j的特征图的数值;W表示特征图的宽度。同理,第c通道的宽度为w的输出可以写成:

(2)

其中

表示第c通道的输出高度为w;

表示第c通道的宽度为w的高度坐标为i的特征图的数值;H表示特征图的高度。

这两种变换分别从两个空间方向对特征进行聚合,得到一对方向感知特征图。且这两种变换允许注意力模块捕捉沿着一个空间方向的长期依赖关系,并保存沿着另一个空间方向的精确位置信息,有助于模型更好地定位感兴趣目标。

1.2 Coordinate信息生成

通过公式(1)和(2)可以很好的获得全局感受野对于精确位置信息的编码。为了利用产生的特征,通过信息嵌入中的变换后,将式(1)和(2)产生的聚合特征图进行拼接操作,然后使用1x1卷积变换函数F_{1}对其进行变换操作,得到水平方向和垂直方向编码空间信息的中间特征图f:

(3)

其中,[]是沿空间维度进行的拼接操作,\delta为非线性激活函数,

是在水平方向和垂直方向对空间信息进行编码的中间特征图,r是用来控制SE block大小的缩减率。沿着空间维度将f分解为2个独立的张量

,再利用另外两个1x1卷积变换F_{h}和F_{w}分别将f_{h}和f_{w}变换为具有相同通道数的张量到输入X,得到:

(4)

(5)

其中,\delta是Sigmoid激活函数。为了降低模型复杂性和计算开销,通常使用适当的缩减比来缩小f的通道数,然后对输出g_{h}和g_{w}进行扩展,分别作为注意力权重。最后CA模块的输出

可以写成:

(6)

2.卷积注意力模块(convolutional block attention module, CBAM)

CBAM是一个前馈卷积神经网络注意力模块,沿着通道和空间的维度顺序推断注意力图,然后将注意力图乘以输入特征图以进行自适应特征细化。其计算开销可忽略不计,且可以无缝集成到任何CNN架构中。

图2 卷积注意力模块

2.1 通道注意力

通道注意力结构如图2所示,首先通过平均池化和最大池化操作来聚合特征图的空间信息,生成两个不同的空间上下文描述符:

,它们分别表示平均池特征和最大池特征。然后将这两个特征描述符送到共享网络(由具有一个隐藏层的多层感知器组成)来生成通道注意力图 ,随后再将共享网络应用于每个描述符之后,进行逐元素求和合并输出特征向量。通道注意力计算如下:

(7)

其中\sigma表示Sigmoid函数,

分别为两个输入共享MLP的权重。

图2 通道注意力

2.2 空间注意力模块

空间注意力模块如图3所示。之前沿着通道方向应用平均池化和最大池化操作来聚合特征图信息,得到两个2D图:

,然后通过标准卷积层将它们连接起来并卷积,生成我们的2D空间注意力图,空间注意力计算如下

(8)

其中\sigma表示Sigmoid函数,f^{7x7}表示卷积核大小为7×7的卷积运算。

图3 空间注意力

3.挤压和激励注意力(Squeeze-and-Excitation attention, SE)

SE结构通过显式地建模信道之间的相互依赖性,自适应地重新校准信道特征响应,在略微增加计算成本的情况下显著提高了现有最先进的CNN的性能。其结构主要分为挤压和激励两部分,如图4所示。

图4 挤压和激励注意力结构

3.1 挤压:全局信息嵌入

为了缓解变换输出U的每个单元不能利用该区域之外上下文信息的问题,通过使用全局平均池来生成通道统计信息来实现将全局空间信息压缩到信道描述符中。通过U的空间维度H×W收缩U来生成统计量z∈RC,从而z的第c个元素计算为:

(9)

注:这里作者使用最简单的全局平均池化,可以试试更复杂的方法进行改进,以提高更多的性能。

3.2 激励:自适应调整

为了利用在挤压操作中聚集的信息,但为了完全捕获通道相关性就必须满足两个标准:①必须灵活,即能够学习通道之间的非线性相互作用;②必须学习非互斥关系,因为希望确保允许增强多个通道。这里选择满足这些标准S形激活门控机制:

(10)

其中,\delta表示ReLU激活函数,

,

。为了限制模型的复杂性,在非线性周围形成两个全连接(FC)层的瓶颈,即具有缩减比率r的维度缩减层,经ReLU后维度增加层到变换输出U的通道维度。通过用激活s重新缩放U来获得块的最终输出:

(11)

其中

是标量s_{c}和特征映射

之间的通道乘法操作。

参考文献

[1] Hou Q, Zhou D, Feng J. Coordinate attention for efficient mobile network design[C]. Proceedings of the IEEE/CVF conference on computer vision and pattern recognition.2021:13713-13722

[2] Woo S, Park J, Lee JY, et al. CBAM Convolutional block attention module. Proceedings of the 15th European Conference on Computer Vision.2018,3-19.

[3] Jie H, Li S, Gang S, et al. Squeeze-and-Excitation Networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/336379.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【化学试剂】endo-BCN-PEG4-Pomalidomide,(1R,8S,9S)-双环[6.1.0]壬-四聚乙二醇-泊马度胺纯度95%+

一、基础产品数据(Basic Product Data):CAS号:N/A中文名:(1R,8S,9S)-双环[6.1.0]壬-四聚乙二醇-泊马度胺英文名:endo-BCN-PEG4-Pomalidomide二、详细产品数据(Detailed Product Data&#xff09…

【软件测试】软件测试工作上95%会遇到的问题,你遇到多少?

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 1、测试负责人要进行…

C语言rand和srand用法详解

在实际编程中&#xff0c;我们经常需要生成随机数&#xff0c;例如&#xff0c;贪吃蛇游戏中在随机的位置出现食物&#xff0c;扑克牌游戏中随机发牌。在C语言中&#xff0c;我们一般使用 <stdlib.h> 头文件中的 rand() 函数来生成随机数&#xff0c;它的用法为&#xff…

Redis的事务和锁以及在SpringBoot中的使用

文章目录1、事务2、监视锁3、分布式锁1、事务 Redis中事务的操作主要有三个&#xff1a; # 1、开启事务 # 定事务的开启位置&#xff0c;此指令执行后&#xff0c;后续的所有指令均加入到事务中 1、multi # 2、执行事务 # 设定事务的结束位置&#xff0c;同时执行事务。与mul…

【java】map集合遍历: entrySet()、单独遍历key或者value、 keySet()、iterator遍历

目录 1.增强for循环。利用Map 的 entrySet&#xff08;&#xff09;方法获取元素2.增强for循环。单独遍历key或者value3.增强for循环。利用Map 的 keySet() 方法获取元素4.使用iterator遍历文中实体的定义在上篇笔记中&#xff1a;https://blog.csdn.net/qq_43622777/article/d…

spring面试题 一

一、为了降低Java开发的复杂性&#xff0c;Spring采取了那4种关键策略 基于POJO的轻量级和最小侵入性编程&#xff1b; 通过依赖注入和面向接口实现松耦合&#xff1b; 基于切面和惯例进行声明式编程&#xff1b; 通过切面和模板减少样板式代码。 二、Spring框架的核心&am…

14条生产环境项目踩坑复盘

缓存需要等事务结束之后再删除&#xff0c;避免旧数据导致数据库和缓存不一致。说明&#xff1a;比如线程A在减少账户的余额(11->10)&#xff0c;执行了数据库更新&#xff0c;但是事务还未提交&#xff0c;但把缓存删除了。线程B从缓存里去获取账户的余额&#xff0c;缓存里…

Python Numpy基础教程

本文是一个关于Python numpy的基础学习教程&#xff0c;其中&#xff0c;Python版本为Python 3.x 什么是Numpy Numpy Numerical Python&#xff0c;它是Python中科学计算的核心库&#xff0c;可以高效的处理多维数组的计算。并且&#xff0c;因为它的许多底层函数是用C语言编…

TC358775XBG替代方案|完美替代 TC358775XBG替代方案|低BOM成本DSI转LVDS方案CS5518

TC358775XBG替代方案|完美替代 TC358775XBG替代方案|低BOM成本DSI转LVDS方案CS5518 TC358775XBG芯片的主要功能是DSI到LVDS桥&#xff0c;通过DSI链路实现视频流输出&#xff0c;以驱动LVDS兼容的显示面板。该芯片支持单链路LVDS高达1366768 24位像素分辨率&#xff0c;双链路L…

了解webpack

文章目录一、webpack是什么&#xff1f;二、为什么要使用webpack三、webpack的五个核心概念四、安装webpack提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、webpack是什么&#xff1f; 本质上&#xff0c;webpack 是一个用于现代 JavaScript 应用程…

PyTorch学习笔记:nn.MSELoss——MSE损失

PyTorch学习笔记&#xff1a;nn.MSELoss——MSE损失 torch.nn.MSELoss(size_average None&#xff0c;reduce None&#xff0c;reduction mean)功能&#xff1a;创建一个平方误差(MSE)损失函数&#xff0c;又称为L2损失&#xff1a; l(x,y)L{l1,…,lN}T,ln(xn−yn)2l(x,y)L…

设计模式:建造者模式教你创建复杂对象

一、问题场景 当我们需要创建资源池配置对象的时候&#xff0c;资源池配置类里面有以下成员变量: 如果我们使用new关键字调用构造函数&#xff0c;构造函数参数列表就会太长。 如果我们使用set方法设置字段值&#xff0c;那minIdle<maxIdle<maxTotal的约束逻辑就没地方…

【计组】内存和总线

课程链接&#xff1a;深入浅出计算机组成原理_组成原理_计算机基础-极客时间 一、虚拟内存和内存保护 日常使用的操作系统下&#xff0c;程序不能直接访问物理内存。内存需要被分成固定大小的页&#xff08;Page&#xff09;&#xff0c;再通过虚拟内存地址&#xff08;Virtu…

如何创建一个有效的FAQ/常见问题解答页面?

如果您的网站上没有常见问题解答页面&#xff0c;那么您将错过本可以节省的数小时的销售和支持时间&#xff0c;以及本可以推动购买的新客户。尽管与登录页面或销售页面不同&#xff0c;常见问题解答页面显然不会显示直接的投资回报&#xff0c;但它可以在其他因素上节省您的团…

内网渗透(十五)之内网信息收集-域环境中定位域管理员

系列文章第一章节之基础知识篇 内网渗透(一)之基础知识-内网渗透介绍和概述 内网渗透(二)之基础知识-工作组介绍 内网渗透(三)之基础知识-域环境的介绍和优点 内网渗透(四)之基础知识-搭建域环境 内网渗透(五)之基础知识-Active Directory活动目录介绍和使用 内网渗透(六)之基…

多路查找树

1.二叉树与 B 树 1.1二叉树的问题分析 二叉树的操作效率较高&#xff0c;但是也存在问题, 请看下面的二叉树 二叉树需要加载到内存的&#xff0c;如果二叉树的节点少&#xff0c;没有什么问题&#xff0c;但是如果二叉树的节点很多(比如 1 亿)&#xff0c; 就 存在如下问题:问…

洞察:2022年医疗行业数据安全回顾及2023年展望

过去的2022年&#xff0c;统筹安全与发展&#xff0c;在医疗信息化发展道路中&#xff0c;数据安全不可或缺。这一年&#xff0c;实施五年多的《网络安全法》迎来首次修改&#xff0c;《数据安全法》、《个人信息保护法》实施一周年&#xff0c;配套的《数据出境安全评估办法》…

用户标签体系建设

一、什么是标签体系 通过给每个用户打标&#xff0c;方便后续通过用户标签来快速筛选用户&#xff0c;给不同的用户满足不一样的需求。 标签体系也能给不同的用户标签群体&#xff0c;推送不同的内容&#xff0c;从而达到精准营销的目的。 二、标签体系实施架构 标签体系架…

盾王电力防护、森林防火预警应急广播方案

适用场景&#xff1a;针对普通路人与进入有涉电危险的区域人员作区别预警&#xff1b;三重音频、广告牌子宣传、LED显示、视频监控、预警干预。主要功能 第一重预警&#xff1a;对岸边上的行人&#xff0c;当你进入有涉电危险的警戒12米范围内。人体感应器探测到会马上发出语音…

光纤、光模块、光纤交换机、光模块组网设计与案例

光纤组网已是当今智能化弱电行业里一种常见的组网方式&#xff0c;组建远距离无线、监控网络时&#xff0c;往往需要使用光纤进行连接通信&#xff0c;使用光纤收发器是经济适用型做法&#xff0c;尤其是在室外的使用。其实光纤收发器不仅可以成对使用&#xff0c;还可以配合光…