一文搞懂深度学习的注意力机制

1 注意力机制概念

2 注意力机制原理

2.1 软注意力 (Soft Attention)
2.2 硬注意力 (Hard Attention)
2.3 多模态注意力 (Multi-modal Attention)
2.4 算术注意力 (Arithmetic Attention)
2.5 逻辑注意力 (Logical Attention)
2.6 类别注意力 (Category-Based Attention)

3 从公式的角度理解注意力机制

3.1 注意力得分计算
3.2 通道注意力
3.3 空间注意力
3.4 硬注意力
3.5 算术注意力

总结

参考文献

1 注意力机制概念

注意力是人类认知系统的核心部分,它允许我们在各种感官输入中筛选和专注于特定信息。这一能力帮助我们处理海量的信息,关注重要的事物,而不会被次要的事物淹没。受到人类认知系统的启发,计算机科学家开发了注意力机制,这种机制模仿人类的这种能力,强化特定数据特征,忽略无关部分。

图片

人类的视觉系统能够在某个特定区域上进行“高分辨率”的聚焦,就像你仔细观察黄色框中的尖耳朵一样。同时,我们可以在“低分辨率”下感知周围的环境,例如注意到背景中的雪景和穿着打扮,然后根据这些线索调整我们的注意力或做出推断。

当你关注图像中的一小部分时,周围的像素会提供相关信息,帮助你理解这个小部分应当展示什么。之所以在黄色框中期待看到一只尖耳朵,是因为我们已经看到了一些提示,比如狗的鼻子、右边的另一只尖耳朵,以及柴犬的眼睛(红色框中的部分)。然而,图像底部的毛衣和毯子可能没有这些狗的特征那样明显或有用。

在深度学习领域,我们可以用简单的例子来解释注意力的概念。比如我们在阅读一个句子时,当看到“eating”这个词时,我们会立即预期接下来可能会出现一个与食物相关的词。而下图绿色和红色的词,可能用来描述食物,但直接与“eating”关联的可能性较小。

图片

所以,深度学习中的注意力基本上可以被理解为一组重要性权重的集合。为了预测或推断某个元素,比如图像中的一个像素,或者句子中的一个单词,我们通过注意力机制来估计这个元素与其他元素的相关性(你可能在许多论文中看到这个过程称为“attends to”)。然后,我们会根据这些相关性的强弱,赋予不同权重,并将加权结果作为最终的预测或推断结果。这样,通过注意力机制,模型能够更好地理解和处理复杂的数据结构。

2 注意力机制原理

注意力是人类认知系统的核心部分,它允许我们在各种感官输入中筛选和专注于特定信息。这一能力帮助我们处理海量的信息,关注重要的事物,而不会被次要的事物淹没。受到人类认知系统的启发,计算机科学家开发了注意力机制,这种机制模仿人类的这种能力,强化特定数据特征,忽略无关部分。

图片

注意力机制在深度学习中的应用十分广泛,并且有多种分类方法,我这里的划分方式主要是参考这篇论文,以下是更详细的注意力机制分类及其应用:

2.1 软注意力 (Soft Attention)

图片

图1展示了基于通道的注意力方法的核心结构。不同的方法用于生成注意力得分,包括压缩和激发 [26]、分裂和压缩 [23]、计算二阶 [37] 或高效压缩和激发 [22]。这些图像来自原始论文。

图片

图2展示了基于空间的注意力方法的结构,包括 RANet [81] 和 Co-excite [77]。这些方法着重关注空间地图中最重要的部分。

图片

图3展示了自注意力方法的架构,包括 Transformers [2]、Axial Attention [89]、X-Linear [88]、Slot [86] 和 RFA [87](图片来自相应文章)。这些方法都属于自注意力,它们通过衡量相同输入的两张图之间的相似性来生成得分。然而,它们在处理方式上有所不同。

软注意力是一种用来衡量数据重要性的机制。想象一下,你在看一幅画,注意力帮助你决定该关注哪个部分。在计算机中,软注意力通过一些数学函数来计算这个“关注”的程度,比如 softmax 或 sigmoid。这是一种可以预测的方式,主要用在以下三种类型的注意力机制中:

  • 通道注意力:比如你在看一组不同颜色的滤镜,每个滤镜都强调图像的不同部分。通道注意力就像这样,它根据每个特征通道(或滤镜)来计算得分。这意味着模型在决定哪一部分重要时,会根据不同的特征图来做判断。

  • 空间注意力:这是针对图像的具体区域进行关注,而不是通道。想象你在地图上寻找热点地区,这就类似于空间注意力。它在目标检测、语义分割和人员重新识别等任务中非常有用。你可以单独使用,也可以与通道注意力结合使用,以更全面地处理信息。

  • 自注意力:这个机制会比较输入数据中不同部分之间的关联。就像你在分析一本书时,看看不同章节是如何联系在一起的。自注意力根据输入数据中两个部分的相似度来计算得分。与通道注意力不同,它的计算方式主要是比较两张图,而通道注意力是从单张图中生成分数。

