Transformer模型中的残差连接与层归一化原理
字数 1596 2025-11-05 23:47:54
Transformer模型中的残差连接与层归一化原理
题目描述
在Transformer模型中,残差连接(Residual Connection)和层归一化(Layer Normalization)是两个关键组件。它们通常一起出现在每个子层(如自注意力层和前馈神经网络层)中。请解释残差连接和层归一化的作用、原理,并说明它们如何协同工作以提升模型的训练稳定性和性能。
知识点详解
- 残差连接(Residual Connection)的原理
- 问题背景:深层神经网络在训练过程中容易出现梯度消失或梯度爆炸问题,导致模型难以优化。Transformer模型通常很深(例如Base模型有12层,Large模型有24层),因此需要一种机制来缓解深层网络的训练困难。
- 核心思想:残差连接通过引入“快捷路径”(Shortcut Connection),将输入直接添加到层的输出中。数学形式为:
\[ \text{Output} = \text{Layer}(\text{Input}) + \text{Input} \]
其中,$\text{Layer}$可以是自注意力层或前馈神经网络层。
- 作用:
- 梯度可以直接通过快捷路径反向传播,缓解梯度消失问题。
- 即使层的权重较小,输入也能有效传递到深层,确保模型不会因层数增加而性能退化。
- 层归一化(Layer Normalization)的原理
- 问题背景:神经网络中,输入数据的分布会随着层数的增加而发生变化(内部协变量偏移),导致训练不稳定。层归一化通过对同一样本的所有特征进行归一化,稳定训练过程。
- 计算步骤:
- 假设输入向量为 \(x = (x_1, x_2, ..., x_d)\),其中 \(d\) 是特征维度。
- 计算均值和方差:
\[ \mu = \frac{1}{d} \sum_{i=1}^d x_i, \quad \sigma^2 = \frac{1}{d} \sum_{i=1}^d (x_i - \mu)^2 \]
- 归一化:
\[ \hat{x}_i = \frac{x_i - \mu}{\sqrt{\sigma^2 + \epsilon}} \]
其中 $\epsilon$ 是为数值稳定性添加的小常数(如 $10^{-5}$)。
- 缩放和平移:
\[ y_i = \gamma \hat{x}_i + \beta \]
其中 $\gamma$ 和 $\beta$ 是可学习的参数,用于保留模型的表达能力。
- 作用:
- 减少内部协变量偏移,加速收敛。
- 对特征维度归一化,适用于不同样本长度(如变长序列)。
- 残差连接与层归一化的协同工作
- 在Transformer中的顺序:
Transformer的子层通常采用“Pre-LN”或“Post-LN”结构。原始论文使用Post-LN(层归一化在残差连接之后),但后续研究更推荐Pre-LN(层归一化在残差连接之前)。以Pre-LN为例:
- 在Transformer中的顺序:
\[ \text{Output} = \text{Input} + \text{Layer}(\text{LayerNorm}(\text{Input})) \]
- 协同优势:
- Pre-LN:先对输入归一化,再进入层计算,使输入分布稳定,梯度更平滑,训练更稳定(现代Transformer的常见选择)。
- Post-LN:先进行残差连接,再归一化,可能需更仔细的参数初始化,但某些场景下性能更强。
- 实际效果:
- 残差连接确保梯度直接传播,层归一化稳定激活值分布,两者结合使深层模型易于训练。
总结
残差连接和层归一化是Transformer模型的核心设计。残差连接解决梯度消失问题,层归一化稳定数据分布,两者协同提升了深层模型的训练效率和性能。理解它们的原理和交互,有助于优化模型结构或调试训练过程。