大模型视觉注意力机制深度解析:通道、空间、混合、自注意与交叉注意!

在计算机视觉领域,注意力机制(Attention Mechanism)已成为提升模型性能的关键技术之一。注意力机制通过模拟人类视觉的选择性注意力,能够在海量数据中自动聚焦于最相关的信息,从而提高模型的效率和准确性。下面将介绍通道注意力、空间注意力、自注意力和交叉注意力四种类型。

一、通道注意力

通道注意力是一种专注于卷积神经网络(CNN)中特征图通道(feature map channels)的重要性分配的机制。其主要目的是通过为每个通道分配不同的权重,来强调对任务最有贡献的通道,抑制无关或冗余的通道,从而提升模型的表现。

以SE模块为例:
在这里插入图片描述

Squeeze:通过全局平均池化(Global Average Pooling, GAP)将特征图HxWxC压缩成1x1xC,即得到每个通道的平均池化后的特征,该特征为一个值。

Excitation:全局特征向量通过几个全连接(FC)层进行非线性变换,通常包括一个ReLU激活函数和一个sigmoid激活函数。将输出值压缩到0和1之间,生成一个与输入通道数相同长度的权重向量1x1xC。

将通道权重乘以原本的特征图即可得到通道注意力特征图。

再如以下的结构图:通过CAP(全局平均池化),再通过sigmoid得到每个通道的权重图,与原来的特征相乘即可得到经过通道注意力之后的特征图。

在这里插入图片描述

如下通道注意力:

全局池化:对输入特征图的每个通道进行全局平均池化,得到每个通道的全局空间特征。

特征重塑:将池化后的特征重塑为一维向量,为每个通道生成一个单一的数值。

1x1卷积:使用1x1卷积核对重塑后的特征向量进行卷积操作,生成每个通道的权重。

激活函数:可选地使用激活函数来引入非线性,增强模型的表达能力。

在这里插入图片描述

通道注意力的实现方法有很多,总的来说就是获得通道权重,再与原本特征相乘。

二、空间注意力

空间注意力是一种专注于特征图的空间维度的重要性分配的机制。它通过对特征图中的特定空间位置进行加权,从而突出对任务最有贡献的区域,抑制无关或冗余的区域,以提高模型的性能。

首先,对一个尺寸为 H×W×C的输入特征图F进行通道维度的全局最大池化和全局平均池化,得到两个 H×W×1 的特征图;(在通道维度进行池化,压缩通道大小,便于后面学习空间的特征)

然后,将全局最大池化和全局平均池化的结果,按照通道拼接(concat),得到特征图尺寸为HxWx2,

最后,对拼接的结果进行7x7的卷积操作,得到特征图尺寸为 HxWx1,接着通过Sigmoid激活函数 ,得到空间注意力权重矩阵

权重矩阵再与原来的特征图相乘即可得到空间注意力特征图

在这里插入图片描述

总得来说可看下图:

  • 通过局部网络从空间维度缩减特征为H×W×1

  • 通过激活函数得到权重矩阵

  • 权重矩阵与原来特征相乘

在这里插入图片描述

三、 混合注意力

在混合注意力机制中,通道注意力和空间注力可以通过串联、或者并联的方式进行组合。

以下为串联和并联的两种形式,一般来说,串联效果会好一点。

在这里插入图片描述

在这里插入图片描述

四、自注意力

自注意力是一种专注于输入数据的内部关系的重要性分配机制,广泛应用于自然语言处理和计算机视觉等领域。它通过计算输入数据中每个元素与其他所有元素之间的相似性,来动态地调整各元素的重要性,从而更好地捕捉全局依赖关系和上下文信息。

注意力的思想,类似于寻址。给定Query,去Source中计算Query和不同Key的相关性,即计算Source中不同Value值的权重系数;Value的加权平均结果可以作为注意力值。

以Transformer的自注意力为例:

在这里插入图片描述

五、 交叉注意力

交叉注意力是一种专注于不同模态或不同序列之间关系的重要性分配机制,广泛应用于多模态任务和序列对序列的任务中。它通过计算一个模态(或序列)的查询(Query)向量与另一个模态(或序列)的键(Key)和值(Value)向量之间的相似性,来动态地调整每个模态(或序列)对其他模态(或序列)的关注,从而实现信息的综合利用。

即与自注意力不同的是Q来自一个模态(或序列),K和V来说另模态(或序列)。Q决定了哪个模态或序列将聚焦于哪个模态或序列的特征信息,从而实现信息的综合利用和融合。

在这里插入图片描述

再如下图:是Q来自文本模态,K和V来说视觉模态 。

在这里插入图片描述

总结

注意力机制(通道注意力、空间注意力、自注意力和交叉注意力)是现代神经网络模型中至关重要的技术。它们通过动态调整输入特征的权重,增强模型对重要信息的关注,从而显著提升了各种复杂任务(如图像处理、自然语言处理和多模态任务)的性能。这些机制的广泛应用和不断发展,促进了深度学习技术的进步和创新。


如何学习大模型?

学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。

这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!

AI大模型学习路线

如果你对AI大模型入门感兴趣,那么你需要的话可以点击这里大模型重磅福利:入门进阶全套104G学习资源包免费分享!

扫描下方csdn官方合作二维码获取哦!

在这里插入图片描述

这是一份大模型从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!

请添加图片描述
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

100套AI大模型商业化落地方案

请添加图片描述

大模型全套视频教程

请添加图片描述

200本大模型PDF书籍

请添加图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

LLM面试题合集

请添加图片描述

大模型产品经理资源合集

请添加图片描述

大模型项目实战合集

请添加图片描述

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员辣条

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值