软注意力的方法通常通过软函数(如 softmax 和 sigmoid)来加权输入数据的不同部分。这种方式是可预测且可微的,这意味着可以通过反向传播进行训练。但它也有一些挑战,比如计算复杂度较高,可能会给一些不那么重要的部分分配权重。

图片

通道、空间和时序注意力可以看作是作用于不同域的机制。C 代表通道域,H 和 W 代表空间域,T 则表示时间域。

2.2 硬注意力 (Hard Attention)

图片

图4展示了硬注意力架构的示意图。包括 EMA [68]、Gaussian [66]、Self-critic [65] 和 Bayesian [175] 的构建模块。这些图像取自原始论文。

硬注意力和软注意力的主要区别在于硬注意力的随机性。硬注意力就像聚光灯,它只选择一个特定的区域来关注,而不是像软注意力那样平均分配注意力。硬注意力的主要类型包括:

  • 贝叶斯注意力 (Bayesian Attention):这种注意力使用贝叶斯统计模型来决定哪部分应该得到关注。就像你在做实验时,用概率来推断某个结果的可能性。贝叶斯注意力经常用于解决视觉问题,因为它可以帮助模型在不确定的情况下做出更好的决策。

  • 强化学习注意力 (Reinforced Attention):强化学习是一种基于奖励和惩罚的学习方式,就像训练宠物一样。当它做对了事情,你给它奖励,这就是强化学习。强化学习注意力利用这种方式来训练模型,帮助它选择最重要的部分。

  • 高斯注意力 (Gaussian Attention):高斯注意力使用一种叫做 2D 高斯核的数学工具来计算注意力得分。这个工具可以在视觉应用中很好地使用,因为它能够模拟现实世界中的光线分布,帮助模型更准确地识别图像中的重要部分。

2.3 多模态注意力 (Multi-modal Attention)

图片

图5展示了多模态注意力方法,包括 Attention-based Perceiver [48]、Criss-Cross [46]、Boosted attention [49]、Cross-attention module [46]。这些方法使用多种模式来生成注意力得分。图像来自原始论文。

多模态注意力机制是一种用来处理多种不同类型数据的方法,比如文本和图像。它的主要特点是能够在不同模式之间生成注意力,也就是让模型知道在一堆不同数据中关注哪些部分。它在许多场景中非常有用,尤其是当你同时处理多种数据时,比如在社交媒体分析或内容推荐中。

常见的多模态注意力机制包括:

  • 交叉注意力 (Cross Attention):这个机制通过比较不同模式之间的相关性来生成注意力得分。想象一下,你在看一幅图和一段文字,交叉注意力可以帮助模型找到图中的内容与文字之间的关联。它在许多应用中很有用,比如在多模态搜索和问答系统中。

  • Perceiver 模型:这是一个基于 Transformer 的多模态模型,专门处理大规模、多模态数据。它可以同时处理不同类型的数据,如文本、图像和音频。这个模型非常强大,因为它能够应对各种复杂的任务,从语音识别到自然语言处理,再到计算机视觉。Perceiver 模型的灵活性使它适合用于许多需要处理多种数据类型的场景。

多模态注意力机制的好处是它可以让模型从不同角度理解数据,帮助模型更全面地做出决策。它在许多应用中非常有用,例如语音识别、图像标注、自然语言处理、内容生成等。多模态注意力机制的关键是让模型在不同数据模式之间建立联系,从而更准确地完成任务。

2.4 算术注意力 (Arithmetic Attention)

图片

图6展示了基于算术的注意力方法,例如 Attention-based Dropout [129] 和 Reverse Attention [130]。这些图像来自原始论文。这些方法使用算术运算来生成注意力得分,例如取反、丢弃或倒数。

算术注意力是一种基于简单算术运算的方法,主要使用基本的数学操作来生成注意力得分。这种机制没有复杂的计算,它通过一些巧妙的算术方式来决定关注的焦点。常见的算术注意力包括:

  • 反向注意力 (Reverse Attention):这是通过取反来生成注意力得分。想象一下,模型通常会专注于某些特定的特征,而反向注意力则是反过来,关注那些通常被忽略的部分。这种机制有助于排除模型中不需要的特征,让模型专注于更重要的部分。

  • 注意力 Dropout:这是一种通过随机抛弃一些特征来改善模型鲁棒性的方法。就像你在整理房间时,有时候丢掉一些东西反而能让房间更整洁。注意力 Dropout 通过有意随机忽略一些特征,帮助模型更有效地训练,并减少过拟合的风险。它可以提高模型的稳定性和泛化能力,因为它可以让模型适应数据中的多样性,而不是过度依赖某些特征。

2.5 逻辑注意力 (Logical Attention)

图片

图7展示了基于逻辑的注意力方法的核心结构,例如 Prophet attention [165] 和 S3TA [56]。这些属于一种使用逻辑网络(如 RNN)来推断注意力得分的注意力类型。图像来自原始论文。

逻辑注意力机制是基于逻辑门的结构来计算注意力得分。逻辑门是一种数学结构,用来处理二进制数据。它像一个开关,根据不同的条件打开或关闭。逻辑注意力采用类似的概念,来决定哪些数据需要关注。常见的逻辑注意力包括:

  • 递归注意力 (Recurrent Attention):这种注意力使用递归神经网络 (RNN) 来生成注意力得分。递归神经网络可以处理序列数据,比如时间序列或文本。递归注意力能够记住之前的数据,然后根据这些记忆来决定新的注意力焦点。这在处理语音、文本或其他顺序数据时非常有用。

  • Show, Attend and Tell:这是一个结合软注意力和硬注意力的模型,用于图像描述和语言生成。它的原理是:在处理图像时,模型首先使用软注意力来关注图像中的某些区域,然后使用硬注意力来生成描述。这种结合让模型既能灵活关注不同部分,又能根据需要进行精确的描述。它在图像标注、自动翻译和文本生成等领域非常受欢迎。

2.6 类别注意力 (Category-Based Attention)

类别注意力是一种根据类别标签来生成注意力得分的机制。它可以引导模型关注某一特定类别的特征。在这个机制中,模型首先了解不同类别,然后根据这些类别的标签来决定该关注哪些数据。类别注意力的应用范围广泛,特别是在监督学习中。

想象一下,你在组织一组照片,每张照片都有一个标签,例如“动物”或“植物”。类别注意力会根据这些标签来选择要关注的特征。如果是“动物”,模型可能会关注爪子和毛皮;如果是“植物”,可能会关注叶子和花朵。这种机制帮助模型在有明确标签的情况下更有效地进行学习。

类别注意力可以提高模型的准确性,因为它可以指导模型关注重要的特征,而忽略不相关的部分。然而,它也有一些限制,比如依赖于类别标签的质量。如果标签不准确,模型的注意力可能会偏离正确的方向。

这是各种注意力机制的详细分类和说明。每一种注意力机制都有其独特的应用场景和优缺点。软注意力适合需要灵活关注的场景,而硬注意力适合需要精准聚焦的情况。逻辑注意力与算术注意力可以用于处理复杂的逻辑关系,而多模态注意力可以处理多种数据类型。每种注意力机制的选择取决于任务的需求和数据的特性。

从公式的角度来看,图像领域的注意力机制通常涉及加权的特征表示。注意力机制的关键在于计算注意力得分,然后根据这些得分来加权特征。这里有一些常见的公式和数学概念,用于解释图像领域的注意力机制:

3 从公式的角度理解注意力机制

3.1 注意力得分计算

在自我注意力机制中,常用的方法是计算查询 (query)、键 (key)、值 (value) 三者之间的关系。基本公式如下:

图片

图片

3.2 通道注意力

通道注意力通常通过全局平均池化或全局最大池化来计算每个通道的权重。一个典型的通道注意力机制的公式如下:

图片

图片

3.3 空间注意力

空间注意力着眼于特征图的空间维度,计算每个空间位置的重要性。一个典型的空间注意力机制的公式如下:

图片

图片

3.4 硬注意力

硬注意力通常涉及随机选择特定的状态作为注意力,而不是加权平均。这通常通过强化学习或贝叶斯模型来实现,公式的复杂性较高。

3.5 算术注意力

算术注意力通过简单的数学运算来生成注意力得分。例如,反向注意力通过取反来计算注意力得分:

图片

总结

注意力机制的核心是计算注意力得分,然后根据这些得分来加权特征。简单来说,这意味着模型会根据计算出的得分决定要重点关注哪些特征。这通常涉及一些数学概念,比如矩阵运算、卷积操作、激活函数、池化操作等。

在注意力机制中,计算注意力得分是关键的一步。得分越高,模型就越关注对应的特征。这些操作可能涉及复杂的矩阵运算和其他数学计算。然后模型会根据这些得分来调整对输入数据的关注程度。

在实际应用中,这些公式可能会有所变化,具体取决于注意力机制的类型和应用场景。无论是处理文本、图像还是音频,注意力机制都可以帮助模型更好地选择要关注的内容,从而提高处理数据的效率和准确性。

参考文献

Visual Attention Methods in Deep Learning: An In-Depth Survey

Attention? Attention!

  • 14
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值