机器学习 [白板推导](二)[线性回归]
3. 线性回归
3.1. 问题定义
假设两个变量
x
⃗
\vec{x}
x 和
y
y
y 之间存在线性关系(例如
y
=
w
⃗
T
x
⃗
+
b
y=\vec{w}^T\vec{x}+b
y=wTx+b),如何利用数据
D
a
t
a
:
{
(
x
⃗
i
,
y
i
)
}
i
=
1
N
Data:\{(\vec{x}_i,y_i)\}_{i=1}^N
Data:{(xi,yi)}i=1N 拟合出这个线性关系,使得可以对新的样本
x
⃗
N
+
1
\vec{x}_{N+1}
xN+1 回归得到其对应的
y
N
+
1
y_{N+1}
yN+1 .
为了便于推导,将样本表示为增广自变量矩阵
X
^
N
×
(
p
+
1
)
=
(
x
⃗
^
1
x
⃗
^
2
⋯
x
⃗
^
n
)
T
=
(
[
1
x
⃗
1
]
[
1
x
⃗
2
]
⋯
[
1
x
⃗
n
]
)
T
\hat{X}_{N\times (p+1)}=(\begin{matrix} \hat{\vec{x}}_1 & \hat{\vec{x}}_2 & \cdots &\hat{ \vec{x}}_n \end{matrix})^T=(\begin{matrix} \begin{bmatrix} 1\\ \vec{x}_1 \end{bmatrix} & \begin{bmatrix} 1\\ \vec{x}_2 \end{bmatrix} & \cdots & \begin{bmatrix} 1\\ \vec{x}_n \end{bmatrix} \end{matrix})^T
X^N×(p+1)=(x^1x^2⋯x^n)T=([1x1][1x2]⋯[1xn])T 和 对应的因变量矩阵
Y
N
×
1
=
(
y
1
y
2
⋯
y
n
)
Y_{N\times1}=(\begin{matrix} y_1 & y_2 & \cdots & y_n \end{matrix})
YN×1=(y1y2⋯yn),则根据线性假设,存在参数矩阵
W
(
p
+
1
)
×
1
W_{(p+1)\times1}
W(p+1)×1 使得
Y
=
X
^
W
Y=\hat{X}W
Y=X^W(也可以表示为
y
i
=
x
⃗
^
i
T
W
y_i=\hat{\vec{x}}_i^TW
yi=x^iTW). 因此该问题可以定义为求解最优参数矩阵
W
^
\hat{W}
W^.
3.2. 问题求解
3.2.1. 最小二乘法求解
根据最小二乘法,将损失函数定义为均方误差:
L
M
S
E
(
W
)
=
∥
X
^
W
−
Y
∥
=
∑
i
=
1
N
(
x
⃗
^
i
T
W
−
y
i
)
2
,
(3.1)
\mathcal{L}_{MSE}(W)=\|\hat{X}W-Y\|=\sum_{i=1}^N(\hat{\vec{x}}_i^TW-y_i)^2, \tag{3.1}
LMSE(W)=∥X^W−Y∥=i=1∑N(x^iTW−yi)2,(3.1)
则优化问题表示为
W
^
=
arg min
W
L
M
S
E
(
W
)
.
(3.2)
\hat{W}=\argmin_W \mathcal{L}_{MSE}(W). \tag{3.2}
W^=WargminLMSE(W).(3.2)
要求出解析解,需要先将问题定义表示为矩阵计算,即:
L
M
S
E
(
W
)
=
(
W
T
X
^
T
−
Y
T
)
(
X
^
W
−
Y
)
=
W
T
X
^
T
X
^
W
−
2
W
T
X
^
T
Y
+
Y
T
Y
,
(3.3)
\begin{aligned} \mathcal{L}_{MSE}(W) &= (W^T\hat{X}^T-Y^T)(\hat{X}W-Y)\\&=W^T\hat{X}^T\hat{X}W-2W^T\hat{X}^TY+Y^TY,\end{aligned}\tag{3.3}
LMSE(W)=(WTX^T−YT)(X^W−Y)=WTX^TX^W−2WTX^TY+YTY,(3.3)
将其对参数求导得:
∂
L
M
S
E
∂
W
=
2
X
^
T
X
^
W
−
2
X
^
T
Y
,
(3.4)
\frac{\partial \mathcal{L}_{MSE}}{\partial W}=2\hat{X}^T\hat{X}W-2\hat{X}^TY, \tag{3.4}
∂W∂LMSE=2X^TX^W−2X^TY,(3.4)
令其为0,可得
W
^
=
(
X
^
T
X
^
)
−
1
X
T
Y
=
X
†
Y
(3.5)
\hat{W}=(\hat{X}^T\hat{X})^{-1}X^TY=X^\dagger Y\tag{3.5}
W^=(X^TX^)−1XTY=X†Y(3.5)
其中 X † = ( X ^ T X ^ ) − 1 X T X^\dagger=(\hat{X}^T\hat{X})^{-1}X^T X†=(X^TX^)−1XT 被称为 X ^ \hat{X} X^ 的伪逆。
3.2.2. 概率角度求解
从概率角度认为,数据中存在随机误差,表示为
y
=
x
⃗
^
T
W
+
ϵ
y=\hat{\vec{x}}^TW+\epsilon
y=x^TW+ϵ. 其中
ϵ
\epsilon
ϵ 为误差项,遵从某种概率分布。假设误差项遵从的是高斯分布,则可以定义变量的概率分布为:
ϵ
∼
N
(
0
,
σ
2
)
,
y
∣
x
⃗
^
T
W
∼
N
(
x
⃗
^
T
W
,
σ
2
)
.
(3.6)
\begin{aligned}\epsilon& \sim N(0, \sigma^2),\\ y|\hat{\vec{x}}^TW&\sim N(\hat{\vec{x}}^TW,\sigma^2). \end{aligned}\tag{3.6}
ϵy∣x^TW∼N(0,σ2),∼N(x^TW,σ2).(3.6)
使用最大似然估计法求解参数,似然函数为:
L
M
L
E
(
W
)
=
∑
i
=
1
N
log
[
p
(
y
i
∣
x
⃗
^
;
W
)
]
=
N
log
(
1
2
π
σ
)
−
1
2
σ
2
∑
i
=
1
N
(
y
i
−
x
⃗
^
i
T
W
)
2
,
(3.7)
\begin{aligned}\mathcal{L}_{MLE}(W)&=\sum_{i=1}^N\log[p(y_i|\hat{\vec{x}};W)]\\&=N\log(\frac{1}{\sqrt{2\pi}\sigma})-\frac{1}{2\sigma^2}\sum_{i=1}^N(y_i-\hat{\vec{x}}_i^TW)^2,\end{aligned}\tag{3.7}
LMLE(W)=i=1∑Nlog[p(yi∣x^;W)]=Nlog(2πσ1)−2σ21i=1∑N(yi−x^iTW)2,(3.7)
因此优化目标变成了 W ^ = arg min W L M L E ( W ) = arg min W ∑ i = 1 N ( y i − x ⃗ ^ i T W ) 2 \hat{W}=\underset{W}{\argmin} \mathcal{L}_{MLE}(W)=\underset{W}{\argmin}\sum_{i=1}^N(y_i-\hat{\vec{x}}_i^TW)^2 W^=WargminLMLE(W)=Wargmin∑i=1N(yi−x^iTW)2,与最小二乘法相同,可以使用式(3.5)求解。
3.3. 正则化
3.3.1. 为什么要正则化
从前面的推论可以知道参数矩阵的解析解,一般来说,但当样本量较小时,可能导致 X ^ T X ^ \hat{X}^T\hat{X} X^TX^ 不可逆,无法求出解析解。从拟合情况看,如果不能满足 N ≫ p N\gg p N≫p,则相较于维数来说样本不足,容易导致过拟合问题,对于过拟合情况可以用三种方法:
- 采集更多数据;
- 特征选择/特征提取(PCA,见本文第5.3节)
- 正则化(本节介绍)
3.3.2. 范数介绍
一般地,一个向量 L p L_p Lp 的范数可以定义为 ∥ x ⃗ ∥ p = ∑ i = 1 m ∣ x i ∣ p p \left \| \vec{x} \right \|_p=\sqrt[p]{\sum_{i=1}^m\left | x_i \right |^p} ∥x∥p=p∑i=1m∣xi∣p。
- L1范数:Lasso,即为向量各元素的绝对值之和;
- L2范数:Ridge, ∥ x ⃗ ∥ 2 = ∑ i = 1 m ∣ x i ∣ 2 2 = x ⃗ T x ⃗ \left \| \vec{x} \right \|_2=\sqrt[2]{\sum_{i=1}^m\left | x_i \right |^2}=\vec{x}^T\vec{x} ∥x∥2=2∑i=1m∣xi∣2=xTx;
3.3.3. L2正则化
正则化的框架:
J
(
W
)
=
L
(
W
)
+
λ
P
(
W
)
,
(3.8)
\mathcal{J}(W)=\mathcal{L}(W)+\lambda P(W),\tag{3.8}
J(W)=L(W)+λP(W),(3.8)
即在原有损失函数上加上一个正则化惩罚;
对于L2正则化,则对应的惩罚项为
W
T
W
W^TW
WTW,而优化函数即为:
J
(
W
)
=
L
(
W
)
+
λ
W
T
W
,
(3.9)
\mathcal{J}(W)=\mathcal{L}(W)+\lambda W^TW,\tag{3.9}
J(W)=L(W)+λWTW,(3.9)
这个优化函数也被称为岭回归;
对式(3.9)进行化简和求导(同第3.2.1.节)可以得到新的解析解:
W
^
=
(
X
^
T
X
^
+
λ
I
)
−
1
X
T
Y
,
(3.9)
\hat{W}=(\hat{X}^T\hat{X}+\lambda I)^{-1}X^TY,\tag{3.9}
W^=(X^TX^+λI)−1XTY,(3.9)
解决了前面提到的不可逆的问题。
3.3.4. 从贝叶斯角度理解线性回归和L2正则化
从贝叶斯派的角度求解线性回归问题,则是已知
X
X
X 的分布
p
(
x
⃗
)
p(\vec{x})
p(x) 和
Y
Y
Y 的分布
p
(
y
)
p(y)
p(y),对于参数矩阵假设一个先验分布
p
(
W
)
p(W)
p(W),采用最大后验估计法求解:
W
^
=
arg max
W
p
(
W
∣
y
)
.
(3.10)
\hat{W}=\argmax_W p(W|y). \tag{3.10}
W^=Wargmaxp(W∣y).(3.10)
假设参数矩阵服从正态分布,即
W
∼
N
(
0
⃗
,
Σ
0
)
W\sim \mathcal{N}(\vec{0},\Sigma_0)
W∼N(0,Σ0),则根据贝叶斯公式计算后验概率:
p
(
W
∣
y
)
=
p
(
y
∣
W
)
⋅
p
(
W
)
p
(
y
)
p(W|y)=\frac{p(y|W)\cdot p(W)}{p(y)}
p(W∣y)=p(y)p(y∣W)⋅p(W),因为
p
(
y
)
p(y)
p(y) 不随参数变化,所以
W
^
=
arg max
W
p
(
W
∣
y
)
=
arg max
W
{
p
(
y
∣
W
)
⋅
p
(
W
)
p
(
y
)
}
=
arg max
W
{
p
(
y
∣
W
)
⋅
p
(
W
)
}
.
(3.11)
\begin{aligned}\hat{W}&=\argmax_Wp(W|y)\\ &=\argmax_W\left \{\frac{p(y|W)\cdot p(W)}{p(y)} \right \}\\ &=\argmax_W\left \{p(y|W)\cdot p(W)\right \}.\end{aligned}\tag{3.11}
W^=Wargmaxp(W∣y)=Wargmax{p(y)p(y∣W)⋅p(W)}=Wargmax{p(y∣W)⋅p(W)}.(3.11)
根据式(3.6),因为
p
(
x
⃗
)
p(\vec{x})
p(x) 已知,所以也可以写作:
y
∣
W
∼
N
(
x
⃗
^
W
,
σ
2
I
)
,
(3.12)
y|W\sim N(\hat{\vec{x}}W,\sigma^2I), \tag{3.12}
y∣W∼N(x^W,σ2I),(3.12)
因此联立参数矩阵
W
W
W 的概率密度函数,可得:
p
(
y
∣
W
)
⋅
p
(
W
)
=
1
2
π
σ
2
1
2
π
σ
0
2
⋅
exp
{
−
(
y
−
x
⃗
^
T
W
)
T
(
y
−
x
⃗
^
T
W
)
2
σ
2
−
W
T
Σ
0
−
1
W
2
}
(3.13)
p(y|W)\cdot p(W)=\frac{1}{\sqrt{2\pi}\sigma^2}\frac{1}{\sqrt{2\pi}\sigma_0^2}\cdot \exp{\left\{-\frac{(y-\hat{\vec{x}}^TW)^T(y-\hat{\vec{x}}^TW)}{2\sigma^2}-\frac{W^T\Sigma_0^{-1}W}{2}\right\}}\tag{3.13}
p(y∣W)⋅p(W)=2πσ212πσ021⋅exp{−2σ2(y−x^TW)T(y−x^TW)−2WTΣ0−1W}(3.13)
当
Σ
0
=
σ
0
2
I
\Sigma_0=\sigma_0^2I
Σ0=σ02I(即方差各向同性)时,有
W
T
Σ
0
−
1
W
2
=
W
T
W
2
σ
0
2
=
∥
W
∥
2
2
σ
0
2
\frac{W^T\Sigma_0^{-1}W}{2}=\frac{W^TW}{2\sigma_0^2}=\frac{\left \| W \right \|^2}{2\sigma_0^2}
2WTΣ0−1W=2σ02WTW=2σ02∥W∥2,因此:
W
^
=
arg max
W
{
p
(
W
∣
y
)
}
=
arg max
W
{
p
(
y
∣
W
)
⋅
p
(
W
)
}
=
arg max
W
{
log
(
p
(
y
∣
W
)
⋅
p
(
W
)
)
}
=
arg max
W
{
(
y
−
x
⃗
^
T
W
)
T
(
y
−
x
⃗
^
T
W
)
2
σ
2
+
W
T
W
2
σ
0
2
}
=
arg max
W
{
(
y
−
x
⃗
^
T
W
)
T
(
y
−
x
⃗
^
T
W
)
+
σ
2
σ
0
2
W
T
W
}
,
(3.14)
\begin{aligned}\hat{W}&=\argmax_W\left \{p(W|y) \right \}\\ &=\argmax_W\left \{ p(y|W)\cdot p(W)\right \} \\ &=\argmax_W\left \{\log( p(y|W)\cdot p(W))\right \} \\ &=\argmax_W\left \{\frac{(y-\hat{\vec{x}}^TW)^T(y-\hat{\vec{x}}^TW)}{2\sigma^2}+\frac{W^TW}{2\sigma_0^2} \right \} \\ &=\argmax_W\left \{(y-\hat{\vec{x}}^TW)^T(y-\hat{\vec{x}}^TW)+\frac{\sigma^2}{\sigma_0^2}W^TW\right \},\end{aligned}\tag{3.14}
W^=Wargmax{p(W∣y)}=Wargmax{p(y∣W)⋅p(W)}=Wargmax{log(p(y∣W)⋅p(W))}=Wargmax{2σ2(y−x^TW)T(y−x^TW)+2σ02WTW}=Wargmax{(y−x^TW)T(y−x^TW)+σ02σ2WTW},(3.14)
此时的优化函数和L2正则化是相同的,只是将 λ \lambda λ 替换为了 σ 2 σ 0 2 \frac{\sigma^2}{\sigma_0^2} σ02σ2.
若取消方差各向同性假设,使用全量数据求解参数矩阵:
P
(
W
∣
X
,
Y
)
∝
exp
{
−
1
2
σ
2
(
Y
−
X
W
)
T
(
Y
−
X
W
)
−
1
2
W
T
Σ
0
−
1
W
}
=
exp
{
−
1
2
σ
2
(
Y
T
Y
−
2
Y
T
X
W
+
W
T
X
T
X
W
)
−
1
2
W
T
Σ
0
−
1
W
}
∝
exp
{
−
1
2
[
W
T
(
σ
−
2
X
T
X
+
Σ
0
−
1
)
W
]
⏟
Quadratic term
+
[
σ
−
2
Y
T
X
W
]
⏟
Linear term
}
,
(3.15)
\begin{aligned} P(W|X,Y)&\propto \exp\left \{ -\frac{1}{2\sigma^2}(Y-XW)^T(Y-XW)-\frac{1}{2}W^T\Sigma_0^{-1}W \right \}\\ &= \exp\left \{ -\frac{1}{2\sigma^2}(Y^TY-2Y^TXW+W^TX^TXW)-\frac{1}{2}W^T\Sigma_0^{-1}W \right \}\\ &\propto \exp\left \{ \underset{\text{Quadratic term}}{\underbrace{-\frac{1}{2}\left [ W^T(\sigma^{-2}X^TX+\Sigma_0^{-1})W \right ]}}+\underset{\text{Linear term}}{\underbrace{[\sigma^{-2}Y^TXW]}} \right \}, \end{aligned}\tag{3.15}
P(W∣X,Y)∝exp{−2σ21(Y−XW)T(Y−XW)−21WTΣ0−1W}=exp{−2σ21(YTY−2YTXW+WTXTXW)−21WTΣ0−1W}∝exp⎩
⎨
⎧Quadratic term
−21[WT(σ−2XTX+Σ0−1)W]+Linear term
[σ−2YTXW]⎭
⎬
⎫,(3.15)
其中Quadratic term表示变量的二次项,Linear term表示变量的一次项。
另一方面,将式(2.3)(高斯分布PDF标准形式,见另一篇帖子:机器学习[白班推导](一)):
P
(
x
⃗
)
=
1
(
2
π
)
p
2
∣
Σ
∣
1
2
exp
{
−
1
2
[
(
x
⃗
−
μ
⃗
)
T
Σ
−
1
(
x
⃗
−
μ
⃗
)
]
}
=
1
(
2
π
)
p
2
∣
Σ
∣
1
2
exp
{
−
1
2
[
x
⃗
T
Σ
−
1
x
⃗
−
2
μ
⃗
T
Σ
−
1
x
⃗
+
μ
⃗
T
Σ
−
1
μ
⃗
]
}
∝
exp
{
−
1
2
[
x
⃗
T
Σ
−
1
x
⃗
]
⏟
Quadratic term
+
μ
⃗
T
Σ
−
1
x
⃗
⏟
Linear term
}
,
(3.16)
\begin{aligned} P(\vec{x})&=\frac{1}{(2\pi)^{\frac{p}{2}}|\Sigma|^{\frac{1}{2}}}\exp\left \{-\frac{1}{2}\left[(\vec{x}-\vec{\mu})^T\Sigma^{-1}(\vec{x}-\vec{\mu}) \right ]\right \}\\ &=\frac{1}{(2\pi)^{\frac{p}{2}}|\Sigma|^{\frac{1}{2}}}\exp\left \{-\frac{1}{2}\left[ \vec{x}^T\Sigma^{-1}\vec{x}-2\vec{\mu}^T\Sigma^{-1}\vec{x}+\vec{\mu}^T\Sigma^{-1}\vec{\mu} \right ]\right \}\\ &\propto \exp\left \{\underset{\text{Quadratic term}}{\underbrace{-\frac{1}{2}\left[ \vec{x}^T\Sigma^{-1}\vec{x}\right ]}}+\underset{\text{Linear term}}{\underbrace{\vec{\mu}^T\Sigma^{-1}\vec{x}}} \right \},\end{aligned}\tag{3.16}
P(x)=(2π)2p∣Σ∣211exp{−21[(x−μ)TΣ−1(x−μ)]}=(2π)2p∣Σ∣211exp{−21[xTΣ−1x−2μTΣ−1x+μTΣ−1μ]}∝exp⎩
⎨
⎧Quadratic term
−21[xTΣ−1x]+Linear term
μTΣ−1x⎭
⎬
⎫,(3.16)
根据二次项对应系数矩阵可以求得方差矩阵,进而根据一次项对应系数矩阵可以求得均值向量,具体计算为:
{
Σ
W
−
1
=
σ
−
2
X
T
X
+
Σ
0
−
1
μ
⃗
W
T
Σ
W
−
1
=
σ
−
2
Y
T
X
⟹
{
Σ
W
=
(
σ
−
2
X
T
X
+
Σ
0
−
1
)
−
1
μ
⃗
W
=
(
X
T
X
+
σ
2
Σ
0
−
1
)
−
1
X
T
Y
,
(3.17)
\begin{aligned} &\left\{ \begin{matrix} \Sigma_W^{-1}=\sigma^{-2}X^TX+\Sigma_0^{-1}\\ \vec{\mu}_W^T\Sigma_W^{-1}=\sigma^{-2}Y^TX \end{matrix} \right.\\ \Longrightarrow &\left\{ \begin{matrix} \Sigma_W=(\sigma^{-2}X^TX+\Sigma_0^{-1})^{-1}\\ \vec{\mu}_W=(X^TX+\sigma^{2}\Sigma_0^{-1})^{-1}X^TY \end{matrix}, \right.\tag{3.17} \end{aligned}
⟹{ΣW−1=σ−2XTX+Σ0−1μWTΣW−1=σ−2YTX{ΣW=(σ−2XTX+Σ0−1)−1μW=(XTX+σ2Σ0−1)−1XTY,(3.17)
当满足方差各向同性 Σ 0 = σ 0 2 I \Sigma_0=\sigma_0^2I Σ0=σ02I 时,均值 μ ⃗ W \vec{\mu}_W μW 的计算结果与式(3.9)的解析解形式相同,只是将 λ \lambda λ 替换为了 σ 2 σ 0 2 \frac{\sigma^2}{\sigma_0^2} σ02σ2.
3.4. 线性回归的特性
线性回归算法作为重要的基础算法,具有3个特性,也成为了以线性回归为基础的改进模型的3个发展方向:
- 线性:为了能解决非线性问题,从3个角度拓展了线性回归的算法:
- 属性非线性:特征建模(例如多项式回归)
- 全局非线性:线性分类(使用非线性激活函数)
- 系数非线性:多层感知机/神经网络
- 全局性(通常认为变量之间的线性关系是恒定一致的):为了能解决非全局的线性拟合问题,可以使用线性样条回归(类似于将变量之间的关系看做分段线性的函数,将数据划分为子集,分别对不同子集拟合,得到分段线性关系)、决策树等算法改进。
- 数据未加工:可以使用PCA、流形学习(高维数据的低维映射)等算法解决。