如果你在使用批量归一化时,是否需要标准化输入?

我最近在Keras中尝试使用批量归一化。我在想,批量归一化是否也对神经网络的输入进行了归一化。这是否意味着我无需对网络的输入进行标准化,而是依赖BN来完成这项工作?


回答:

虽然你确实可以用它来做这件事,但批量归一化并不是为此设计的,你很可能会因为样本量有限(样本量即你的批量大小)而在归一化过程中引入抽样误差。

我不建议使用批量归一化来归一化你的输入的另一个原因是,它引入了校正项gamma和beta(训练参数),如果不禁用它们,将会扭曲你的训练数据。

对于测试数据的归一化,我建议在完整的训练集上使用z-score归一化(例如,通过sklearn的StandardScaler)或其他适当的替代方法,但不推荐使用批量归一化。

Related Posts

关于k折交叉验证的直观问题

我在使用交叉验证检查预测能力时遇到了一些直观问题,我认…

调整numpy数组大小以使用sklearn的train_test_split函数?

我正在尝试使用sklearn中的test_train_…

如何转换二维张量和索引张量以便用于torch.nn.utils.rnn.pack_sequence

我有一组序列,格式如下: sequences = to…

模型预测值的含义是什么?

我在网上找到一个数字识别器的CNN模型并进行了训练,当…

锯齿张量作为LSTM的输入

了解锯齿张量以及如何在TensorFlow中使用它们。…

如何告诉SciKit的LinearRegression模型预测值不能小于零?

我有以下代码,尝试根据非价格基础特征来估值股票。 pr…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注