批归一化如何以及为什么使用移动平均值来跟踪模型训练的准确性?


21

我正在阅读批处理规范化(BN)论文(1),但不了解需要使用移动平均值来跟踪模型的准确性,即使我接受这样做是对的,我也不明白他们到底在做什么。

据我所知(我是错的),该论文提到一旦模型完成训练,它将使用人口统计数据而不是小批量统计数据。在讨论了无偏估计(对我来说是切线的,并且不理解为什么如此讨论)之后,他们说:

取而代之的是使用移动平均值,我们在模型训练时跟踪模型的准确性。

那是令我困惑的部分。他们为什么要进行移动平均以估计模型的准确性以及在哪些数据集上?

通常人们会做些什么来估计其模型的泛化,他们只是跟踪模型的验证误差(并可能尽早停止其梯度下降以进行正则化)。但是,批处理规范化似乎在做完全不同的事情。有人可以澄清什么以及为什么做不同的事情吗?


1:Ioffe S.和Szegedy C.(2015年),
“批处理规范化:通过减少内部协变量偏移来加速深层网络训练”,
第32届国际机器学习会议论文集,法国里尔,2015年
。机器学习研究杂志: W&CP卷37


您对投票结果满意吗?如果你问我,那根本不是一个“答案”。如果仍然相关,我可以提供更好的答案。
OverLordGoldDragon

@OverLordGoldDragon提供您自己的答案:)
Pinocchio

Answers:


8

在使用batch_normalization时,我们首先要了解的是,在进行“ 训练”和“测试”时,它以两种不同的方式工作。

  1. 在训练中,我们需要计算最小批次均值以标准化批次

  2. 在推论中,我们仅应用预先计算的小批量统计数据

所以在第二件事中,如何计算这个迷你批处理静态数据

移动平均线来了

running_mean = momentum * running_mean + (1 - momentum) * sample_mean
running_var = momentum * running_var + (1 - momentum) * sample_var

这根本不能回答问题。询问“为什么”和“如何”,并给出了肤浅的“什么”。它不应该被赞成。
OverLordGoldDragon

1

他们正在谈论批量归一化,他们已经针对训练过程进行了描述,但没有进行推理。

这是使用样本均值等对隐藏单位进行归一化的过程。

在本节中,他们解释了在您只是进行预测时(即在训练完成之后)在推理阶段要做什么。

但是,在停止的验证中,您需要对验证集的预测和训练进行交织,以估计验证错误。

因此,在此过程中,您没有总体平均值(在训练时平均值仍在变化),因此您可以使用移动平均值来计算批范数参数,以计算验证集上的性能。

从这个意义上讲

取而代之的是使用移动平均值,我们在模型训练时跟踪模型的准确性。

与使用运行方式作为神经网络性能指标的字面意义无关。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.