在coursera上看了Andrew Ng的《Machine Learning》课程,里面讲到了正规方程(Normal Equation),现在在此记录一下推导过程。
假设函数(Hypothesis Function)为:
hθ(x)=θ0+θ1x1+θ2x2+⋯+θnxn
h
θ
(
x
)
=
θ
0
+
θ
1
x
1
+
θ
2
x
2
+
⋯
+
θ
n
x
n
此处我们可以令 x0=1 x 0 = 1 .
代价函数(Cost Function):
J(θ)=J(θ0,…,θn)=12m∑i=1m(hθ(x(i))−y(i))2
J
(
θ
)
=
J
(
θ
0
,
…
,
θ
n
)
=
1
2
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
我们想要代价函数的最小解,对代价函数进行求导。因为对于向量我们有 zTz=∑iz2i z T z = ∑ i z i 2 ,所以:
J(θ)=12m(Xθ−y)T(Xθ−y)
J
(
θ
)
=
1
2
m
(
X
θ
−
y
)
T
(
X
θ
−
y
)
因为 12m 1 2 m 部分对最终的解没影响,为了便于书写和计算,我们可以先将这部分舍去。对方程的转置进行化简:
J(θ)=(θTXT−yT)(Xθ−y)
J
(
θ
)
=
(
θ
T
X
T
−
y
T
)
(
X
θ
−
y
)
J(θ)=θTXTXθ−(Xθ)Ty−yTXθ+yTy
J
(
θ
)
=
θ
T
X
T
X
θ
−
(
X
θ
)
T
y
−
y
T
X
θ
+
y
T
y
因为 xθ和y x θ 和 y 都是矢量,所以这两者相乘先后顺序没有关系,所以可以化简成:
J(θ)=θTXTXθ−2(Xθ)Ty+yTy
J
(
θ
)
=
θ
T
X
T
X
θ
−
2
(
X
θ
)
T
y
+
y
T
y
接着方程 J(θ)对θ J ( θ ) 对 θ 进行求导:
∂∂θJ(θ)=2XTXθ−2XTy=0
∂
∂
θ
J
(
θ
)
=
2
X
T
X
θ
−
2
X
T
y
=
0
1
∂∂θJ(θ)=0时,得到最合适θ ∂ ∂ θ J ( θ ) = 0 时 , 得 到 最 合 适 θ
XTXθ=XTy
X
T
X
θ
=
X
T
y
两边同时乘以 XTX X T X 的逆矩阵,得:
θ=(XTX)−1XTy
θ
=
(
X
T
X
)
−
1
X
T
y
此即为正规方程。当 θ=(XTX)−1XTy θ = ( X T X ) − 1 X T y 时,代价方程有最优解。