我只是想知道一般的优点是什么,我注意到它会降低渐变,但我不确定它是否真的能带来好的结果。我很感激你的帮助
我正在使用matlab
答案 0 :(得分:0)
这里解释得很好:
如果输入变量是线性组合的,就像在MLP中一样,那么至少在理论上很少有必要对输入进行标准化。原因是通过改变相应的权重和偏差可以有效地撤消输入向量的任何重新缩放,从而使您具有与之前完全相同的输出。但是,有很多实际的原因可以解释为什么标准化输入可以使训练更快,并减少陷入局部最优的可能性。此外,使用标准化输入可以更方便地完成重量衰减和贝叶斯估计。
请参考帖子,它可能对您有帮助。
Why do we have to normalize the input for an artificial neural network?
答案 1 :(得分:0)
在梯度下降过程中,特征缩放使所有特征均等,使得优化更快。
如果你想象一个机器学习问题有两个变量,一个是10
,另一个是1,000,000
,那么梯度下降会认为几乎所有的误差都在第二个特征中,即使两个特征的相对误差都相似。
你可以把上面这种情况的错误表面想象成一个长而瘦的山沟,如果我们对两个正交方向同等重要,就很难找到这样一个山沟的确切底部。
特征缩放迫使峡谷成为一个漂亮的圆形碗#34;由于优化算法不会被任何巨大的压倒性特征分散,因此更容易收敛到确切的底部。
另请注意,要素缩放不会更改要素空间中最佳点的相对位置。以线性回归为例 - 如果某个要素按常量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
。