第8章、注意力机制与外部记忆

神经网络中可以存储的信息量称为网络容量(Network Capacity)。一般来讲,利用一组神经元来存储信息时,其存储容量和神经元的数量以及网络的复杂度成正比。要存储的信息越多,神经元数量就要越多或者网络要越复杂,进而导致神经网络的参数成倍地增加。
人脑的神经系统有两个重要机制可以解决信息过载问题:注意力记忆机制
借鉴人脑解决信息过载的机制,从两方面来提高神经网络处理信息的能力.一方面是注意力,通过自上而下的信息选择机制来过滤掉大量的无关信息;另一方面是引入额外的外部记忆,优化神经网络的记忆结构来提高神经网络存储信息的容量。

8.1 认知神经学中的注意力

注意力是指人可以在关注一些信息的同时忽略另一些信息的选择能力。
注意力可以作用在外部的刺激(听觉、视觉、味觉等),也可以作用在内部的意识(思考、回忆等)。
注意力一般分为两种:
(1) 自上而下的有意识的注意力,称为聚焦式注意力,是指有预定目的、依赖任务的,主动有意识地聚焦于某一对象的注意力。
(2) 自下而上的无意识的注意力,称为基于显著性的注意力,是由外界刺激驱动的注意,不需要主动干预,也和任务无关。
一个和注意力有关的例子是鸡尾酒会效应

8.2 注意力机制

在计算能力有限的情况下, 注意力机制作为一种资源分配方案,将有限的计算资源用来处理更重要的信息,是解决信息超载问题的主要手段。
为了节省计算资源,不需要将所有信息都输入神经网络,只需要从𝑿 中选择一些和任务相关的信息。注意力机制的计算可以分为两步:一是在所有输入信息上计算注意力分布,二是根据注意力分布来计算输入信息的加权平均
注意力分布
为了从 𝑁 个输入向量[𝒙1, ⋯ , 𝒙𝑁 ] 中选择出和某个特定任务相关的信息,我们需要引入一个和任务相关的表示,称为查询向量,并通过一个打分函数来计算每个输入向量查询向量之间的相关性。
给定一个和任务相关的查询向量 𝒒,( 查询向量𝒒可以是动态生成的,也可以是可学习的参数)。首先计算在给定 𝒒 和 𝑿 下,选择第 n个输入向量的概率𝛼n
在这里插入图片描述
其中 𝛼𝑛 称为注意力分布,𝑠(𝒙, 𝒒) 为注意力打分函数,可以使用以下几种方式来计算:在这里插入图片描述
在这里插入图片描述
其中𝑾, 𝑼, 𝒗为可学习的参数,𝐷 为输入向量的维度。

加权平均
采用一种“软性”的信息选择机制对输入信息进行汇总,即
在这里插入图片描述
公式 (8.7) 称为软性注意力机制,图8.1a给出软性注意力机制的示例。在这里插入图片描述
注意力机制可以单独使用,但更多地用作神经网络中的一个组件.

8.2.1 注意力机制的变体
8.2.1.1 硬性注意力

公式(8.7)提到的注意力是软性注意力,其选择的信息是所有输入向量在注意力分布下的期望。此外,还有一种注意力是只关注某一个输入向量,叫作硬性注意力
硬性注意力有两种实现方式:
(1)一种是选取最高概率的一个输入向量,即在这里插入图片描述
其中 ̂𝑛为概率最大的输入向量的下标,即在这里插入图片描述
(2)另一种硬性注意力可以通过在注意力分布式上随机采样的方式实现。
硬性注意力的一个缺点是基于最大采样或随机采样的方式来选择信息,使得最终的损失函数与注意力分布之间的函数关系不可导,无法使用反向传播算法进行训练。因此,硬性注意力通常需要使用强化学习来进行训练。
为了使用反向传播算法,一般使用软性注意力来代替硬性注意力。

8.2.1.2 键值对注意力

用键值对格式来表示输入信息,其中“键”用来计算注意力分布𝛼𝑛,“值”用来计算聚合信息。
用(𝑲, 𝑽 ) = [(𝒌1, 𝒗1), ⋯ , (𝒌𝑁 , 𝒗𝑁 )]表示𝑁 组输入信息,给定任务相关的查询向量𝒒时,注意力函数为在这里插入图片描述
其中𝑠(𝒌𝑛, 𝒒)为打分函数。
图8.1b给出键值对注意力机制的示例.当𝑲 = 𝑽 时,键值对模式就等价于普通的注意力机制。

8.2.1.3 多头注意力

是利用多个查询𝑸 = [𝒒1, ⋯ , 𝒒𝑀],来并行地从输入信息中选取多组信息.每个注意力关注输入信息的不同部分。在这里插入图片描述
其中⊕表示向量拼接。

8.2.1.4 结构化注意力
8.2.1.5 指针网络

