归一化(Normalization)¶
归一化层把激活拉到更稳定的尺度,常能加快收敛、允许更大学习率。与正则化不同:主要改善优化动态。
Batch Normalization¶
对一个 mini-batch 按通道标准化,再乘 \(\gamma\) 加 \(\beta\):
\[
\hat{x} = \frac{x - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}}, \qquad
y = \gamma \hat{x} + \beta
\]
- CNN 里很常用;batch 太小时统计不稳。
- 训练/推理行为不同:推理用运行均值,务必
model.eval()。
Layer Normalization¶
对单个样本的特征维标准化,不依赖 batch 大小;Transformer 标配。
其它变体¶
| 名称 | 典型场景 |
|---|---|
| Instance Norm | 风格迁移 |
| Group Norm | 小 batch 检测/分割 |
| RMSNorm | 部分现代 LLM |
Pre-Norm vs Post-Norm¶
Post-Norm: x → Sublayer → Add → Norm
Pre-Norm: x → Norm → Sublayer → Add
Pre-Norm 通常更好训深模型。
nn.BatchNorm2d(64)
nn.LayerNorm(512)
nn.GroupNorm(num_groups=32, num_channels=64)