是的,Batch Normalization (BN) 确实有助于减轻过拟合,但这不是它的主要设计目标,而是一个有益的”副作用”。以下是详细分析:

BN 如何帮助减轻过拟合?

1. 噪声注入的隐式正则化

  • 训练阶段:BN 使用每个小批量(mini-batch)的均值和方差进行归一化: x^=x−μbatchσbatchx^=σbatch​x−μbatch​​
  • 噪声来源:每个批次的 μbatchμbatch​ 和 σbatchσbatch​ 都是随机采样的结果(受批次样本分布影响)。
  • 正则化效果
    • 相当于为每层输入添加了依赖数据的随机噪声
    • 类似 Dropout 的作用,迫使模型学习更鲁棒的特征
    • _实验证明_:移除 BN 后模型过拟合明显加剧(尤其在数据少时)

2. 改善梯度传播

  • 解决内部协变量偏移:BN 稳定了中间层的输入分布
  • 间接正则化
    • 允许使用更高学习率(加速收敛,减少陷入局部极小点的风险)
    • 缓解梯度消失/爆炸,使深层网络更容易训练
    • 模型更易收敛到平坦极小点(泛化性更好)