没有合适的资源?快使用搜索试试~ 我知道了~
一篇背景文章,然后询问一些相关的问题,来测试机器是否理解了这篇文章。理解任务为例,给定的背景文章(background document)一般比较长,如果用循环
资源详情
资源评论
资源推荐
第
8
章 注意力机制与外部记忆
智慧的艺术是知道该忽视什么。
— 威廉·詹姆斯
根据通用近似定理,前馈网络和循环网络都有很强的能力。但由于优化算
法和计算能力的限制,在实践中很难达到通用近似的能力。特别是在处理复杂
任务时,比如需要处理大量的输入信息或者复杂的计算流程时,目前计算机的
计算能力依然是限制神经网络发展的瓶颈。
为了减少计算复杂度,通过部分借鉴生物神经网络的一些机制,我们引入
了局部连接、权重共享以及汇聚操作来简化神经网络结构。虽然这些机制可以
有效缓解模型的复杂度和表达能力之间的矛盾,但是我们依然希望在不“过度”
增加模型复杂度(主要是模型参数)的情况下来提高模型的表达能力。以阅读
阅读理解任务是让机器阅读
一篇背景文章,然后询问一
些相关的问题,来测试机器
是否理解了这篇文章。
理解任务为例,给定的背景文章(background document)一般比较长,如果用
循环神经网络来将其转换为向量表示,那么这个编码向量很难反映出背景文章
的所有语义。在比较简单的文本分类任务中,只需要编码一些对分类有用的信
息,因此用一个向量来表示文本语义来行得通。但是在阅读理解任务中,编码
时还不知道可能会接收到什么样的问句。这些问句可能会涉及到背景文章的所
有信息点,因此丢失任何信息都可能导致无法正确回答问题。
在循环神经网络中,丢失信
息的另外一个因素是远距离
依赖问题。
神经网络中可以存储的信息量称为网络容量(network capacity)。一般来
讲,利用一组神经元来存储信息的容量和神经元的数量以及网络的复杂度成正
比。如果要存储越多的信息,神经元数量就要越多或者网络要越复杂,进而导
致神经网络的参数成倍地增加。
我们人脑的生物神经网络同样存在网络容量问题,人脑中的工作记忆大概
只有几秒钟的时间,类似于循环神经网络中的隐状态。而人脑每个时刻接收的
外界输入信息非常多,包括来源于视觉、听觉、触觉的各种各样的信息。但就
视觉来说,眼睛每秒钟都会发送千万比特的信息给视觉神经系统。人脑在有限
190 2018 年 11 月 3 日 第 8 章 注意力机制与外部记忆
的资源下,并不能同时处理这些过载的输入信息。大脑神经系统有两个重要机
制可以解决信息过载问题:注意力和记忆机制。
我们可以借鉴人脑解决信息过载的机制,从两方面来提高神经网络处理信
息的能力。一方面是注意力,通过自上而下的信息选择机制来过滤掉大量的无
关信息;另一方面是引入额外的外部记忆,优化神经网络的记忆结构来提高神
经网络存储信息的容量。
8.1 注意力
在计算能力有限情况下,注意力机制(attention mechanism)是解决信息
超载问题的主要手段的一种资源分配方案,将计算资源分配给更重要的任务。
8.1.1 认知神经学中的注意力
注意力是一种人类不可或缺的复杂认知功能,指人可以在关注一些信息的
同时忽略另一些信息的选择能力。在日常生活中,我们通过视觉、听觉、触觉
等方式接收大量的感觉输入。但是人脑可以在这些外界的信息轰炸中还能有条
不紊地工作,是因为人脑可以有意或无意地从这些大量输入信息中选择小部分
的有用信息来重点处理,并忽略其他信息。这种能力就叫做注意力。注意力可
以体现在外部的刺激(听觉、视觉、味觉等),也可以体现在内部的意识(思考、
回忆等)。
注意力一般分为两种:一种是自上而下的有意识的注意力,称为聚焦式(fo-
cus)注意力。聚焦式注意力是指有预定目的、依赖任务的、主动有意识地聚焦
于某一对象的注意力;另一种是自下而上的无意识的注意力,称为基于显著性
(saliency-based)的注意力。基于显著性的注意力是由外界刺激驱动的注意,不
需要主动干预,也和任务无关。如果一个对象的刺激信息不同于其周围信息,一
种无意识的“赢者通吃”(winner-take-all)或者门控(gating)机制就可以把注
意力转向这个对象。不管这些注意力是有意还是无意,大部分的人脑活动都需
要依赖注意力,比如记忆信息,阅读或思考等。
一个和注意力有关的例子是鸡尾酒会效应。当一个人在吵闹的鸡尾酒会上
和朋友聊天时,尽管周围噪音干扰很多,他还是可以听到朋友的谈话内容,而
忽略其他人的声音(聚焦式注意力)。同时,如果未注意到的背景声中有重要的
词(比如他的名字),他会马上注意到(显著性注意力)。
除非特别声明,本节及以后
章节中注意力机制是通常指
自上而下的聚焦式注意力。
聚焦式注意力一般会随着环境、情景或任务的不同而选择不同的信息。比
如当要从人群中寻找某个人时,我们会将专注于每个人的脸部;而当要统计人
群的人数时,我们只需要专注于每个人的轮廓。
邱锡鹏:《神经网络与深度学习》 https://nndl.github.io/
8.1 注意力 2018 年 11 月 3 日 191
8.1.2 人工神经网络中的注意力机制
当用神经网络来处理大量的输入信息时,也可以借鉴人脑的注意力机制,只
选择一些关键的信息输入进行处理,来提高神经网络的效率。在目前的神经网
注意力机制也可称为注意力
模型。
络模型中,我们可以将最大汇聚(max pooling)、门控(gating)机制来近似地
看作是自下而上的基于显著性的注意力机制。除此之外,自上而下的会聚式注
意力也是一种有效的信息选择方式。以阅读理解任务为例,给定一篇很长的文
阅读理解任务参见第??节。
章,然后就此文章的内容进行提问。提出的问题只和段落中的一两个句子相关,
其余部分都是无关的。为了减小神经网络的计算负担,只需要把相关的片段挑
选出来让后续的神经网络来处理,而不需要把所有文章内容都输入给神经网络。
用 X = [x
1
, ··· , x
N
] 表示 N 个输入信息,为了节省计算资源,不需要将所
有的 N 个输入信息都输入到神经网络进行计算,只需要从 X 中选择一些和任务
相关的信息输入给神经网络。给定一个和任务相关的查询向量 q,我们用注意
查询向量 q 可以是动态生成
的,也可以是可学习的参数。
力变量 z ∈ [1, N ] 来表示被选择信息的索引位置,即 z = i 表示选择了第 i 个输
入信息。为了方便计算,我们采用一种“软性”的信息选择机制,首先计算在
给定 q 和 X 下,选择第 i 个输入信息的概率 α
i
,
α
i
= p(z = i|X, q)
= softmax
s(x
i
, q)
=
exp
s(x
i
, q)
N
j=1
exp
s(x
j
, q)
, (8.1)
其中 α
i
称为注意力分布(attention distribution),s(x
i
, q) 为注意力打分函数,
可以使用以下几种方式来计算:
加性模型 s(x
i
, q) = v
T
tanh(W x
i
+ Uq), (8.2)
点积模型 s(x
i
, q) = x
T
i
q, (8.3)
缩放点积模型 s(x
i
, q) =
x
T
i
q
√
d
, (8.4)
双线性模型 s(x
i
, q) = x
T
i
W q, (8.5)
其中 W, U, v 为可学习的网络参数,d 为输入信息的维度。理论上,加性模型和点
积模型的复杂度差不多,但是点积模型在实现上可以更好地利用矩阵乘积,从
而计算效率更高。但当输入信息的维度 d 比较高,点积模型的值通常有比较大
方差,从而导致 softmax函数的梯度会比较小。因此,缩放点积模型可以较好地
参见习题8.4。
解决这个问题。相比点积模型,双线性模型在计算相似度时引入了非对称性。
注意力分布 α
i
可以解释为在上下文查询 q 时,第 i 个信息受关注的程度。我
邱锡鹏:《神经网络与深度学习》 https://nndl.github.io/
192 2018 年 11 月 3 日 第 8 章 注意力机制与外部记忆
们采用一种“软性”的信息选择机制对输入信息进行编码为
att(X, q) =
N
i=1
α
i
x
i
, (8.6)
= E
z∼p(z|X,q)
[x]. (8.7)
公式 (8.6) 称为软性注意力机制(soft attention mechanism)。图8.1a给出
软性注意力机制的示例。
softmax
s
x
1
s
x
2
· · ·
· · ·
s
x
N
q
α
1
α
2 · · ·
α
N
× ×
· · ·
×
+
a
(a) 普通模式
softmax
s
k
1
s
k
2
· · ·
· · ·
s
k
N
q
α
1
α
2 · · ·
α
N
× ×
· · ·
×
v
1
v
2
v
N
+
a
(b) 键值对模式
图 8.1 注意力机制
8.1.3 注意力机制的变体
除了上面介绍的基本模式外,注意力机制还存在一些变化的模型。
8.1.3.1 硬性注意力
之前提到的注意力是软性注意力,其选择的信息是所有输入信息在注意力
分布下的期望。还有一种注意力是只关注到某一个位置上的信息,叫做硬性注
意力(hard attention)。
硬性注意力有两种实现方式:
(1)一种是选取最高概率的输入信息,即
att(X, q) = x
j
, (8.8)
其中 j 为概率最大的输入信息的下标,即 j =
N
arg max
i=1
α
i
。
邱锡鹏:《神经网络与深度学习》 https://nndl.github.io/
剩余20页未读,继续阅读
艾苛尔
- 粉丝: 26
- 资源: 307
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0