联系我们

AI 101

什么是变压器神经网络?

mm

更新

 on

描述了变压器神经网络

变形金刚 are a type of 机器学习 专门处理和解释顺序数据的模型,使它们最适合 自然语言处理 任务。为了更好地了解什么是机器学习变压器,以及它们如何工作,让我们仔细研究一下变压器模型和驱动它们的机制。

本文将介绍:

  • 序列到序列模型
  • 变压器神经网络架构
  • 注意机制
  • 变压器与RNN / LSTM之间的差异

序列到序列模型

序列到序列模型是一种NLP模型,用于将一种类型的序列转换为另一种类型的序列。序列到序列模型有多种类型,例如 递归神经网络 型号和 长短期记忆(LSTM) 楷模。

像RNN和LSTMS这样的传统序列到序列模型不是本文的重点,但是必须理解它们才能理解变压器模型的工作方式以及为什么它们优于传统的序列到序列模型。

简单来说, 神经网络 型号和 LSTM 模型由编码器和解码器网络组成,这些网络在不同的时间步长分析输入数据。编码器模型负责在输入数据中形成单词的编码表示。编码器网络在每个时间步都采用输入序列,并处于序列中前一个时间步的隐藏状态。随着数据继续通过网络进行更新,隐藏状态值将进行更新,直到生成“上下文向量”的最后一个时间步。然后将上下文向量传递到解码器网络,该解码器网络用于通过预测在各个时间步长上与输入字配对的最有可能的字来生成目标序列。

这些模型可以通过使用“注意机制”。注意机制定义了网络应关注输入向量的哪些部分以生成适当的输出。换句话说,注意力机制使转换器模型处理一个输入单词,同时注意其他输入单词包含的相关信息。注意机制还会掩盖不包含相关信息的单词。

变压器神经网络架构

稍后我们将更详细地介绍注意力机制,但现在让我们看一下 变压器神经网络的架构 在更高的水平上。

通常,变压器神经网络如下所示:

尽管此一般结构可能会在网络之间发生变化,但核心部分将保持不变:位置编码,单词向量,注意力机制,前馈神经网络。

位置编码和字向量

变压器神经网络运行 通过获取一个输入序列并将这些输入转换为两个其他序列。转换器产生一系列单词矢量嵌入和位置编码。

词向量嵌入 只是以神经网络可以处理的数字格式表示的文本。同时,位置编码是矢量化的表示形式,其中包含有关当前单词相对于其他单词的位置的信息。

神经网络和LSTM等其他基于文本的神经网络模型也使用矢量来表示输入数据中的单词。这些向量嵌入将单词映射为常数值,但这是有限制的,因为可以在不同的上下文中使用单词。变压器网络通过使用正弦函数使单词向量根据句子中单词的位置采用不同的值,从而使单词值更灵活来解决此问题。

这使神经网络模型即使在矢量移动通过变压器网络的各个层后,也可以保留有关输入单词相对位置的信息。

将位置编码和词向量嵌入加在一起,然后传递到编码器和解码器网络中。变压器神经网络就像RNN和LSTM一样使用编码器/解码器模式,它们之间的主要区别是所有输入数据都同时馈入网络,而在RNN / LSTM中,数据是按顺序传递的。

编码器网络负责将输入转换为网络可以学习的表示形式,而解码器网络则相反,并将编码转换为用于生成输出语句中最可能出现的单词的概率分布。至关重要的是,编码器和解码器网络都具有注意力机制。

由于GPU能够并行处理,因此可以并行使用多种注意机制,从而为所有输入单词计算相关信息。一次注意多个单词(称为“多头”注意)的能力可帮助神经网络学习句子中单词的上下文,这是变压器网络优于RNN和LSTM的主要优势之一。

注意机制

注意机制是变压器网络中最重要的部分。注意机制是使变压器模型超出典型RNN或LSTM模型的注意范围的原因。当初始化解码器网络以生成有关输入序列的预测时,传统的序列到序列模型会丢弃所有中间状态,而仅使用最终状态/上下文向量。

当输入序列相当小时,丢弃除最终上下文向量以外的所有内容都可以。但是,随着输入序列长度的增加,使用此方法时模型的性能将降低。这是因为将长输入序列概括为单个向量变得非常困难。解决方案是增加模型的“注意力”,并利用中间编码器状态为解码器构造上下文向量。

注意机制定义为任何给定令牌创建编码时其他输入令牌对模型的重要性。例如,“ it”是一个通用代词,通常用于在不知道其性别的情况下指代动物。注意机制将使变换器模型确定在当前上下文中“它”是指松鼠,因为它可以检查输入句子中的所有相关单词。

注意机制可以三种不同的方式使用:编码器到解码器,仅编码器,仅解码器。

编码器-解码器的注意使解码器在生成输出时考虑输入序列,而仅编码器和仅解码器的注意机制使网络分别考虑先前序列和当前序列的所有部分。

注意机制的构建可以分为五个步骤:

  1. 计算所有编码器状态的分数。
  2. 计算注意力权重
  3. 计算上下文向量
  4. 使用先前的时间步输出更新上下文向量
  5. 使用解码器生成输出

第一步是让解码器为所有编码器状态计算分数。这是通过训练解码器网络完成的,解码器网络是基本的前馈神经网络。当解码器针对输入序列中的第一个单词进行训练时,尚未创建内部/隐藏状态,因此通常将编码器的最后一个状态用作解码器的先前状态。

为了计算注意力权重,softmax函数用于生成注意力权重的概率分布。

一旦计算了注意力权重,就需要计算上下文向量。这是通过将每个时间步长的注意力权重和隐藏状态相乘来完成的。

计算完上下文向量后,将其与上一个时间步中生成的单词一起使用,以生成输出序列中的下一个单词。因为解码器在第一步中没有引用的先前输出,所以通常使用特殊的“开始”令牌代替。

变压器之间的差异& 神经网络s/LSTMs

让我们快速介绍一下RNN和LSTM之间的一些区别。

神经网络按顺序处理输入,而隐藏状态向量在输入字词通过网络时得以维护和更改。 神经网络的隐藏状态通常只包含很少的有关早期输入的相关信息。新输入通常会覆盖当前状态,这会导致信息丢失并随着时间的推移降低性能。

相反,变压器模型可一次处理整个输入序列。注意机制允许每个输入和隐藏状态通知每个输出单词,从而使网络对于较长的文本更加可靠。

LSTM是RNN的修改版本,已调整为处理更长的输入序列。 LSTM体系结构使用称为“门”的结构,具有“输入门”,“输出门”和“忘记门”。门控设计处理RNN模型常见的信息丢失。数据仍按顺序进行处理,该架构的循环设计使LSTM模型难以使用并行计算进行训练,从而使训练时间整体上更长。

LSTM工程师经常向网络添加注意力机制,这可以提高模型的性能。但是,最终发现仅靠注意力机制就能提高准确性。这一发现导致创建了变压器网络,该变压器网络使用了GPU的注意力机制和并行计算。

专门从事以下工作的Blogger和程序员 机器学习 深度学习 话题。 Daniel希望帮助他人将AI的力量用于社会公益。