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