Transformer温习整理

Transformer温习整理

💡 原文中文,约10800字,阅读约需26分钟。
📝

内容提要

Transformer是一种基于自注意力机制的神经网络架构,用于自然语言处理任务。它使用自注意力机制来捕捉输入数据内部元素之间的相关性,具有较好的特征抽取能力。Transformer的训练过程包括前向传播、计算损失、反向传播和参数更新。

🔎

延伸解读

自注意力机制的核心:从相似度到加权提纯

文章详细解释了自注意力计算:通过Q和K的点乘得到注意力分数,除以√dk缩放后经softmax归一化,再与V相乘得到加权结果。点乘衡量token间相似度,缩放避免梯度消失,与V相乘则让每个词关注该关注的部分。这一过程使模型能捕捉长距离依赖,是Transformer优于RNN的关键。

Encoder与Decoder的结构差异与交互

Encoder由N个相同模块堆叠,每个模块包含多头注意力和前馈网络;Decoder则多出掩码多头注意力和编码器-解码器注意力层。掩码防止未来信息干扰,编码器-解码器注意力以Decoder输出为Query、Encoder输出为Key和Value,实现两端信息融合。这种设计使Transformer能同时处理输入和输出序列。

训练优化策略:学习率预热与Dropout

Transformer采用学习率预热策略,学习率在初始步骤线性增长后逐渐降低,公式为lrate = d_model^(-0.5) * min(step_num^(-0.5), step_num * warmup_steps^(-1.5))。Dropout应用于词嵌入、子层输出、位置编码后及注意力权重,概率通常0.1-0.3。推理时需禁用Dropout,如PyTorch中调用.eval(),以确保稳定输出。

位置编码与归一化层的选择

Transformer使用正弦和余弦函数的固定位置编码,可解释性强且能泛化到更长序列,但超长序列可能表现不佳。LayerNorm对每个样本独立归一化,适合序列数据,置于子层输出后和残差连接前;BatchNorm依赖批次大小,对RNN支持欠佳,因此Transformer选择LayerNorm以提升训练稳定性。

❓

Q&A

Transformer的基本结构是什么样的?

Transformer由Encoder和Decoder两个部分组成,每部分由多个相同的模块堆叠而成,包含多头注意力层和前馈神经网络层。

自注意力机制在Transformer中有什么作用?

自注意力机制用于捕捉输入数据内部元素之间的相关性,能够更好地处理长距离依赖特征。

Transformer相比于传统RNN有什么优势?

Transformer具有并行计算能力和更好的特征抽取能力,能够直接捕捉序列内任意两个元素之间的依赖关系。

Transformer中的位置编码是如何实现的?

位置编码使用正弦和余弦函数,将位置信息加入到输入嵌入中,以帮助模型理解词项之间的距离关系。

Transformer的训练过程中使用了哪些重要策略?

训练过程中使用了学习率预热和Dropout等策略,以提高模型的训练速度和防止过拟合。

多头注意力机制的主要作用是什么?

多头注意力机制允许模型同时学习不同子空间的信息,从而捕捉更丰富的特征。

🏷️

标签

➡️

继续阅读