1、归一化
1.1为什么要归一化
在做梯度下降的时候,我们用的数据集并不像前面给的数据集那么规范,很多时候不同特征的值之间相差还是很大的,举个简单的例子以收入和开销为特征,分析对幸福指数的影响。
收入 | 开销 |
---|---|
6000 | 1000 |
7200 | 1300 |
5000 | 1500 |
y = w0 + w1X1(收入) + w2X2(开销)
这里一眼就可以看出收入是不是特别大啊,那么相对应的它对幸福指数的影响是不是远超开销,但如果我们用这样的数据来做预测会产生什么问题呢?
X1 >> X2 ,那么在y不变的情况下W1 << W2.
又由梯度g = (y_hat - y)* X得:
g1 >> g2
又w的调整幅度差为-alpha*g
则g越小,调整的幅度就越小。
那么矛盾就产生了,如果此时不做归一化,去使用梯度下降求解最优解的话,
产生的效果,即会是同样的迭代次数下,W1已经调整好了,W2还在慢慢的往前挪,
整体看起来,就比先做归一化,再做梯度下降,需要的迭代次数要多了!!!。
所以此时求需要对数据进行归一化处理,使得W1和W2处于同样的伸缩程度。
图解1