归一化

Normalization

Normalization 用于稳定深度神经网络的训练,防止梯度爆炸或消失。

1. Batch Norm vs Layer Norm

  • Batch Norm (BN): 沿着 Batch 维度归一化。依赖 Batch Size,且很难用于像 NLP 这样的变长序列。
  • Layer Norm (LN): 沿着 Feature 维度归一化(即对每个 Token 进行独立的归一化)。NLP 领域的标准选择

2. LayerNorm

在原始 Transformer 中使用。它通过减去均值并除以标准差,将输入变为均值为 0、方差为 1 的分布,然后通过可学习的参数 $\gamma, \beta$ 进行缩放和平移。

细节见[[AI/基础/归一化#LayerNorm|LayerNorm]]

3. RMSNorm

现代 LLM(如 LLaMA, Gopher)更倾向于使用 RMSNorm。研究表明,LN 的均值中心化(Mean Centering)对性能贡献不大,去掉它可以节省计算量。

细节见[[AI/基础/归一化#RMSNorm|RMSNorm]]

4. Pre-Norm vs Post-Norm

  • Post-Norm: $x_{l+1} = \text{Norm}(x_l + F(x_l))$。原始 Transformer 使用。梯度容易在深层消失,难训练,需要 Warmup。
  • Pre-Norm: $x_{l+1} = x_l + F(\text{Norm}(x_l))$。GPT-2 及以后的主流模型使用。梯度直接流过残差路径,训练更稳定,可以训练更深的网络。