正规方程
上一小节中,我们使用批量梯度下降算法,通过不断迭代以求得最佳参数
θ
的值。本小节将介绍另一种方法——正规方程(The Normal Euqations)来计算出最佳参数
θ
的值。
在介绍正规方程法之前,我们先看看一些基本概念。
Matrix Derivatives
对于一个
m∗n
的矩阵到实数的函数映射
f:Rm∗n↦R
,其关于
A
的导数为:
∇Af(A)=⎡⎣⎢⎢⎢⎢∂f∂A11⋮∂f∂Am1…⋱…∂f∂A1n⋮∂f∂Amn⎤⎦⎥⎥⎥⎥
其中
A
为
m∗n
的矩阵。
便于理解,我们不妨假设矩阵
A
为:
A=[A11A21A12A22]
函数映射
f:R2∗2↦R
为:
f(A)=32A11+5A212+A21A22
根据上述公式,我们可得:
∇Af(A)=[32A2210A12A21]
对于
n∗n
矩阵A,我们将矩阵A对角线上元素的和定义为矩阵A的迹:
trA=∑i=1nAii
其中若矩阵A为
1∗1
,即为一实数,则其迹为本身,
trA=A
。
一些常用性质如下:
trAB=trBAtrABC=trCAB=trBCAtrA=trATtr(A+B)=tr(A)+tr(B)traA=atrA
结合矩阵导数的概念有如下性质:
∇AtrAB=BT∇ATf(A)=(∇Af(A))T∇AtrABATC=CAB+CTABT∇A|A|=|A|(A−1)T(1)(2)(3)(4)
其中等式(1)要求
AB
为方阵;等式(3)要求
ABATC
为方阵;等式(4)要求矩阵A为非奇异矩阵,即可逆;
|A|
表示矩阵A的行列式。
Least Squares Revisited
好了,现在让我们开始介绍正规方程法,以找到最佳参数
θ
的值最小化代价函数
J(θ)
。
在给定训练集中,我们可构建一个维度为
m∗n
的矩阵
X
,其中
m
为样本个数,
n
为每个样本的特征变量个数。
X=⎡⎣⎢⎢⎢⎢⎢−(x(1))T−−(x(2))T−⋮−(x(m))T−⎤⎦⎥⎥⎥⎥⎥
同样,向量
Y
为:
Y=⎡⎣⎢⎢⎢⎢⎢(y(1))T(y(2))T⋮(y(m))T⎤⎦⎥⎥⎥⎥⎥
根据
hθ(x(i))=(x(i))Tθ
,我们可得:
Xθ−Y=⎡⎣⎢⎢⎢⎢⎢(x(1))Tθ(x(2))Tθ⋮(x(m))Tθ⎤⎦⎥⎥⎥⎥⎥−⎡⎣⎢⎢⎢⎢⎢(y(1))T(y(2))T⋮(y(m))T⎤⎦⎥⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢hθ(x(1))−y(1)hθ(x(2))−y(2)⋮hθ(x(m))−y(m)⎤⎦⎥⎥⎥⎥⎥
又因为对于向量
z
,有
zTz=∑iz2i
。故我们可得:
J(θ)=12(Xθ−Y)T(Xθ−Y)=12∑i=1m(hθ(x(i))−y(i))2
所以,我们对代价函数
J(θ)
求偏导,可得:
∇θJ(θ)=12∇θ(θTXT−YT)(Xθ−Y)=12∇θ(θTXTXθ−θTXTY−YTXθ+YTY)=12∇θtr(θTXTXθ−θTXTY−YTXθ+YTY)=12∇θ(trθTXTXθ−2trYTXθ)=12(XTXθ+XTXθ−2XTY)=XTXθ−XTY(1)(2)(3)(4)(5)(6)
其中等式(1)类似于完全平方展开得到等式(2);等式(2)应用
trA=A
得到等式(3);等式(3)应用
YTY
为实数,且实数的转置为其本身,从而得到等式(4);等式(4)应用
trAB=trBA
,
∇AAB=BT
和
∇AtrABATC=CAB+CTABT
得到等式(5)。
最后,我们令该偏导为
0
可得:
XTXθ=XTY⇒θ=(XTX)−1XTY
从而,我们求出了参数
θ
的值。