10.1注意力提示
- 自主性注意力机制 有意识的注意力机制。
- 非自主性注意力机制 无意识的注意力机制。
小结:
- 人类的注意力是有限的,有价值和稀缺的资源。
- 受试者使用非自主性和自主性提示有选择的引导注意力,前者基于突出性,后者则依赖于意识。
- 注意力机制与全连接层或者汇聚层的区别源于增加的自主提示。
- 由于包含了自主性提示,注意力机制与全连接的层或汇聚层不同。
- 注意力机制通过注意力汇聚使选择偏向于值(感官输入),其中包含查询(自主性提示)和键(非自主性提示)。键和值是成对的。
- 可视化查询和键之间的注意力权重是可行的。
注意力汇聚:Nadaraya-Watson核回归
- Nadaraya-Watson核回归是具有注意力机制的机器学习范例。
- Nadaraya-Watson核回归的注意力汇聚是对训练数据中输出的加权平均。从注意力的角度来看,分配给每个值的注意力权重取决于将值所对应的键和查询作为输入的函数。
- 注意力汇聚可以分为非参数型和带参数型。
注意力评分函数
在注意力机制中,注意力评分函数(Attention Scoring Function)是用来计算注意力权重的关键组成部分。这个函数决定了在生成输出时,模型应该给予输入序列中每个部分多少“注意力”。不同的评分函数会导致不同的注意力分布,进而影响模型的性能和行为。
常见的注意力评分函数:
注意力权重的计算:
一旦计算出评分,就会使用softmax函数将这些评分转换为概率分布(即权重),这些权重决定了值(Value)的加权组合方式,进而产生注意力机制的输出。
应用
在不同的任务和模型架构中,可以选择不同的评分函数,例如:Transformer模型使用的是缩放点积注意力。
选择哪种评分函数取决于特定任务的需求,以及输入数据的性质。
小结:
- 将注意力汇聚的输出计算可以作为值的加权平均,选择不同的注意力评分函数会带来不同的注意力汇聚操作。
- 当查询和键是不同长度的矢量时,可以使用可加性注意力评分函数。当它们的长度相同时,使用缩放的“点-积”注意力评分函数的计算效率更高。
10.4 Bahdanau注意力
加性注意力
通过加性模型计算注意力分数。是一种在神经网络中实现注意力机制的方法。
小结:
- 在预测词元时,如果不是所有输入词元都是相关的,那么具有Bahdanau注意力的循环神经网络编码器-解码器会有选择地统计输入序列的不同部分。这是通过将上下文变量视为加性注意力池化的输出来实现的。
- 在循环神经网络编码器-解码器中,Bahdanau注意力将上一时间步的解码器隐状态视为查询,在所有时间步的编码器隐状态同时视为键和值。
多头注意力
小结
多头注意力融合了来自于多个注意力汇聚的不同知识,这些知识的不同来源于相同的查询,键和值的不同的子空间表示。
自注意力和位置编码
定义:
在深度学习中,经常使用卷积神经网络(CNN)或循环神经网络(RNN)对序列进行编码。 想象一下,有了注意力机制之后,我们将词元序列输入注意力池化中, 以便同一组词元同时充当查询、键和值。 具体来说,每个查询都会关注所有的键-值对并生成一个注意力输出。 由于查询、键和值来自同一组输入,因此被称为自注意力(self-attention)。
小结:
- 在自注意力中,查询,键和值都来自同一组输入。
- 卷积神经网络和自注意力都拥有并行计算的优势,而且自注意力的最大路径长度最短。
Transformer模型
- Transformer是编码器-解码器架构的一个实践,尽管在实际情况中编码器或解码器可以单独使用。
- 在Transformer中,多头自注意力用于表示输入序列和输出序列,不过解码器必须通过掩蔽机制来保留自回归属性。
- Transformer中的残差连接和层规范化是训练非常深度模型的重要工具。
- Transformer模型中基于位置的前馈网络使用同一个多层感知机,作用是对所有序列位置的表示进行转换。