繁体   English   中英

线性回归中的归一化(梯度下降)

[英]Normaliztion in linear regression (gradient descent)

我正在为多变量数据集的线性回归编写一个简单的(梯度下降)代码,我的问题是,当我测试代码时,我注意到在 500 万次迭代后成本仍在下降,这意味着我的学习率很小,我试图增加它,但我的成本值溢出,然后当我对数据进行归一化时,问题已经解决,我可以提高学习率而不会出现任何错误,我想知道归一化和成本溢出之间的关系是什么.

没有归一化的梯度下降(小学习率)

没有归一化的数据(更大的学习率)

以大学习率归一化的数据

归一化前的数据 归一化后的数据

基本上,输入的归一化可以使 function 的表面变得更球形。 如果没有这种归一化,变量尺度的差异可能会导致表面更椭圆。

现在你可能会问:为什么球形与椭圆体很重要?
由于梯度下降是一阶导数方法,因此在采取步骤之前选择方向时不考虑表面的曲率。 然后,具有椭圆表面(更不规则的曲率)可能会导致收敛问题(这会带来溢出),特别是如果您设置大的学习率(算法在每次迭代中采取更大的步骤)。 我认为通过查看2d plot 示例更容易理解。 使用球形表面,梯度点处于最小值,这使得学习更容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM