我最近在Keras中尝试使用批量归一化。我在想,批量归一化是否也对神经网络的输入进行了归一化。这是否意味着我无需对网络的输入进行标准化,而是依赖BN来完成这项工作?
回答:
虽然你确实可以用它来做这件事,但批量归一化并不是为此设计的,你很可能会因为样本量有限(样本量即你的批量大小)而在归一化过程中引入抽样误差。
我不建议使用批量归一化来归一化你的输入的另一个原因是,它引入了校正项gamma和beta(训练参数),如果不禁用它们,将会扭曲你的训练数据。
对于测试数据的归一化,我建议在完整的训练集上使用z-score归一化(例如,通过sklearn的StandardScaler)或其他适当的替代方法,但不推荐使用批量归一化。