特征缩放作用:使梯度下降更快
示例
x1集中在300-2000平方英尺,x2集中在0-5间。对于这个例子来说,x1的取值范围大,x2的取值范围较小。
问题:当房子取x1=2000,x2=5,price(实际值的售价)=500k时,w1和w2该取什么样的值?
- 假设w1=50,w2=0.1,b=50,预测值的售价 =1亿!远大于我们的实际值,所以对于w1和w2不是好的数据。
- 假设w1和w2的值相反,此时预测值和实际值相等,所以这是一对合理的值。
与分级下降的关系
- 根据x1-x2的函数图可得,水平轴(x1)的范围更大
- 根据等高线图可得,水平轴(w1)的范围要窄的多
结论:w1的一个非常小的变化都会对估计的价格产生很大的影响,对成本J的印象很大
w2需要更大的变化才能影响预测值
用这个数据训练的后果:来回跳好长时间才能找到通往最低点的道路(如下图)
所以为了避免上面的情况,我们就需要缩放特征。对我们的训练数据进行一些转换,使x1的范围可能从0-1,x2的范围也可能从0-1(如图)。
对比
如何实现特征缩放
1.除以最大值
x1的范围是300到2000,分别除以最大值,它的范围又为0.15到1。
x2同理。
2.均值归一化(Mean normalization)
从原始特征开始,然后重新缩放它们,使两者其中以0为中心。之前它们只有大于0的值,现在它们既有负值又有正值,通常是负一到正一之间。
要计算x1的均值归一化,首先要算x1的均值,我们称其为均值Mu1,得到均值后进行如下计算:
使得x1的范围变为-0.18到0.82。
x2同上。结果如下:
3.Z-score标准化(Z-score normalization)
为实现该标准化,我们需要计算每个特征的标准差(正态分布/高斯分布)。我们也要计算它们的平均数,正态分布曲线中间就是它们的平均数。计算过程及结果如下:
特征缩放的范围
- -1到1可能有点松散(?)
- -3到3以及-0.3到3可以接受
- 0到3以及-2到0.5也还可以,如果愿意也可以重新缩放它
- -100到100太大了,需要重新缩放
- -0.001到0.001太小了,需要重新缩放
- 98.6到105与其他特征值相比太大了,导致梯度下降运行速度慢 ,需要重新缩放