为什么在馈入网络之前需要将输入归一化为零均值和单位方差?

时间:2019-01-30 02:22:08

标签: machine-learning neural-network deep-learning

在深度学习中,我看到许多论文将预处理步骤用作归一化步骤。在输入到卷积网络(具有BatchNorm)之前,它将输入归一化为零均值和单位方差。为什么不使用原始强度?标准化步骤的好处是什么?如果我在图像之间使用直方图匹配,是否还应该使用归一化步骤?谢谢

2 个答案:

答案 0 :(得分:2)

规范化对于使功能达到相同规模以使网络表现得更好非常重要。假设有两个特征,其中一个以1到10的比例进行度量,第二个以1到10,000的比例进行度量。根据{{​​3}},网络将根据第二个功能上的较大误差忙于优化权重。

因此最好进行归一化。

答案 1 :(得分:0)

有关此问题的答案,请参见吴国栋的教程:https://youtu.be/UIp2CMI0748?t=133

TLDR :如果不对输入要素进行标准化,则某些要素的比例可能会非常不同,并且会降低Gradient Descent的梯度。

详细解释:让我们考虑一个使用两个特征Feature1和Feature2且具有以下范围的模型:

功能1:[10,10000] Feature2:[0.00001,0.001]

这些的轮廓图将看起来像这样(按比例缩放以便于查看)。 Contour plot of Feature1 and Feature2

执行梯度下降时,将计算d(Feature1)和d(Feature2),其中“ d”表示微分,以使模型权重更接近以最小化损失。从上面的等高线图中可以明显看出,与d(Feature2)相比,d(Feature1)要小得多,因此,即使您选择适当的中等学习率值,由于相对较大,您也将作曲折值d(Feature2)甚至可能错过全局最小值。 Medium value of learning rate

为了避免这种情况,如果您选择很小的学习率值,则“梯度下降”将花费很长时间收敛,并且甚至可能在达到全局最小值之前就停止训练。 Very small Gradient Descent

因此,从上述示例中可以看出,不按比例缩放要素会导致效率低下的Gradient Descent(梯度下降),从而导致无法找到最佳模型