注意力机制在机器学习领域越来越受欢迎,但究竟是什么让它成为一个如此吸引人的概念?人工神经网络中应用的注意力机制与其生物学对应物之间有什么关系?在机器学习中,人们会期望一个基于注意力机制的系统由哪些组件构成?
在本教程中,您将了解注意力机制及其在机器学习中的应用概述。
完成本教程后,您将了解:
- 关于注意力机制如何在人脑中表现的简要概述
- 构成基于注意力机制的系统的组件以及这些组件如何受到生物注意力机制的启发
通过我的书《使用注意力机制构建 Transformer 模型》**启动您的项目**。它提供了**自学教程**和**可运行代码**,指导您构建一个可以
将句子从一种语言翻译成另一种语言的完整 Transformer 模型...
让我们开始吧。

什么是注意力机制?
照片由 Rod Long 拍摄,保留部分权利。
教程概述
本教程分为两部分;它们是
-
- 注意力机制
- 机器学习中的注意力机制
注意力机制
注意力机制是一个被广泛研究的概念,它经常与觉醒、警觉性和对周围环境的投入一同被研究。
以其最普遍的形式而言,注意力机制可以被描述为仅仅是一种整体的警觉水平或与周围环境互动的能力。
—— 《心理学、神经科学和机器学习中的注意力机制》,2020年。
视觉注意力是神经科学和心理学视角下最常研究的领域之一。
当向受试者展示不同的图像时,受试者执行的眼球运动可以揭示受试者注意力最受吸引的**显著**图像部分。在他们对视觉注意力计算模型的综述中,Itti 和 Koch (2001) 提到,这些显著的图像部分通常以视觉属性为特征,包括强度对比、有向边缘、角点和交点以及运动。人脑在不同的神经元阶段关注这些显著的视觉特征。
处于早期阶段的神经元对简单的视觉属性(如强度对比、颜色对立、方向、运动方向和速度或多个空间尺度上的立体视差)进行调谐。随着从低级到高级视觉区域的进展,神经元调谐变得越来越专业化,使得高级视觉区域包含仅对角点或交点、从阴影中形成的形状线索或特定真实世界对象的视图做出反应的神经元。
—— 《视觉注意力的计算模型》,2001年。
有趣的是,研究还观察到不同的受试者倾向于被相同的显著视觉线索所吸引。
研究还发现了记忆和注意力之间存在多种形式的相互作用。由于人脑的记忆容量有限,因此选择存储哪些信息对于充分利用有限资源至关重要。人脑通过依赖注意力来做到这一点,从而动态地将人类受试者最关注的信息存储在记忆中。
机器学习中的注意力机制
在人工神经网络中实现注意力机制不一定追踪人脑的生物学和心理学机制。相反,它能够动态地突出并使用手头信息的**显著**部分——以与人脑相似的方式——这使得注意力机制在机器学习中成为一个如此吸引人的概念。
设想一个基于注意力机制的系统由三个组件构成
- 一个“读取”原始数据(例如源句子中的源单词)并将其转换为分布式表示的过程,每个单词位置都关联着一个特征向量。
- 一个存储读取器输出的特征向量列表。这可以理解为包含一系列事实的“记忆”,这些事实可以在以后检索,不一定按相同顺序,而无需访问所有这些事实。
- 一个“利用”记忆内容顺序执行任务的过程,在每个时间步都能够将注意力集中在某个记忆元素的内容上(或几个元素,具有不同的权重)。
—— 第491页,《深度学习》,2017年。
我们以编码器-解码器框架为例,因为注意力机制正是在这个框架中首次引入的。
如果我们正在处理一个单词输入序列,那么它将首先被输入到一个编码器中,编码器将为序列中的每个元素输出一个向量。这对应于我们基于注意力机制的系统的第一个组件,如上所述。
这些向量的列表(上面基于注意力机制的系统的第二个组件),连同解码器先前的隐藏状态,将被注意力机制利用,以动态地突出将用于生成输出的输入信息。
在每个时间步,注意力机制都会接收解码器的先前隐藏状态和编码向量列表,并使用它们生成未归一化的**分数**值,这些值表示输入序列的元素与当前输出的匹配程度。由于生成的分数值需要在重要性方面具有相对意义,因此它们通过 softmax 函数进行归一化,以生成**权重**。经过 softmax 归一化后,所有权重值都将在 [0, 1] 区间内,并且总和为 1,这意味着它们可以被解释为概率。最后,编码向量根据计算出的权重进行缩放,以生成一个**上下文向量**。这个注意力过程构成了上述基于注意力机制的系统的第三个组件。然后,这个上下文向量被输入到解码器中,以生成翻译后的输出。
这种类型的人工注意力机制因此是一种迭代重加权的形式。具体来说,它在输出生成需要时,动态地突出预处理输入的不同组件。这使其像生物注意力机制一样灵活且依赖于上下文。
—— 《心理学、神经科学和机器学习中的注意力机制》,2020年。
一个包含注意力机制的系统所实现的过程与不包含注意力机制的系统形成对比。在后者中,编码器会生成一个固定长度的向量,而不论输入的长度或复杂性如何。在没有突出整个输入中显著信息的机制的情况下,解码器将只能访问编码在固定长度向量中的有限信息。这可能会导致解码器丢失重要信息。
注意力机制最初被提出来处理机器翻译中的单词序列,这些序列具有隐含的时间方面。然而,它可以推广到处理静态信息,不一定以顺序方式相关,例如在图像处理的上下文中。您将在单独的教程中看到如何实现这种推广。
想开始构建带有注意力的 Transformer 模型吗?
立即参加我的免费12天电子邮件速成课程(含示例代码)。
点击注册,同时获得该课程的免费PDF电子书版本。
进一步阅读
如果您想深入了解,本节提供了更多关于该主题的资源。
书籍
论文
- 心理学、神经科学和机器学习中的注意力, 2020.
- 视觉注意力的计算模型, 2001.
总结
在本教程中,您了解了注意力机制及其在机器学习中的应用概述。
具体来说,你学到了:
- 关于注意力机制如何在人脑中表现的简要概述
- 构成基于注意力机制的系统的组件以及这些组件如何受到生物注意力机制的启发
你有什么问题吗?
在下面的评论中提出您的问题,我将尽力回答。
非常感谢这个精彩的教程。它真的帮助我理解了我一直努力弄清楚的概念。
很高兴你喜欢它。
这真的很有帮助。我非常期待一个例子。再次感谢你们所做的一切!
谢谢你的反馈和支持,Ciaran!我们非常感谢!
不知怎的错过了链接。找到了,谢谢!
非常欢迎你,Ciaran!
如果您能用图标解释一下,我将不胜感激。
你好 Elibeau…请详细说明什么会对你有益。我们总是期待改进我们内容的建议。
谢谢!有没有带有Python代码的例子?
嗨,cn……以下内容可能对您有帮助
https://machinelearning.org.cn/the-attention-mechanism-from-scratch/
机器学习与生物学有如此多的相似之处,这真是太神奇了!尽管机器学习中的注意力机制与人类注意力并非完全相同,但似乎只需稍作概念上的修改就能使其发挥作用。阅读本教程后,我对机器学习中的注意力机制有了更好的理解。非常感谢您详细而清晰的阐述!
非常欢迎你,Dallin!我们非常感谢你的反馈和支持!
非常有帮助,谢谢
非常欢迎你,Amit!
对于第一次尝试理解这个概念的人来说,语言非常晦涩。
感谢您的反馈,Adithya!您可以去 YouTube 搜索以下内容
“机器学习注意力机制介绍”
这将带来一些很棒的观看选项。然后您可以回到这篇文章,它应该会更有意义。如果仍然不明白,请告诉我们是否可以提供任何澄清。