use*_*788 8 machine-learning normalization neural-network deep-learning batch-normalization
对于测试期间的批量归一化,如何计算每个激活输入(在每一层和输入维度)的均值和方差?是记录训练的均值和方差,计算整个训练集的均值和方差,还是计算整个测试集的均值和方差?
很多人说你要预先计算均值和方差,但是如果你使用计算整个测试集均值和方差的方法,是不是在进行前向传播的时候就需要计算整个测试集的均值和方差(不是“预”)?
非常感谢您的帮助!
And*_*nko 11
当您在测试中进行预测时,您总是使用训练的统计数据 - 无论是简单的转换还是批量归一化。
我建议尝试 cs231n 课程以了解更多信息。以下是我在执行此代码时对批处理规范化进行编码的方式:github link。
如果测试统计数据与火车显着不同,这意味着测试总体上是不同的,模型将无法正常工作。在这种情况下,您无论如何都需要找到不同的训练数据。但更准确地说 - 当您对以某种方式处理的数据训练模型时,它不适用于以不同方式处理的数据。
让我们假设只有 1 个测试样本 - 即您想对一个客户或其他任何人进行预测。在这种情况下,您根本无法计算测试统计数据。其次,让我们进行批量归一化。数据被归一化,值现在通过原始数据与某个平均值不同的标准差来显示。因此模型将使用此信息进行训练)。如果您使用测试统计对测试数据进行标准化,则值将显示与不同平均值的偏差。
| 归档时间: |
|
| 查看次数: |
12143 次 |
| 最近记录: |