批量归一化
一种将各层输入在 mini-batch 范围内归一化为零均值和单位方差的技术,用于稳定和加速深度网络训练。
批量归一化(Batch Normalization,简称 BN)是 2015 年由 Ioffe 和 Szegedy 提出的技术,通过将每层的输入归一化为零均值和单位方差来稳定训练过程。它解决了内部协变量偏移(Internal Covariate Shift)问题,即各层输入分布随训练不断变化导致的训练不稳定。
BN 的计算步骤:
- 计算统计量:在当前 mini-batch 内计算每个通道的均值 μ 和方差 σ²
- 归一化:将输入标准化为
(x - μ) / √(σ² + ε),其中 ε 防止除零 - 缩放和平移:通过可学习参数 γ 和 β 恢复网络的表达能力:
y = γx̂ + β - 推理阶段:使用训练期间累积的移动平均统计量,而非当前 batch 的统计量
BN 的优势包括:允许使用更大的学习率加速收敛、降低对权重初始化的敏感度、以及一定程度的正则化效果。但在小 batch 或序列模型中效果不佳,此时可选用 Layer Normalization 或 Group Normalization 作为替代。