版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_31617409/article/details/82726904
机会永远留给有准备的人,不积跬步,无以至千里,厚积而薄发,与大家共勉!加油!
博主最近在学习吴恩达的机器学习课程,将一些日常学习本人认为重要的地方在此记录,与大家分享,如有错误,请大家不吝赐教! github:https://github.com/ScathonLin
在梯度下降算法运用中,如果能保证不同特征的取值在相同或者相近的范围内,比如都处于0-1之间,那么梯度下降算法将会能很很快的收敛。
例如,一个含有两个特征的训练样本集,其中
number of bedrooms(1-5)
此时,X1 是远远大于X2的,所以此时对应的轮廓图将很瘦很高,如下图所示:
这样造成的结果很可能就是,梯度在下降过程中走了很多的“弯路”,来回震荡,收敛速度很慢,解决办法就是:特征缩放。
- 特征缩放方法
对于上述例子,我们可以将特征值进行如下转换,即可将两个特征值范围尽可能靠近,甚至相同:
这样, 并且 ,这样的话,最终的轮廓图像就很“圆”,
这样,梯度下降算法就会很快的收敛。
- 一般解决方案:均值归一化
假设一个训练集有m个样本,n个属性, 其中 代表第i个样本的第j个属性的值,代表所有样本第j个属性的值的平均值,代表所有样本第j个属性的最大值。下图是教程视频中的解释。
注意,不要用因为。
也可以将上面的用这个式子来替换,其实就是将分母变成了max-min,