为什么批量归一化在训练期间使用小批量统计而不是移动平均值?

机器算法验证 机器学习 神经网络 深度学习 批量标准化
2022-03-31 02:34:37

批量归一化的传统方法是估计批次的均值和方差,并使用它来归一化不同层的数据,同时保留稍后应在测试/预测时使用的移动平均值。我的问题是,在训练时也使用移动平均线不是更好吗?

当然,一开始情况会更糟,但如果你使用,例如,具有小初始衰减的指数移动平均线(你可以稍后增加它),移动平均线在几个小批量后就可以了。然后,如果你碰巧得到一个 mini-batch,它比平时的平均值更远,你会不会宁愿使用与测试时相同的平均值进行训练?

极端情况显然是每批一个示例的在线学习设置;基本上每个示例在训练时都会变为零,但在测试时不会。

1个回答

Sergej Ioffe 有一篇后续论文(即 Batch Renormalization)讨论了这个问题:

https://arxiv.org/abs/1702.03275

该论文中关于常规批量标准化的引用:

很自然地要问我们是否可以简单地使用移动平均线μ,σ在训练期间执行归一化,因为这将消除归一化激活对小批量中另一个示例的依赖。然而,这被观察到导致模型爆炸。正如 [6,原始批量规范论文] 中所述,移动平均线的这种使用会导致梯度优化和归一化相互抵消。

在那篇论文中,通过从批量统计到移动平均统计引入额外的仿射变换来解决这个问题,其系数被优化视为常数。通过此更改,移动平均值可以在训练和测试期间使用。