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)0⋮x(m)0x(1)1x(2)1⋮x(m)1…………x(1)nx(2)n⋮x(m)n⎤⎦⎥⎥⎥⎥⎥m×(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(θ)=12m∑i=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
三、梯度下降法和正规方程法的对比
对于线性回归问题,用梯度下降法求解参数需要选择α,并且需要多步迭代才能收敛到全局最小值,而用正规方程法可以一次性求解参数,自然也不必画
J(θ)
J
(
θ
)
曲线图了。此外,如果使用正规方程法,还不需要归一化特征变量。显然,在某些情况下,正规方程法效率更高。
那么,梯度下降法和正规方程法该如何取舍?
首先,要看n的大小。正规方程法需要进行矩阵逆运算,而实现逆矩阵计算所需的计算量大约是矩阵维度的三次方。当n非常大时,逆运算会消耗大量时间。具体来说,当n在10000以上时,就会考虑优先使用梯度下降法。
其次,要看具体的问题。梯度下降法的应用范围更广,在非回归问题中,梯度下降法也可用于求解参数。