跳转至

归一化(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)