【Machine Learning@Andrew Ng, Coursera】正规方程求解参数的详细推导过程

Linear Regression with Multiple Variables——Normal Equation


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

θ = ( X T X ) 1 X T y

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


一、矩阵运算预备知识

1.1 矩阵转置

( A + B ) T = A T + B T ( A B ) T = B T A T

1.2 矩阵微分

d ( X T A ) d ( X ) = d ( A T X ) d ( X ) = A

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

二、推导过程

对于训练样本集,有

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 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 θ

代价函数 J ( θ ) 可写为
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

根据矩阵微分规则,得到
1 2 m × [ 2 ( X T X ) θ 2 X T y ] = 0

解得
θ = ( X T X ) 1 X T y

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

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

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

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

猜你喜欢

转载自blog.csdn.net/weixin_42395916/article/details/80790331
今日推荐