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

Linear Regression with Multiple Variables——Normal Equation


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

θ=(XTX)1XTy θ = ( X T X ) − 1 X T y

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


一、矩阵运算预备知识

1.1 矩阵转置

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

1.2 矩阵求偏导

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

d(XTAX)d(X)=2AX d ( X T A X ) d ( X ) = 2 A X

二、推导过程

对于训练样本集,有

hθ(x(1))hθ(x(2))hθ(x(m))=θ0x(1)0+θ1x(1)1++θnx(1)n=θ0x(2)0+θ1x(2)1++θnx(2)n=θ0x(m)0+θ1x(m)1++θnx(m)n h θ ( x ( 1 ) ) = θ 0 x 0 ( 1 ) + θ 1 x 1 ( 1 ) + … … + θ n x n ( 1 ) h θ ( x ( 2 ) ) = θ 0 x 0 ( 2 ) + θ 1 x 1 ( 2 ) + … … + θ n x n ( 2 ) … … h θ ( x ( m ) ) = θ 0 x 0 ( m ) + θ 1 x 1 ( m ) + … … + θ n x n ( m )

用向量形式表示,得到
hθ(x(1))hθ(x(2))hθ(x(m))m×1=x(1)0x(2)0x(m)0x(1)1x(2)1x(m)1x(1)nx(2)nx(m)nm×(n+1)×θ0θ1θn(n+1)×1 [ h θ ( x ( 1 ) ) h θ ( x ( 2 ) ) ⋮ h θ ( x ( m ) ) ] m × 1 = [ x 0 ( 1 ) x 1 ( 1 ) … x n ( 1 ) x 0 ( 2 ) x 1 ( 2 ) … x n ( 2 ) ⋮ ⋮ … ⋮ x 0 ( m ) x 1 ( m ) … x n ( m ) ] m × ( n + 1 ) × [ θ 0 θ 1 ⋮ θ n ] ( n + 1 ) × 1


hθ(x)=Xθ h θ ( x ) = X θ

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

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

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

解得
θ=(XTX)1XTy θ = ( X T X ) − 1 X T y

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

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

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

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

你可能感兴趣的:(机器学习)