注意力机制主要是用来做信息筛选,从输入信息中选取相关的信息。可以只利用注意力机制中的第一步,将注意力分布作为一个软性的指针来指出相关信息的位置。
指针网络:是一种序列到序列模型,输入是长度为 𝑁 的向量序列 𝑿 = 𝒙1, ⋯ , 𝒙𝑁,输出是长度为 𝑀 的下标序列𝒄1∶𝑀 = 𝑐1, 𝑐2, ⋯ , 𝑐𝑀,𝑐𝑚 ∈ [1, 𝑁]。在这里插入图片描述
其中条件概率𝑝(𝑐𝑚|𝒙𝑐1, ⋯ , 𝒙𝑐(𝑚−1) , 𝒙1∶𝑁 )可以通过注意力分布来计算。
假设用一个循环神经网络对𝒙𝑐1, ⋯ , 𝒙𝑐𝑚−1, 𝒙1∶𝑁 进行编码得到向量𝒉𝑚,则在这里插入图片描述
其中𝑠𝑚,𝑛 为在解码过程的第𝑚步时,𝒉𝑚 对𝒉𝑛 的未归一化的注意力分布,即在这里插入图片描述
其中𝒗,𝑾, 𝑼 为可学习的参数。
下图给出了指针网络的示例,其中𝒉1, 𝒉2, 𝒉3 为输入数字20, 5, 10经过循环神经网络的隐状态,𝒉0 对应一个特殊字符 ‘<’.当输入 ‘>’时,网络一步一步输出三个输入数字从大到小排列的下标。在这里插入图片描述

8.3 自注意力模型

要建立输入序列之间的长距离依赖关系,可以使用以下两种方法:一种方法是增加网络的层数;另一种方法是使用全连接网络.
全连接网络是一种非常直接的建模远距离依赖的模型,但是无法处理变长的输入序列。不同的输入长度,其连接权重的大小也是不同的。

利用注意力机制来“动态”地生成不同连接的权重,这就是自注意力模型
为了提高模型能力,自注意力模型经常采用查询-键-值模式,其计算过程如下图所示,其中红色字母表示矩阵的维度。在这里插入图片描述
假设输入序列为𝑿 = [𝒙1, ⋯ , 𝒙𝑁 ],输出序列为𝑯 = [𝒉1, ⋯ , 𝒉𝑁 ],自注意力模型的具体计算过程如下:
(1)对于每个输入𝒙𝑖,我们首先将其线性映射到三个不同的空间,得到查询向量𝒒𝑖、键向量𝒌𝑖和值向量𝒗𝑖。在这里插入图片描述
其中 𝑾𝑞,𝑾𝑘,𝑾𝑣分别为线性映射的参数矩阵,𝑸 = [𝒒1, ⋯ , 𝒒𝑁 ], 𝑲 = [𝒌1, ⋯ , 𝒌𝑁 ], 𝑽 = [𝒗1, ⋯ , 𝒗𝑁 ] 分别是由查询向量、键向量和值向量构成的矩阵。
(2)对于每一个查询向量𝒒𝑛,利用键值对注意力机制,可以得到输出向量𝒉𝑛,在这里插入图片描述
在这里插入图片描述
𝛼𝑛𝑗 表示第𝑛个输出关注到第𝑗个输入的权重。
如果使用缩放点积来作为注意力打分函数,输出向量序列可以简写为在这里插入图片描述
其中softmax(⋅)为按列进行归一化的函数。
由于自注意力模型的权重是动态生成的,因此可以处理变长的信息序列。
自注意力模型可以作为神经网络中的一层来使用,既可以用来替换卷积层和循环层,也可以和它们一起交替使用。自注意力模型可以扩展为多头自注意力模型,在多个不同的投影空间中捕捉不同的交互信息。

8.4 人脑中的记忆

在生物神经网络中,记忆是外界信息在人脑中的存储机制。
人脑中的记忆具有周期性和联想性
记忆周期
记忆一般分为长期记忆短期记忆
长期记忆,也称为结构记忆或知识,体现为神经元之间的连接形态,其更新速度比较慢。
短期记忆,体现为神经元的活动,更新较快,维持时间为几秒至几分钟。短期记忆是神经连接的暂时性强化,通过不断巩固、强化可形成长期记忆。短期记忆、长期记忆的动态更新过程称为演化过程。
除了长期记忆和短期记忆,人脑中还会存在一个“缓存”,称为工作记忆。工作记忆是一个和任务相关的“容器”,可以临时存放和某项任务相关的短期记忆和其他相关的内在记忆。
联想记忆
是指一种学习和记住不同对象之间关系的能力。联想记忆是指一种可以通过内容匹配的方法进行寻址的信息存储方式,也称为基于内容寻址的存储。作为对比,现代计算机的存储方式是根据地址来进行存储的,称为随机访问存储

表8.1给出了不同领域中记忆模型的不严格类比在这里插入图片描述

8.5 记忆增强神经网络

