线性回归——正规方程推导过程
我们知道线性回归中除了利用梯度下降算法来求最优解之外,还可以通过正规方程的形式来求解。
首先看到我们的线性回归模型:
f
(
x
i
)
=
w
T
x
i
f(x_i)=w^Tx_i
f(xi)=wTxi
其中
w
=
(
w
0
w
1
.
.
.
w
n
)
w=\begin{pmatrix}w_0\\w_1\\...\\w_n\end{pmatrix}
w=⎝⎜⎜⎛w0w1...wn⎠⎟⎟⎞,
x
i
=
(
x
0
x
1
.
.
.
x
n
)
x_i=\begin{pmatrix}x_0\\x_1\\...\\x_n\end{pmatrix}
xi=⎝⎜⎜⎛x0x1...xn⎠⎟⎟⎞,m表示样本数,n是特征数。
然后我们的代价函数(这里使用均方误差):
J
(
w
)
=
∑
i
=
1
m
(
f
(
x
i
)
−
y
i
)
2
J(w)=\sum_{i=1}^m(f(x_i)-y_i)^2
J(w)=i=1∑m(f(xi)−yi)2
接着把我的代价函数写成向量的形式:
J
(
w
)
=
(
X
w
−
y
)
T
(
X
w
−
y
)
J(w)=(Xw-y)^T(Xw-y)
J(w)=(Xw−y)T(Xw−y)
其中
X
=
(
1
x
11
x
12
⋯
x
1
n
1
x
21
x
22
⋯
x
2
n
⋮
⋮
⋮
⋱
⋮
1
x
m
1
x
m
2
⋯
x
m
n
)
X=\begin{pmatrix} 1 & x_{11} & x_{12}& \cdots & x_{1n} \\ 1 & x_{21} & x_{22}& \cdots & x_{2n} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & x_{m1} & x_{m2}& \cdots & x_{mn} \\ \end{pmatrix}
X=⎝⎜⎜⎜⎛11⋮1x11x21⋮xm1x12x22⋮xm2⋯⋯⋱⋯x1nx2n⋮xmn⎠⎟⎟⎟⎞
最后我们对w进行求导,等于0,即求出最优解。在求导之前,先补充一下线性代数中矩阵的知识:
1.左分配率:
A
(
B
+
C
)
=
A
B
+
A
C
A(B+C) = AB+AC
A(B+C)=AB+AC;右分配率:
(
B
+
C
)
A
=
B
A
+
C
A
(B+C)A = BA + CA
(B+C)A=BA+CA
2.转置和逆:
(
A
T
)
−
1
=
(
A
−
1
)
T
(A^T)^{-1}=(A^{-1})^T
(AT)−1=(A−1)T,
(
A
T
)
T
=
A
(A^T)^T=A
(AT)T=A
3.矩阵转置的运算规律:
(
A
+
B
)
T
=
A
T
+
B
T
(A+B)^T=A^T+B^T
(A+B)T=AT+BT;
(
A
B
)
T
=
B
T
A
T
(AB)^T=B^TA^T
(AB)T=BTAT
然后介绍一下常用的矩阵求导公式:
1.
δ
X
T
A
X
δ
X
=
(
A
+
A
T
)
X
\frac{\delta X^TAX}{\delta X}=(A+A^T)X
δXδXTAX=(A+AT)X
2. δ A X δ X = A T \frac{\delta AX}{\delta X}=A^T δXδAX=AT
3. δ X T A δ X = A \frac{\delta X^TA}{\delta X}=A δXδXTA=A
然后我们来看一下求导的过程:
1.展开原函数,利用上面的定理
J
(
w
)
=
(
X
w
−
y
)
T
(
X
w
−
y
)
=
(
(
X
w
)
T
−
y
T
)
(
X
w
−
y
)
=
w
T
X
T
X
w
−
w
T
X
T
y
−
y
T
X
w
+
y
T
y
J(w)=(Xw-y)^T(Xw-y)=((Xw)^T-y^T)(Xw-y)\\=w^TX^TXw-w^TX^Ty-y^TXw+y^Ty
J(w)=(Xw−y)T(Xw−y)=((Xw)T−yT)(Xw−y)=wTXTXw−wTXTy−yTXw+yTy
2.求导,化简得,
δ
J
(
w
)
δ
w
=
(
X
T
X
+
(
X
T
X
)
T
)
w
−
X
T
y
−
(
y
T
X
)
T
=
0
⟹
2
X
T
X
w
−
2
X
T
y
=
0
⟹
X
T
X
w
=
X
T
y
⟹
w
=
(
X
X
T
)
−
1
X
T
y
\frac{\delta J(w)}{\delta w}=(X^TX+(X^TX)^T)w-X^Ty-(y^TX)^T=0\\\implies 2X^TXw-2X^Ty=0\\\implies X^TXw=X^Ty\\\implies w=(XX^T)^{-1}X^Ty
δwδJ(w)=(XTX+(XTX)T)w−XTy−(yTX)T=0⟹2XTXw−2XTy=0⟹XTXw=XTy⟹w=(XXT)−1XTy
最后补充一下关于矩阵求导的一些知识,不懂可以查阅:矩阵求导、几种重要的矩阵及常用的矩阵求导公式