对神经网络的输入进行标准化有什么好处?
我已经注意到它会减小渐变,但是我不确定它是否真的可以带来良好的效果。
在this answer中解释
如果输入变量像MLP中那样线性组合,那么至少从理论上讲,几乎没有必要对输入进行标准化。原因是可以通过更改相应的权重和偏差来有效地撤消输入矢量的任何重新缩放,从而获得与以前完全相同的输出。但是,出于多种实际原因,标准化输入可以使训练更快并减少陷入局部最优的机会。同样,使用标准输入可以更方便地完成权重衰减和贝叶斯估计。
特征缩放使所有特征在梯度下降过程中均等地起作用,从而使优化更快。
[如果您想象一个机器学习问题,其中有两个变量,一个在10
级别上,另一个在1,000,000
级别上,则梯度下降将认为几乎所有误差都在第二个特征上,即使相对两个功能的错误相似。
您可以想象上述情况的误差面是一个细长的沟壑,如果我们将两个正交方向同等重视,则很难找到这种沟壑的确切底部。
特征缩放迫使山沟变成一个漂亮的圆形“碗”,并且由于最优化算法不会因任何巨大的压倒性特征而分散注意力,因此收敛到确切的底部要容易得多。
还要记住,要素缩放不会改变最佳点在要素空间中的相对位置。以线性回归为例-如果要素按常数c
缩放,则要素的权重将经历相反的变换,最终给您相同的答案。
w = inv(X'*X)*X'*y
现在尝试用重新缩放的版本
X
替换特征QC
,其中C
是对角列缩放矩阵。
w = inv(C'*Q'*Q*C)*C'*Q'*y w = inv(C)*inv(Q'*Q)*inv(C')*C'*Q'*y Cw = inv(Q'*Q)*Q'*y
因此,使用新的缩放比例特征
Q=X*inv(C)
将为我们提供具有相同解决方案u=Cw
的新权重y
。