为了增强网络容量,引入辅助记忆单元,将一些和任务相关的信息保存在辅助记忆中,在需要时再进行读取,这样可以有效地增加网络容量.这个引入的辅助记忆单元一般称为外部记忆,这种装备外部记忆的神经网络也称为记忆增强神经网络,或简称为记忆网络
记忆网络的典型结构如下图所示,一般由以下几个模块构成:
在这里插入图片描述
(1) 主网络𝐶:也称为控制器,负责信息处理,以及与外界的交互。
(2) 外部记忆单元𝑴:外部记忆单元用来存储信息,一般可以分为很多记忆片段。
(3) 读取模块 𝑅:根据主网络生成的查询向量 𝒒𝑟,从外部记忆单元中读取相应的信息𝒓 = 𝑅(𝑴, 𝒒𝑟).
(4) 写入模块 𝑊:根据主网络生成的查询向量 𝒒𝑤 和要写入的信息 𝒂 来更新外部记忆𝑴 = 𝑊 (𝑴, 𝒒𝑤, 𝒂)。

8.5.1 端到端记忆网络

采用一种可微的网络结构,可以多次从外部记忆中读取信息.在端到端记忆网络中,外部记忆单元是只读的。

给定一组需要存储的信息𝑚1∶𝑁 = {𝑚1, ⋯ , 𝑚𝑁 }, 首先将其转换成两组记忆片段 𝐴 = [𝒂1, ⋯ , 𝒂𝑁 ] 和 𝐶 = [𝒄1, ⋯ , 𝒄𝑁 ],分别存放在两个外部记忆单元中,其中𝐴用来进行寻址,𝐶 用来进行输出。
主网络根据输入𝒙生成𝒒,并使用键值对注意力机制来从外部记忆中读取相关信息r
在这里插入图片描述
并产生输出在这里插入图片描述
其中𝑓(⋅)为预测函数。
多跳操作
在第𝑘轮交互中,主网络根据上次从外部记忆中读取的信息𝒓(𝑘−1),产生新的查询向量
在这里插入图片描述
在 𝐾 轮交互后,用下式进行预测:在这里插入图片描述
这种多轮的交互方式也称为多跳操作。多跳操作中的参数一般是共享的。可设为相等。在这里插入图片描述

8.5.2 神经图灵机

图灵机
一种抽象数学模型,可以用来模拟任何可计算问题。
图灵机的结构如下图所示,其中控制器包括状态寄存器、控制规则.
在这里插入图片描述
神经图灵机
主要由两个部件构成:控制器和外部记忆。外部记忆定义为矩阵 M,控制器为一个前馈或循环神经网络。神经图灵机中的外部记忆是可读写的。在这里插入图片描述
读操作
读操作为从外部记忆𝑴𝑡 中读取信息𝒓t
首先通过注意力机制来进行基于内容的寻址,即在这里插入图片描述
根据注意力分布𝛼𝑡,可以计算读向量𝒓𝑡 作为下一个时刻控制器的输入。在这里插入图片描述
写操作 -----删除和增加
首先,控制器产生删除向量𝒆𝑡 和增加向量𝒂𝑡,分别为要从外部记忆中删除的信息和要增加的信息.删除操作是根据注意力分布来按比例地在每个记忆片段中删除 𝒆𝑡,增加操作是根据注意力分布来按比例地给每个记忆片段加入𝒂t在这里插入图片描述

8.6 基于神经动力学的联想记忆

联想记忆模型主要是通过神经网络的动态演化来进行联想,有两种应用场景:
1)输入的模式和输出的模式在同一空间,这种模型叫作自联想模型
2)输入的模式和输出的模式不在同一空间,这种模型叫作异联想模型
联想记忆模型可以利用神经动力学的原理来实现按内容寻址的信息存储和检索。一个经典的联想记忆模型为Hopfield网络。

8.6.1 Hopfield网络

Hopfield网络:是一种循环神经网络模型,由一组互相连接的神经元组成。
在这里插入图片描述
假设一个Hopfield网络有𝑀 个神经元,第𝑖 个神经元的更新规则为
在这里插入图片描述
连接权重𝑤𝑖𝑗 有以下性质:在这里插入图片描述
Hopfield 网络的更新可以分为异步和同步两种方式。异步更新是指每次更新一个神经元,神经元的更新顺序可以是随机或事先固定的.同步更新是指一次更新所有的神经元,需要有一个时钟来进行同步。
第 𝑡 时刻的神经元状态为𝒔t,其更新规则为在这里插入图片描述
能量函数
在Hopfield网络中,我们给每个不同的网络状态定义一个标量属性,称为“能量”,Hopfield网络的能量函数𝐸 定义为在这里插入图片描述
给定一个外部输入,网络经过演化,会达到某个稳定状态。这些稳定状态称为吸引点,在一个Hopfield网络中,通常有多个吸引点,每个吸引点为一个能量的局部最优点。在这里插入图片描述
联想记忆
在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值