在梯度下降算法运用中,如果能保证不同特征的取值在相同或者相近的范围内,比如都处于0-1之间,那么梯度下降算法将会能很很快的收敛。
例如,一个含有两个特征的训练样本集,其中
X2=number of bedrooms(1-5)
此时,X1 是远远大于X2的,所以此时对应的轮廓图将很瘦很高,如下图所示:
这样造成的结果很可能就是,梯度在下降过程中走了很多的“弯路”,来回震荡,收敛速度很慢,解决办法就是:特征缩放。
特征缩放方法
对于上述例子,我们可以将特征值进行如下转换,即可将两个特征值范围尽可能靠近,甚至相同:
这样, 并且 ,这样的话,最终的轮廓图像就很“圆”,
这样,梯度下降算法就会很快的收敛。
一般解决方案:均值归一化
假设一个训练集有m个样本,n个属性, 其中
代表第i个样本的第j个属性的值,
代表所有样本第j个属性的值的平均值,
代表所有样本第j个属性的最大值。下图是教程视频中的解释。
注意,不要用x0因为x0=1。
也可以将上面的用这个式子来替换,其实就是将分母变成了max-min,
————————————————