线性回归之最小二乘法
最小二乘法的矩阵表达
【符号约定】:训练数据集 T = { ( x 1 ⃗ , y 1 ) , ( x 2 ⃗ , y 2 ) . . . ( x N ⃗ , y N ) } , x i ⃗ ∈ R p , y i ∈ { − 1 , 1 } , i = 1 , 2 , 3 , . . . , N T=\{ (\vec{x_1},y_1),(\vec{x_2},y_2)...(\vec{x_N},y_N)\},\vec{x_i}\in{R^p},y_i\in{\{-1,1\}},i=1,2,3,...,N T={(x1,y1),(x2,y2)...(xN,yN)},xi∈Rp,yi∈{−1,1},i=1,2,3,...,N
X = ( x 1 , x 2 , x 3 , . . . , x N ) T = ( x 1 T x 2 T . . x N T ) = ( x 1 , 1 x 1 , 2 . . x 1 , p x 2 , 1 x 2 , 2 . . x 2 , p . . . . x N , 1 x N , 2 . . x N , p ) N × p X=(x_1,x_2,x_3,...,x_N)^T=\begin{pmatrix} x_1^T\\x_2^T\\.\\.\\x_N^T\end{pmatrix}=\begin{pmatrix}x_{1,1}&x_{1,2}&.&.&x_{1,p}\\x_{2,1}&x_{2,2}&.&.&x_{2,p}\\.&&&&.\\.&&&&.\\x_{N,1}&x_{N,2}&.&.&x_{N,p}\end{pmatrix}_{N\times{p}} X=(x1,x2,x3,...,xN)T=⎝⎜⎜⎜⎜⎛x1Tx2T..xNT⎠⎟⎟⎟⎟⎞=⎝⎜⎜⎜⎜⎛x1,1x2,1..xN,1x1,2x2,2xN,2......x1,px2,p..xN,p⎠⎟⎟⎟⎟⎞N×p
Y = ( y 1 y 2 . . y N ) N × 1 , w = ( w 1 w 2 . . w p ) , b ∈ R Y=\begin{pmatrix}y_1\\y_2\\.\\.\\y_N\end{pmatrix}_{N\times1},w=\begin{pmatrix}w_1\\w_2\\.\\.\\w_p\end{pmatrix},b\in{R} Y=⎝⎜⎜⎜⎜⎛y1y2..yN⎠⎟⎟⎟⎟⎞N×1,w=⎝⎜⎜⎜⎜⎛w1w2..wp⎠⎟⎟⎟⎟⎞,b∈R
【模型定义】:线性回归模型定义为 f ( w ) = w T x ⃗ + b f(w)=w^T\vec{x}+b f(w)=wTx+b
但在后边的叙述中,为了推导方便,我们设定 f ( w ) = w T x ⃗ f(w)=w^T\vec{x} f(w)=wTx
其中,
w
w
w 和
x
i
⃗
\vec{x_i}
xi 均采用扩展形式,即:
w
=
(
w
1
w
2
.
.
w
p
b
)
,
x
i
⃗
=
(
x
i
(
1
)
x
i
(
2
)
.
.
x
i
(
p
)
1
)
w=\begin{pmatrix}w_1\\w_2\\.\\.\\w_p\\b\end{pmatrix},\vec{x_i}=\begin{pmatrix}x_i^{(1)}\\x_i^{(2)}\\.\\.\\x_i^{(p)}\\1\\\end{pmatrix}
w=⎝⎜⎜⎜⎜⎜⎜⎛w1w2..wpb⎠⎟⎟⎟⎟⎟⎟⎞,xi=⎝⎜⎜⎜⎜⎜⎜⎜⎛xi(1)xi(2)..xi(p)1⎠⎟⎟⎟⎟⎟⎟⎟⎞,
X
X
X也应该做相应的改变,此处不再赘述。
【参数估计】:最小二乘法的损失函数定义为
L
(
w
)
=
∑
i
=
0
N
∥
w
T
x
i
⃗
−
y
i
∥
2
L(w)=\sum\limits_{i=0}^{N}\parallel{w^T\vec{x_i}-y_i\parallel}^2
L(w)=i=0∑N∥wTxi−yi∥2
众所周知,Python的for循环执行效率低下,故将损失函数变换为矩阵表达式。
L ( w ) = ( w T x 1 − y 1 w T x 2 − y 2 . . . w T x i − y i ) ( w T x 1 − y 1 w T x 2 − y 2 . . w T x N − y N ) L(w)=\begin{pmatrix}w^Tx_1-y_1&w^Tx_2-y_2&...&w^Tx_i-y_i\end{pmatrix}\begin{pmatrix}w^Tx_1-y_1\\w^Tx_2-y_2\\.\\.\\w^Tx_N-y_N\end{pmatrix} L(w)=(wTx1−y1wTx2−y2...wTxi−yi)⎝⎜⎜⎜⎜⎛wTx1−y1wTx2−y2..wTxN−yN⎠⎟⎟⎟⎟⎞
其中,矩阵乘积的左矩阵可以进一步表示为:
w T ( x 1 x 2 . . . x N ) − ( y 1 y 2 . . . y N ) = w T X T − Y T w^T\begin{pmatrix}x_1&x_2&...&x_N\end{pmatrix}-\begin{pmatrix}y_1&y_2&...&y_N\end{pmatrix}=w^TX^T-Y^T wT(x1x2...xN)−(y1y2...yN)=wTXT−YT
从而: L ( w ) = ( w T X T − Y T ) ( w T X T − Y T ) T = w T X T X w − w T X T Y − Y T X w + Y T Y L(w)=(w^TX^T-Y^T)(w^TX^T-Y^T)^T=w^TX^TXw-w^TX^TY-Y^TXw+Y^TY L(w)=(wTXT−YT)(wTXT−YT)T=wTXTXw−wTXTY−YTXw+YTY
则w的估计量 w ^ = a r g \widehat{w}=arg w =arg m i n min min L ( w ) L(w) L(w)
令 ∂ L ∂ w = 2 X T X w − 2 X T Y = 0 \frac{\partial{L}}{\partial{w}}=2X^TXw-2X^TY=0 ∂w∂L=2XTXw−2XTY=0
求得 w ^ = ( X T X ) − 1 X T Y \widehat{w}=(X^TX)^{-1}X^TY w =(XTX)−1XTY 即为所求。
最小二乘法的几何意义
直接上图:
很明显,
L
(
w
)
L(w)
L(w) 表示所有点到拟合直线的距离平方之和,也就是图中黄色线条的长度平方之和,最小乘方就是使得该距离平方之和最小。这就是最小乘方的几何意义。
【注】: 矩阵求导可参考我另一篇blog
【参考】:B站UP主shuhuai008的机器学习白板推导系列