为什么要进行特征缩放
比如说我们这里有一个函数:
接下来我们分两种情况来对比一下,从而说明我们为什么要进行特征缩放:
左上角的框图和右上角的框图都能表示我们在最开始提出的函数,不同的是左上角的框图中
的取值是1,2····;
的取值是100,200······;右上角的框图中
的取值是1,2······;
的取值是1,2······。将左上角所示的式子的等高图画出来如左下角所示,因为在左上角的情况下随着
的改变,
的变化比较小,而随着
的变化
的变化会比较大,因此形成了左下角所示的椭圆形状。将右上角所示的式子的等高图画出来如右下角所示,因为在右上角的情况下随着
和
的改变,
的变化基本相同,因此形成了右下角所示的圆形。
我们知道梯度下降的方向是沿着等高线的法线方向的如图中红色箭头所示,可以看到右下角的红色箭头几乎是沿一条直线朝着最低点运动过去的,而左下角的红色箭头是改变了多次方向才朝着最低点运动过去的。
所以当特征值有相似的范围的话梯度下降会比较快。
怎么进行特征缩放
也就是说要对红色框里面的
进行特征缩放的话,就要先求出绿框里面元素的平均值
,再求出绿框里面元素的标准差
,最后代入
就可以求出缩放后的特征值了。