一、纲要
多变量线性回归
特征缩放与均值归一化
学习速率α对梯度下降法的影响
正规方程
二、内容详述
1、多变量线性回归
上一篇我们看到了单变量的线性回归,只有一个变量x,,这里如果有多个变量的话,该方程就变为,我们可以假设X0=1,所以上式变为。那么多变量的代价函数为,我们可以得出多变量的梯度下降法的表示式,同样地,我们对这个表达式的每个变量进行偏导数,结果表示为,然后就是我们之前说过的同时更新theta0,theta1,...,thetan,直到我们得到最优解。
2、特征缩放与均值归一化
特征缩放的目的是为了让这些特征的值相近,可以使梯度下降法更快的收敛。这个怎么理解呢?看图
我们可以先考虑有两个特征变量的代价函数,当两个参数theta1和theta2相差较大时,绘出的曲线如作图。我们设定一个起点,从这个点去到最低处(最优解),由于“瘦长”的椭圆,我们可能会走很多的弯路,如图中红线所画出的那样,也就是需要迭代很多次才能达到理想的效果。所以我们另两个变量theta1和theta2尽量接近,那么画出来的曲线就比较接近圆,这样的话梯度下降法选择的路径就会很快接近最低处,迭代的次数也就会少很多了,这就是特征缩放要解决的问题。
那么特征缩放我们应该怎么做呢?用Xi/Si,Xi为特征的值,Si为这组特征值的范围,例如X=500,而X的取值范围是(0,2000),所以Xi/Si = 500/2000。比较理想的情况是将缩放后的特征的值控制在-1<=Xi<=1,当然这里的-1和1也不是绝对的,-3<=Xi<=3也是可以的,只要特征的值接近即可,就可以实现特征缩放的效果
均值归一化就是在特征缩放的基础上减去这组特征的均值,即(Xi-Ui)/Si,这也就是为什么缩放后或者特征会有负值的原因。
3、学习速率α对梯度下降法的影响
我们如何判断梯度下降法是否正常工作了呢?这时我们可以绘制代价函数J与迭代次数No. of iterations的曲线。就像这样
当我们看到代价函数J随着迭代次数确实在下降的时候,证明我们的梯度下降法的程序是正确的。从曲线中我们也可以看出迭代次数为多少的时候代价函数收敛。还有一种判断是否收敛的方法,就是当J的下降幅度小于某个很小的阀值常数a的时候,就可以认为J已经收敛了,但是由于a很难选择,所以一般不用这种方法。
如果J-No. of iters曲线出现下图的情况时,我们考虑的原因就是可能学习速率α的值过大,适当减少α再进行调试
4、正规方程
我们将M组的N个特征向量用矩阵X表示出来,那么我们可以利用正规方程来求解代价函数J的最优解。
梯度下降法与正规方程的优缺点比较:
注:当特征向量的数量n<10000时,可以考虑用正规方程,性能比较客观,当n>10000时,梯度下降法会更快!