视觉 注意力机制——通道注意力、空间注意力、自注意力、交叉注意力

在计算机视觉领域,注意力机制(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=XW_{Q}K=XW_{K}V=XW_{V}

        其中W_{Q},W_{K},W_{V}是可训练的权重矩阵

  • 相似性计算:计算查询向量和键向量之间的相似性得分,通常使用点积来实现。这些相似性得分表示了输入数据中每个元素与其他所有元素之间的关系。

S=\frac{QK^{T}}{\sqrt{d_{k}}}

      其中S是相似性得分矩阵,\sqrt{d_{k}}​​ 是缩放因子,防止点积值过大。

  • 注意力权重计算:将相似性得分通过Softmax函数进行归一化,得到注意力权重。这些权重反映了每个元素对其他元素的重要性。

A=Softmax\left ( S \right )

     其中A是注意力权重。

  • 加权求和:将注意力权重与值向量进行加权求和,得到经过自注意力调整后的输出表示。通过这种方式,每个元素的表示包含了与其他所有元素的关联信息。

O=AV

 交叉注意力

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

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

  • 特征映射:首先,将两个模态(或序列)的输入数据分别映射到查询(Query)、键(Key)和值(Value)向量表示中。这一步骤通常通过线性变换实现。

Q_{A}=X_{A}W_{Q}K_{B}=X_{B}W_{K}V_{B}=X_{B}W_{V}

        其中W_{Q},W_{K},W_{V}是可训练的权重矩阵

  • 相似性计算:计算一个模态(或序列)的查询向量和另一个模态(或序列)的键向量之间的相似性得分,通常使用点积来实现。这些相似性得分表示了一个模态(或序列)中每个元素与另一个模态(或序列)中所有元素之间的关系。

S_{A\rightarrow B}=\frac{Q_{A}K_{B}^{T}}{\sqrt{d_{k}}}

      其中S是相似性得分矩阵,\sqrt{d_{k}}​​ 是缩放因子,防止点积值过大。

  • 注意力权重计算:将相似性得分通过Softmax函数进行归一化,得到注意力权重。这些权重反映了一个模态(或序列)的每个元素对另一个模态(或序列)中所有元素的重要性。

A_{A\rightarrow B}=Softmax\left ( S_{A\rightarrow B} \right )

     其中A是注意力权重。

  • 加权求和:将注意力权重与值向量进行加权求和,得到经过交叉注意力调整后的输出表示。通过这种方式,每个模态(或序列)的表示包含了与另一个模态(或序列)的关联信息。

O_{A\rightarrow B}=A_{A\rightarrow B}V_{B}

可看下图:Q来自一个序列,K和V来说另一个序列

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

总结

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

  • 28
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
空间注意力是Transformer模型中的一种注意力机制,用于捕捉输入序列中不同位置之间的相关性和依赖关系。在Transformer中,空间注意力通过计算输入序列中每个位置与其他所有位置之间的相似度来实现。这种相似度计算可以通过计算两个位置之间的点积得到。然后,通过对相似度进行归一化处理,可以得到每个位置对所有位置的注意力权重。最后,通过将输入序列与注意力权重进行加权求和,可以得到每个位置的表示。这种表示可以传递给后续的层进行进一步处理。 引用中的论文"Aattention is all you need"提出了Transformer模型的基本思想,并引入了空间注意力的概念。在这篇论文中,作者使用了多头注意力机制来增强模型的表示能力,每个注意力头都可以学习不同的相关性和依赖关系。这种多头注意力机制可以在不同的尺度上捕捉输入序列的信息,并提供更全面的表示。 因此,空间注意力在Transformer模型中起着至关重要的作用,它通过计算输入序列中位置之间的相似度来捕捉位置之间的相关性和依赖关系,从而提供更准确和鲁棒的表示。这使得Transformer模型在处理各种序列任务中表现出色。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [用于Transformer的6种注意力的数学原理和代码实现](https://blog.csdn.net/m0_46510245/article/details/123864045)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [注意力机制 - Transformer](https://blog.csdn.net/mynameisgt/article/details/126842305)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值