Machine Learning第二讲[多变量线性回归] -(二)计算参数分析

来源:互联网 发布:三端口环形器 编辑:程序博客网 时间:2024/06/07 01:11

内容来自Andrew老师课程Machine Learning的第二章内容的Computing Parameters Analytically部分。

一、Normal Equation(正规方程)

使用梯度下降法得到最优值,需要多次更新这里写图片描述的值,而使用正规方程法只需要一次求解便可得到这里写图片描述的值,但是其也有一些优缺点。

1、提到最优值,一般会想到利用求导的方法,如下图:
这里写图片描述

但是按照微积分的方法,将这些求导后的等式求解后得到theta0,theta1……thetan可能会比较复杂,下图所示是利用等价的方法得到的式子,可以更方便地求解theta的值(这个theta是向量)。
这里写图片描述

2、下面是一般化设计矩阵X和结果向量y的过程,如下图:
这里写图片描述
这里写图片描述
注意:
在正规方程方法中,不需要使用特征缩放,即使是0≤x1≤1,0≤x2≤1000,0≤x3≤10^(-5)也没有关系,仍然可以直接使用,不需要特征缩放。
但是在使用梯度下降算法时,特征缩放非常重要。

3、何时使用梯度下降?何时使用正规方程?

m training examples, n features:

Gradient Descent Normal Equation (缺)Need to choose α(需要多次运行,不断尝试α,然后找到运行效果最好的那个α) (优)No need to choose α (通常一步即可求出theta值) (缺)Need many iterations(因为一些细节问题,可能运行地更慢) (优)Don’t need to iterate(不需要画出J(theta)的曲线来检查收敛性,也不需要采取其他的额外步骤) (优)Work well even when n is large(若有上百万个数据,可以选择梯度下降,通常比较有效) (缺)Need to compute 这里写图片描述(X^T*X矩阵是(n+1)*(n+1),求逆的时间复杂度大概是O(n^3)) (缺)Slow if n is very large

若n比较小,则正规方程比较适合,若n比较大,则需要使用梯度下降法。例如,n=100或者n=1000可以使用正规方程,但是当n=10000时,就需要考虑一下使用正规方程是否开销较大,n=10000时一般使用梯度下降算法(也不一定)。当n=10^6这种比较大的数时,一般使用梯度下降算法。

总结:若特征数并不大,则正规方程是一个很好的求theta的方法。具体来说,如果特征变量数量小于1w,通常使用正规方程而不使用梯度下降。
在后续学习逻辑回归等算法时,我们仍然需要使用梯度下降方法。对于线性回归模型,正规方程可能是比梯度下降更快地方法,但是在一些其他的算法中,可能只能使用梯度下降法。因此需要根据具体问题和特征数量的数目大小来选择使用哪种算法。

二、Normal Equation Noninvertibility(正规方程的可逆性)

对于有m个样本,n个feature的训练集,有X是m*(n+1)的矩阵,这里写图片描述是(n+1)×(n+1)的方阵,又因为这里写图片描述,如果|这里写图片描述|=0,即这里写图片描述是不可逆矩阵,那应该如何处理?

1、关于正规方程的不可逆性:
这里写图片描述

2、当这里写图片描述是不可逆矩阵时,如何处理?
这里写图片描述
S1:检查是否有冗余的特征,例如上例中的x1和x2(米和英尺之间是线性相关的),则删除其一,直到其不再含有冗余的特征变量。
S2:如果删除冗余特征之后仍然不可逆,则检查特征数是否过多,在不影响训练过程的前提下,可删除一些特征。

0 0
原创粉丝点击