【Stanford Machine Learning Open Course】3. 线性回归问题两种解法:正规方程组解法 & 梯度下降法

这里是斯坦福大学机器学习网络课程的学习笔记。课程地址是:https://class.coursera.org/ml-2012-002/lecture/index

 

如上一节:线性回归问题介绍 中所讲, 解决线性回归问题,其实就是找使成本函数最小值的点。

成本函数:J(a,b)=1/2m * sum[(a+bx)-y]2

多特征情况下成本函数为:J(a) = 1/2m *sum( (Xa-y).^2),

            其中X是m*n矩阵,a是n*1特征权重向量,y是n*1向量,m为样本个数,n为特征个数,X(i,j)为第i个样本中第j个特征的值。

 

1. 正规化方程组解法:

     要取得J(a)的最小值,只需要求出J(a)关于a的导数为0点即可。

     导数函数,记为J'(a) = 1/m*((Xa-y)T*X)T

     令J'(a)=0, 则a=(XT*X)-1*XT*y,此a就是要求的特征权重。 此方法即为正规方程组解法。

          当m或n值较大时,a=(XT*X)-1*XT*y的计算量很大,O(n3)计算量,此时正规方程组解法就会遇到瓶颈,需要引入其他解法。

 

2. 梯度下降法:并不是直接求出最小值点,而是通过一个初始点,一步一步寻找最小值点,寻找的方式是:以最快的下降方向上,以一定步长前进,递归到最小值点。

    其中:

           最快的下降方向为:该点导数为斜率的方向。 

           步长:固定值,可以用0.1, 0.01, 0.001尝试不同值,选取最合适的。

           初始位置:随机指定。

           何时终止:迭代了一定次数,或者成本函数值收敛或足够小。

 

3. 正规化方程组解法 P.K.  梯度下降法:

    正规化方程组简洁,但支持数据量小。

    梯度下降法,需要考虑初始值和步长的指定以及特征归一化,但可以支持大数据量。

 

问题1:固定步长,会不会在接近最小值点时步长过大?

   答: 不会。因为实际起作用的步长是 步长*斜率值,而越接近最小值点时斜率约接近0,步长*斜率就会变小。

问题2: 步长大小如何选择?

   答:步长过小会导致成本函数收敛速度慢,过大可能会导致成本函数不收敛。可以用0.1,0.01,0.001这样间隔10倍或者3倍尝试,看成本函数变化曲线。曲线下降太平缓需要加大步长,曲线波动较大、不收敛时需要减小步长。

 

 

posted @ 2012-09-18 16:53  liyuxia713  阅读(1260)  评论(0编辑  收藏  举报