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