玩酷网

databites.tech绘制的机器学习(ML)中Transformer模型的

databites.tech绘制的机器学习(ML)中Transformer模型的编码器部分(The Encoder)的工作原理。

编码器(Encoder)是Transformer架构中的一部分,负责处理输入的token(即输入数据的一部分,如单词或字符)。编码器通过自注意力机制(Self-Attention)和前馈神经网络(Feed-Forward Layers)生成上下文感知的表示。这些表示随后可以用于各种任务,比如机器翻译、文本生成等。

🌟STEP 1 - 输入嵌入和位置编码

1.1 输入嵌入(Input Embedding)

作用:将每个输入单词转化为一个固定长度的向量。在图中,单词被转化为大小为512的向量。

嵌入过程:这个过程只发生在最底层的编码器中,即输入序列的第一个编码器。输入数据(通常是文本)首先通过嵌入层被转化为向量,形成“嵌入输入”。

1.2 位置编码(Positional Encoding)

问题:Transformer缺乏像循环神经网络(RNN)那样的顺序信息,因此需要一种方式来表示输入的顺序。

解决方案:通过加入位置编码,向量中每个位置上的值根据单词在序列中的位置进行调整。位置编码使用正弦和余弦函数来生成,以确保编码能捕获序列中的位置信息。

🌟STEP 2 - 编码器层堆叠(Stack of Encoders Layers)

结构:编码器由N个相同的层堆叠而成,每一层都有相同的结构,包括多头自注意力机制(Multi-Head Self-Attention)和前馈神经网络(Feed-Forward Neural Network)。

输入和输出:嵌入输入和位置编码的组合被传递给第一个编码器,然后输出被传递给下一个编码器层,依次类推。

2.1 多头自注意力机制(Multi-Headed Self-Attention Mechanism)

作用:计算序列中每个单词与其他单词之间的相关性。自注意力机制可以让模型关注序列中其他相关单词,为每个输入单词生成一个上下文感知的表示。

过程:使用查询(Query)、键(Key)和值(Value)三个向量来计算注意力得分,以确定哪些单词应该被重点关注。

2.2 矩阵乘法(Matrix Multiplication)

作用:对查询(Q)和键(K)进行矩阵乘法以计算注意力得分。每个单词都会获得与序列中其他单词的关联得分。

2.3 注意力得分缩放(Scaling the Attention Scores)

问题:未经缩放的得分值可能过大,导致Softmax的梯度变得很小,阻碍模型的训练。

解决方案:将得分除以键向量维度的平方根(通常是向量维度的平方根)来缩放得分。

2.4 应用Softmax(Applying Softmax)

作用:使用Softmax函数将得分转化为概率分布。较高的得分被放大,较低的得分被压缩,得到的概率表示每个单词在序列中的重要性。

2.5 结合Softmax结果(Combining Softmax Results)

作用:用Softmax得出的注意力权重乘以值向量(V),以生成输出向量。这个过程为每个单词生成上下文感知的表示。

2.6 归一化和残差连接(Normalization and Residuals)

作用:每个子层都有一个归一化层(Layer Normalization),其输出与输入相加以形成残差连接。这有助于缓解梯度消失问题。

2.7 前馈神经网络(Feed-Forward Neural Network)

作用:在自注意力层之后,每个编码器层还包含一个前馈神经网络。每个输入向量通过两个线性变换和一个ReLU激活函数,进行进一步的特征提取。

🌟STEP 3 - 输出(Output)

作用:编码器的输出是一组向量,每个向量捕获了输入序列的丰富上下文信息。

传递给解码器:编码器的输出随后被传递给解码器,用于生成最终的预测或输出。

总结

编码器的主要作用:通过自注意力机制和前馈神经网络,将输入序列转换为一组上下文感知的表示。

编码器结构:多个编码器层堆叠,每层包含多头自注意力机制、前馈神经网络、归一化和残差连接。

自注意力机制:关键步骤包括矩阵乘法、缩放得分、应用Softmax和加权求和,生成序列中每个单词的上下文感知表示。