WA_automat

注意!Transformer

N 人看过

本博客主要内容是讲解模型,基本顺序如下:

  1. 编码器-解码器架构
  2. 注意力机制
  3. 模型

编码器-解码器架构由论文《》提出,而由论文《》提出

不同,可以比较好地并行训练。

下面就让我来介绍一下吧!

编码器-解码器架构

为解决问题(变长序列转变为变长序列),编码器-解码器架构被提出了。

编码器-解码器架构将长度可变的序列作为输入和输出,其中:

  1. 编码器可将长度可变的序列作为输入,并将其转换为具有固定形状的编码状态
  2. 解码器将具有固定的编码状态映射为长度可变的序列

编码器

假设输入序列为为当前时间步的隐状态,则循环神经网络的循环层所做的转换即为:

编码器通过选定的函数,将所有事件步的隐状态转换为上下文变量:

解码器

假设输出序列为,上下文变量为为当前时间步的隐状态,则循环神经网络的循环层所做的转换即为:

在获得解码器的隐状态后,我们可以使用输出层和操作来计算在时间步时输出的条件概率分布

在实现解码器时,我们需要使用编码器最后一个时间步的隐状态来初始化解码器的隐状态,这就要求使用循环神经网络实现的编码器和解码器具有相同数量的层和隐藏单元。

注意力机制

自主性的与非自主性的注意力提示解释了人类的注意力的方式。

是否包含自主型提示将注意力机制与全连接层或汇聚层区别开来。在注意力机制的背景下,自主型提示被称为查询。给定任何查询,注意力机制通过注意力汇聚将选择引导至感官输入。

即:查询(自主性提示)、键(非自主性提示)、值(感官输入),其中,查询与键之间的交互称为注意力汇聚,注意力汇聚可以有选择性的汇聚了值以生成最终的输出。

-核回归模型

根据输入的位置对输出进行加权:

其中,表示核函数,通用的表示方式为:

其中的系数值越大,表示分配给这个键的权重越大,也就是“获得了更多的注意力”。

注意力评分函数

评分函数的输出结果输入函数中进行计算可以得到键对应值的概率分布。

由于注意力权重是概率分布,因此加权和在本质上就是加权平均数。

注意力汇聚函数本质:

加性注意力(适用于查询与键是不同长度的向量时),其评分函数为:

将查询与键输入到一个多层感知机中,感知机包含一个隐藏层,其隐藏单元数是一个超参数,通过作为激活函数,并且禁用偏置项。

缩放点积注意力可以得到计算效率更高的评分函数,但点积操作需要要求查询和键具有相同的长度,其评分函数为:

注意力

多头注意力

本质上是将多头连接后线性变换,将每个查询、键、值使用全连接层分布连接后,进入注意力层,再将所有注意力层连接并进入一个新的全连接层。

其中的可以是加性注意力也可以是缩放点积注意力。

自注意力和位置编码

给定一个由词元组成的序列,该序列的自注意力输出为一个长度相同的序列,其中:

与卷积神经网络相同,自注意力也有并行计算的优势。

位置编码是在处理序列时需要进行的操作。自注意力由于并行计算放弃了顺序操作,为了使用序列的顺序进行,通过在输入时添加位置编码来注入绝对的或相对的位置信息。

假设输入是一个包含个词元的维嵌入表示。位置编码使用相同形状的位置嵌入矩阵输出,矩阵第行、第列和第列上的元素分别为:

模型

模型完全基于注意力机制,没有任何卷积层或循环神经网络层。最初应用于序列到序列学习,现在已经推广到各种现代深度学习中。

本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 (CC BY-NC-ND 4.0) 进行许可。