本文是来自翻译Jason Brownlee PhD的文章Machine Learning Mastery

什么是注意力?

注意力在机器学习中变得越来越流行,但是是什么让它如此吸引人的概念呢?在人工神经网络中应用的注意力与其生物学对应物之间有什么关系?人们期望在机器学习中形成基于注意力的系统的组件是什么?
在本教程中,你将发现注意力的概述及其在机器学习中的应用。
完成本教程后,您将了解:
1、对注意力如何在人脑中表现出来的简要概述。
2、构成基于注意力的系统的组件,以及这些组件如何受到生物注意力的启发。

教程概述

本教程分为两部分:
1、注意力
2、机器学习中的注意力

注意力

注意力是一个被广泛研究的概念,经常与唤醒、警觉性和与周围环境的接触相结合进行研究。

在最通用的形式中,注意力可以被描述为仅仅是一种整体的警觉水平或与周围环境互动的能力。------关注心理学、神经科学和机器学习,2020年

视觉注意力是从神经学科和心理学角度最常研究的领域之一。
当一个主体被呈现出不同的图像时,主体的眼球运动可以揭示出主体注意力最集中的显著图像部分。这些显著的图像部分通常具有视觉属性,包括强度对比度、定向边缘、角落和交界处以及运动。人类大脑在不同的神经元阶段关注这些显著的视觉特征。

最早阶段的神经元被调整为简单的视觉属性,例如强度对比、颜色对立、方向、运动方向和速度,或几个空间尺度的立体差异。随着这从低级视觉区域到高级视觉区域的进展,神经元调整变得越来越专业化,例如高级视觉区域包括对角落或连接处、阴影形状提示或特定现实世界视图做出反应的神经元对象。 ------视觉注意力的计算建模,2001年

有趣的是,研究还观察到不同的受试者往往会被相同的显著视觉线索所吸引。
研究还发现了记忆和注意力之间的几种相互作用形式。由于人脑的记忆容量有限,因此选择存储哪些信息对于充分利用有限资源变得至关重要。人脑是通过注意力来做到这一点的,它动态地将人类注意最关注的信息存储到记忆中。

机器学习中的注意力

人工神经网络中注意力机制的实现不一定跟踪人脑的生物和心理机制。相反,正是以在人脑中类似的方式动态突出和使用手头信息的显著部分的能力,使得注意力在机器学习中成为如此有吸引力的概念。
一个基于注意力的系统被认为由三个部分组成:

1、读取原始数据(例如源句子中的源词)并将其转换为分布式表示的过程,每个词位置具有一个特征向量。
2、存储阅读器输出的特征向量列表。这可以理解为包含一系列事实的记忆,稍后可以检索这些事实,不一定按相同的顺序,而不必访问所有这些事实。
3、一种利用记忆内容以顺序执行任务的过程,在每个时间步都有能力将注意力放在一个记忆元素(或几个,具有不同的权重)的内容上。
------第491页,深度学习,2017年

我们以编码器-解码器框架为例,因为正是在这样的框架内首次引入了注意力机制。
如果我们正在处理输入的单词序列,那么它首先会被送入到编码器,编码器将序列中的每个元素输出一个向量。如上所述,这对应于我们基于注意力的系统的第一个组件。
这些向量的列表(上面基于注意力的系统的第二个组件),连同解码器之前的隐藏状态,将被注意力机制利用来动态突出显出哪些输入信息将用于生成输出。
然后,在每个时间步,注意力机制采用解码器的先前隐藏状态和编码向量列表,并使用它们生成非标准化的分数值,指示输入序列的元素与当前输出的对其程度。由于生成的分数值需要在其重要性方面具有相对意义,因此通过将它们传递给softmax函数以生成权重来对他们进行归一化。在softmax归一化之后,所有的权重值都将位于区间[0,1]内并且相加为1,这意味着他们可以被解释为概率。最后,编码向量通过计算出的权重进行缩放以生成上下文向量。这个注意力过程构成了上述基于注意力的系统的第三个组成部分。正是这个上下文向量被送入解码器以生成翻译后的输出。

因此,这种类型的人工注意力是一种迭代重新加权的形式。具体来说,它动态突出显示预处理输入的不同组件,因为它们是生成输出所需的。这使它变得灵活且依赖于上下文,就像生物注意力一样。 ------关注心理学、神经科学和机器学习,2020年

由包含注意力机制的系统实现的过程与不包含注意力机制的系统形成对比。在后者中,编码器将生成一个固定长度的向量,而不管输入的长度或复杂性如何。如果没有突出显示整个输入的显着信息的机制,解码器将只能访问将在固定长度向量中编码的有限信息。这可能会导致解码器丢失重要信息。

最初提出注意机制来处理机器翻译中的单词序列,这对它们具有隐含的时间方面。然而,它可以概括为处理静态的信息,不一定以顺序方式相关,例如在图像处理的上下文中。我们将在单独的教程中看到如何实现这种概括。

深入了解

如想深入了解,可关注Jason Brownlee PhD