机器学习多元线性回归模型推导
1 基础知识必备
1.1 线性代数
矩阵的运算
线性代数在数学、物理和计算机方面扮演的角色是非常非常重要,建议大家可以在闲暇时间认真复习复习相关的知识,对于我们理解自己的相关工作以及提升自己非常有用。接下来就简单且“重点”的概括一下矩阵的运算,毕竟在后面的推导以及学习过程中要用到。
定理一 设
A
A
A,
B
B
B,
C
C
C均为
m
×
n
m\times n
m×n矩阵,
k
k
k,
l
l
l为数. 则
- A + B A+B A+B= B + A B+A B+A;(加法的交换律)
- ( A + B ) + C = A + ( B + C (A+B)+C=A+(B+C (A+B)+C=A+(B+C; (加法的结合律)
- A + 0 = A A+0=A A+0=A;(加法单位元的存在性)
- A + ( − A ) = 0 A+(-A)=0 A+(−A)=0;(加法逆元的存在性)
- 1 A = A 1A=A 1A=A;
- ( k l ) A = k ( l A ) (kl)A=k(lA) (kl)A=k(lA);
- k ( A + B ) = k A + k B k(A+B)=kA+kB k(A+B)=kA+kB;(数乘对加法的结合律)
- ( k + l ) A = k A + l A (k+l)A=kA+lA (k+l)A=kA+lA;(数的加法对数乘的分配率)
定理二 设 A A A, B B B, C C C都是矩阵, k k k是数.则在下列各项中有意义的情况下,等式成立.
- ( A B ) C = A ( B C ) (AB)C=A(BC) (AB)C=A(BC);(乘法的结合律)
- k ( A B ) = k ( A ) B = A ( k B ) k(AB)=k(A)B=A(kB) k(AB)=k(A)B=A(kB);
- A E = A , E B = B AE=A,EB=B AE=A,EB=B;(乘法单位元的存在性)
- A ( B + C ) = A B + A C A(B+C)=AB+AC A(B+C)=AB+AC; (乘法对加法的左分配率)
- ( A + B ) C = A C + B C (A+B)C=AC+BC (A+B)C=AC+BC. (乘法对加法的右分配率)
定义 设矩阵
A
A
A为
m
×
n
m\times n
m×n . 称矩阵
B
B
B为A的转置,记做
B
=
A
T
B=A^{T}
B=AT 或
B
=
A
′
B=A'
B=A′,如果
B
B
B是一个
n
×
m
n\times m
n×m矩阵并且对任意
i
=
1
,
2
,
.
.
.
,
n
,
j
=
1
,
2
,
.
.
.
,
m
,
[
B
]
i
j
=
A
j
i
i=1,2,...,n,j=1,2,...,m,[B]_{ij}=A_{ji}
i=1,2,...,n,j=1,2,...,m,[B]ij=Aji,也就是说,如果
A
=
[
a
11
a
12
⋯
a
1
n
a
21
a
22
⋯
a
2
n
⋮
⋮
⋱
⋮
a
m
1
a
m
2
⋯
a
m
n
]
A=\left[ \begin{matrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots &\vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \\ \end{matrix} \right]
A=⎣⎢⎢⎢⎡a11a21⋮am1a12a22⋮am2⋯⋯⋱⋯a1na2n⋮amn⎦⎥⎥⎥⎤
则
A
T
=
[
a
11
a
21
⋯
a
m
1
a
12
a
22
⋯
a
m
2
⋮
⋮
⋱
⋮
a
1
N
a
2
n
⋯
a
m
n
]
A^{T}=\left[ \begin{matrix} a_{11} & a_{21} & \cdots & a_{m1} \\ a_{12} & a_{22} & \cdots & a_{m2} \\ \vdots &\vdots & \ddots & \vdots \\ a_{1N} & a_{2n} & \cdots & a_{mn} \\ \end{matrix} \right]
AT=⎣⎢⎢⎢⎡a11a12⋮a1Na21a22⋮a2n⋯⋯⋱⋯am1am2⋮amn⎦⎥⎥⎥⎤
特别地,
n
n
n维列向量
α
=
[
a
1
a
2
⋮
a
n
]
\alpha=\left[ \begin{matrix} a_{1} \\ a_{2} \\ \vdots \\ a_{n} \\ \end{matrix} \right]
α=⎣⎢⎢⎢⎡a1a2⋮an⎦⎥⎥⎥⎤
的转置
α
T
\alpha^{T}
αT是一个
n
n
n维行向量,
n
n
n维行向量的转置是一个
n
n
n维列向量.
定理三 设 A A A, B B B都是矩阵, k k k是数,如果下列等式中的运算都有意义,那么等式成立
- ( A T ) T = A (A^{T})^{T}=A (AT)T=A;
- ( A + B ) T = A T + B T (A+B)^{T}=A^{T}+B^{T} (A+B)T=AT+BT;
- ( k A ) T = k A T (kA)^{T}=kA^{T} (kA)T=kAT;
- ( A B ) T = B T A T (AB)^{T}=B^{T}A^{T} (AB)T=BTAT;
1.2 概率论与数理统计
具体的关于推导后面的博文会讲到,主要是极大似然估计以及概率的一些基础知识(很重要)。
2 多元线性回归
给定数据集
D
=
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
m
.
,
y
m
)
D={(x_1,y_1),(x_2,y_2),...,(x_m.,y_m)}
D=(x1,y1),(x2,y2),...,(xm.,ym),其中
x
i
=
(
x
i
1
;
x
i
2
;
.
.
.
x
i
d
)
,
y
i
∈
R
x_i = (x_{i1};x_{i2};...x_{id}),y_i \in R
xi=(xi1;xi2;...xid),yi∈R.样本由
d
d
d个属性描述,试图得到
f
(
x
i
)
=
ω
T
x
i
+
b
,
使
得
f
(
x
i
)
≃
y
i
f(x_i)=\omega^{T}x_i +b,使得f(x_i)\simeq y_i
f(xi)=ωTxi+b,使得f(xi)≃yi
利用最小二乘法来对
ω
\omega
ω和
b
b
b进行估计,为了便于讨论,将
ω
\omega
ω和
b
b
b吸收入向量形式
w
^
=
(
ω
;
b
)
\hat{w}=(\omega ;b)
w^=(ω;b),相应的,把数据集
D
D
D表示为一个
m
×
(
d
+
1
)
m\times (d+1)
m×(d+1)大小的矩阵
X
X
X,其中每行对应于一个示例,该行前d个元素对应于示例的
d
d
d个属性值,最后一个元素恒置为1,即
X
=
[
x
11
x
12
⋯
x
1
d
1
x
21
x
22
⋯
x
2
d
1
⋮
⋮
⋱
⋮
⋮
x
m
1
x
m
2
⋯
x
m
d
1
]
X=\left[ \begin{matrix} x_{11} & x_{12} & \cdots & x_{1d} & 1 \\ x_{21} & x_{22} & \cdots & x_{2d} & 1 \\ \vdots &\vdots & \ddots & \vdots & \vdots \\ x_{m1} & x_{m2} & \cdots & x_{md} & 1 \\ \end{matrix} \right]
X=⎣⎢⎢⎢⎡x11x21⋮xm1x12x22⋮xm2⋯⋯⋱⋯x1dx2d⋮xmd11⋮1⎦⎥⎥⎥⎤
再把标记也写出向量形式
y
=
(
y
1
;
y
2
;
.
.
;
y
m
)
y=(y_1;y_2;..;y_m)
y=(y1;y2;..;ym),则有
ω
^
∗
=
a
r
g
m
i
n
ω
^
(
y
−
X
ω
^
)
T
(
y
−
X
ω
^
)
\hat{\omega}^{*}=arg min_{\hat{\omega}}(y-X\hat{\omega})^{T}(y-X\hat{\omega})
ω^∗=argminω^(y−Xω^)T(y−Xω^)
令
E
ω
^
=
(
y
−
X
ω
^
)
T
(
y
−
X
ω
^
)
E_{\hat{\omega}}=(y-X\hat{\omega})^{T}(y-X\hat{\omega})
Eω^=(y−Xω^)T(y−Xω^),则采用上面矩阵的相关运算可得
E
ω
^
=
(
y
−
X
ω
^
)
T
(
y
−
X
ω
^
)
=
(
y
T
−
ω
^
T
X
T
)
(
y
−
X
ω
^
)
=
ω
^
T
X
T
X
ω
^
−
ω
^
T
X
T
y
−
y
T
X
ω
^
+
y
T
y
E_{\hat{\omega}} = (y-X\hat{\omega})^{T}(y-X\hat{\omega}) \\ = (y^{T}-\hat{\omega}^{T}X^{T})(y-X\hat{\omega} )\\ =\hat{\omega}^{T}X^{T} X\hat{\omega}-\hat{\omega}^{T}X^{T}y-y^{T}X\hat{\omega}+y^{T}y
Eω^=(y−Xω^)T(y−Xω^)=(yT−ω^TXT)(y−Xω^)=ω^TXTXω^−ω^TXTy−yTXω^+yTy
对上式对
ω
^
\hat{\omega}
ω^求导
∂
E
ω
^
∂
ω
^
=
∂
(
ω
^
T
X
T
X
ω
^
−
ω
^
T
X
T
y
−
y
T
X
ω
^
+
y
T
y
)
∂
ω
^
=
2
X
T
X
ω
^
−
X
T
y
−
y
T
X
=
2
X
T
X
ω
^
−
X
T
y
−
X
T
y
=
2
X
T
(
X
ω
^
−
y
)
\frac{\partial E_{\hat{\omega}}}{\partial \hat{\omega}}=\frac{\partial(\hat{\omega}^{T}X^{T} X\hat{\omega}-\hat{\omega}^{T}X^{T}y-y^{T}X\hat{\omega}+y^{T}y)}{\partial \hat{\omega}} \\ = 2X^{T} X\hat{\omega}-X^{T}y-y^{T}X \\ = 2X^{T} X\hat{\omega}-X^{T}y-X^{T}y \\ =2X^{T} (X\hat{\omega}-y)
∂ω^∂Eω^=∂ω^∂(ω^TXTXω^−ω^TXTy−yTXω^+yTy)=2XTXω^−XTy−yTX=2XTXω^−XTy−XTy=2XT(Xω^−y)
令上式为零可得 ω ^ \hat{\omega} ω^最优解的闭式解,但是由于涉及矩阵运算逆的运算,比单变量的情形复杂一些,下面做一些讨论:
-
当 X T X X^{T}X XTX为满秩矩阵(full-rank matrix)或正定矩阵(positive definite matrix)时,令上式为零,可得
ω ^ ∗ = ( X T X ) − 1 X T y \hat{\omega}^{*}=(X^{T}X)^{-1} X^{T}y ω^∗=(XTX)−1XTy
最终学得的线性回归模型为
f ( x i ^ ) = x i ^ ( X T X ) − 1 X T y f(\hat{x_i})=\hat{x_i}(X^{T}X)^{-1} X^{T}y f(xi^)=xi^(XTX)−1XTy
因此在编程中要判断上述条件是否成立,不成立则不能进行运算。 -
如果 X T X X^{T}X XTX不是满秩矩阵,则引入正规项(regularization)进行处理,具体的讨论在后面博客中讨论
3 总结
机器学习的学习是一个循序渐进的过程,对于好多理论公式的推导是非常有必要的,因此后期我会一一推导相关的公式,希望可以跟这个领域的大牛们交流讨论,谢谢大家了!