【Machine Learning, Coursera】机器学习Week2 Normal Equation

Linear Regression with Multiple Variables——Normal Equation


对于线性回归问题,用梯度下降法求解参数需要选择α,并且需要多步迭代才能收敛到全局最小值,而用正规方程法可以一次性求解参数。Andrew Ng在视频中直接给出了正规方程求解参数的计算结果

θ=(XTX)1XTy

本篇文章给出了一种可能的推导方法。


一、矩阵运算预备知识

1.1 矩阵转置

(A+B)T=AT+BT(AB)T=BTAT

1.2 矩阵求偏导

d(XTA)d(X)=d(ATX)d(X)=A

d(XTAX)d(X)=2AX

二、推导过程

对于训练样本集,有

hθ(x(1))=θ0x0(1)+θ1x1(1)++θnxn(1)hθ(x(2))=θ0x0(2)+θ1x1(2)++θnxn(2)hθ(x(m))=θ0x0(m)+θ1x1(m)++θnxn(m)

用向量形式表示,得到
[hθ(x(1))hθ(x(2))hθ(x(m))]m×1=[x0(1)x1(1)xn(1)x0(2)x1(2)xn(2)x0(m)x1(m)xn(m)]m×(n+1)×[θ0θ1θn](n+1)×1


hθ(x)=Xθ

代价函数J(θ)可写为
J(θ)=12mi=1m(hθ(x(i))y(i))2=12m(Xθy)T(Xθy)=12m(θTXTXθ2θTXTy+yTy)

最小化代价函数,即需
θJ(θ)=0

根据矩阵求偏导规则,得到
12m×[2(XTX)θ2XTy]=0

解得
θ=(XTX)1XTy

三、梯度下降法和正规方程法的对比

【Machine Learning, Coursera】机器学习Week2 Normal Equation
对于线性回归问题,用梯度下降法求解参数需要选择α,并且需要多步迭代才能收敛到全局最小值,而用正规方程法可以一次性求解参数,自然也不必画J(θ)曲线图了。此外,如果使用正规方程法,还不需要归一化特征变量。显然,在某些情况下,正规方程法效率更高。

那么,梯度下降法和正规方程法该如何取舍?

首先,要看n的大小。正规方程法需要进行矩阵逆运算,而实现逆矩阵计算所需的计算量大约是矩阵维度的三次方。当n非常大时,逆运算会消耗大量时间。具体来说,当n在10000以上时,就会考虑优先使用梯度下降法。
其次,要看具体的问题。梯度下降法的应用范围更广,在非回归问题中,梯度下降法也可用于求解参数。