线性回归
1. 线性回归简介
1.1 模型描述
对于有 m 个样本的数据集 D,每个样本
x
=
[
x
1
,
x
2
,
…
,
x
d
]
T
\boldsymbol x=[x_1, x_2,\dots,x_d]^T
x=[x1,x2,…,xd]T 是一个 d 维的向量,样本
x
\boldsymbol x
x 对应的真实输出是
y
y
y,线性回归的目的是学习一个关于样本属性的线性函数,使得函数的输出值尽可能地接近
y
y
y。线性函数的形式如下:
f
(
x
)
=
w
1
x
1
+
w
2
x
2
+
⋯
+
w
d
x
d
+
b
f(\boldsymbol x)=w_1x_1+w_2x_2+\dots+w_d x_d+b
f(x)=w1x1+w2x2+⋯+wdxd+b 用向量形式表示的话,
f
(
x
)
=
w
T
x
+
b
f(\boldsymbol x)=\boldsymbol w^T\boldsymbol x+b
f(x)=wTx+b。那么如何衡量预测值与真实值之间的差距呢?线性回归使用的是均方误差,即
(1)
min
w
,
b
L
=
min
w
,
b
∑
i
=
1
m
(
f
(
x
i
)
−
y
i
)
2
\min_{\boldsymbol w,b}L=\min_{\boldsymbol w,b}\sum_{i=1}^m(f(\boldsymbol x_i)-y_i)^2 \tag{1}
w,bminL=w,bmini=1∑m(f(xi)−yi)2(1) 其中
x
i
\boldsymbol x_i
xi 和
y
i
y_i
yi 分别表示第 i 个样本的特征和真实输出值。
1.2 求解方法一:矩阵运算
如果我们用矩阵
X
∈
R
m
×
(
d
+
1
)
\boldsymbol X\in R^{m\times (d+1)}
X∈Rm×(d+1) 来表示样本矩阵,用
w
^
=
(
w
;
b
)
∈
R
(
d
+
1
)
×
1
\boldsymbol{\hat{w}}=(\boldsymbol w;b) \in R^{(d+1)\times 1}
w^=(w;b)∈R(d+1)×1 来表示权重系数,用
y
∈
R
m
×
1
\boldsymbol y \in R^{m\times 1}
y∈Rm×1 来表示样本真实输出值组成的向量,即
X
=
[
x
1
T
1
x
2
T
1
…
…
x
m
T
1
]
,
w
^
=
[
w
1
w
2
…
w
d
b
]
=
[
w
b
]
,
y
=
[
y
1
y
2
…
y
m
]
\boldsymbol X=\begin{bmatrix} \boldsymbol x_1^T & 1 \\ \boldsymbol x_2^T & 1 \\ \dots & \dots \\ \boldsymbol x_m^T & 1 \end{bmatrix}, \quad \boldsymbol{\hat{w}}=\begin{bmatrix} w_1 \\ w_2 \\ \dots \\ w_d \\ b \end{bmatrix}=\begin{bmatrix} \boldsymbol w \\ b \end{bmatrix}, \quad \boldsymbol y=\begin{bmatrix} y_1 \\ y_2 \\ \dots \\ y_m \end{bmatrix}
X=⎣⎢⎢⎡x1Tx2T…xmT11…1⎦⎥⎥⎤,w^=⎣⎢⎢⎢⎢⎡w1w2…wdb⎦⎥⎥⎥⎥⎤=[wb],y=⎣⎢⎢⎡y1y2…ym⎦⎥⎥⎤ 可以看出,
X
w
^
\boldsymbol X \boldsymbol{\hat{w}}
Xw^ 的第
i
i
i 行就是
w
T
x
i
+
b
\boldsymbol{w}^T \boldsymbol x_i+b
wTxi+b,也就是
f
(
x
i
)
f(\boldsymbol x_i)
f(xi)。所以优化目标公式 (1) 等价于:
min
w
^
∥
X
w
^
−
y
∥
2
2
\min_{\boldsymbol{\hat{w}}}\Vert \boldsymbol X \boldsymbol{\hat{w}}- \boldsymbol y \Vert_2^2
w^min∥Xw^−y∥22 因为
X
w
^
−
y
\boldsymbol X \boldsymbol{\hat{w}}- \boldsymbol y
Xw^−y 是一个向量,所以
L
=
∥
X
w
^
−
y
∥
2
2
=
(
X
w
^
−
y
)
T
(
X
w
^
−
y
)
L=\Vert \boldsymbol X \boldsymbol{\hat{w}}- \boldsymbol y \Vert_2^2=(\boldsymbol X \boldsymbol{\hat{w}}- \boldsymbol y)^T(\boldsymbol X \boldsymbol{\hat{w}}- \boldsymbol y)
L=∥Xw^−y∥22=(Xw^−y)T(Xw^−y) 对
w
^
\boldsymbol{\hat{w}}
w^ 求导数,可得:
∂
L
∂
w
^
=
2
X
T
y
−
2
X
T
X
w
^
\frac{\partial L}{\partial \boldsymbol{\hat{w}}}=2\boldsymbol X^T \boldsymbol y-2\boldsymbol X^T \boldsymbol X \boldsymbol{\hat{w}}
∂w^∂L=2XTy−2XTXw^ 令导数为 0, 可以解得:
w
^
=
(
X
T
X
)
−
1
X
T
y
\boldsymbol{\hat{w}}=(\boldsymbol X^T \boldsymbol X)^{-1} \boldsymbol X^T \boldsymbol y
w^=(XTX)−1XTy
1.3 求解方法二:梯度下降
使用梯度下降方法(Gradient Descent)迭代更新参数,首先计算损失函数公式(1)对参数的偏导数,如下:
∂
L
∂
w
j
=
∑
i
=
1
m
2
(
f
(
x
i
)
−
y
i
)
x
i
j
\frac{\partial L}{\partial w_j}=\sum_{i=1}^m2(f(\boldsymbol x_i)-y_i)x_{ij}
∂wj∂L=i=1∑m2(f(xi)−yi)xij
∂
L
∂
b
=
∑
i
=
1
m
2
(
f
(
x
i
)
−
y
i
)
\frac{\partial L}{\partial b}=\sum_{i=1}^m2(f(\boldsymbol x_i)-y_i)
∂b∂L=i=1∑m2(f(xi)−yi) 其中
x
i
j
x_{ij}
xij 表示第
i
i
i 个样本的第
j
j
j 个属性。然后设定一个学习率
α
\alpha
α,按以下公式更新参数:
w
j
=
w
j
−
α
∂
L
∂
w
j
w_j = w_j-\alpha \frac{\partial L}{\partial w_j}
wj=wj−α∂wj∂L
b
=
b
−
α
∂
L
∂
b
b = b - \alpha \frac{\partial L}{\partial b}
b=b−α∂b∂L 直到损失函数的值收敛到一个最小值。
2. 用最大似然和贝叶斯后验看线性回归
2.1 最大似然
为了书写方便,下面我们用
w
\boldsymbol w
w 表示上面的
w
^
\boldsymbol{\hat{w}}
w^,用
x
i
\boldsymbol x_i
xi 表示第
i
i
i 个样本的特征拼接上常数 1 之后的 (d+1) 向量。则
f
(
x
i
)
=
w
T
x
i
f(\boldsymbol x_i)=\boldsymbol w^T \boldsymbol x_i
f(xi)=wTxi。 假设样本
x
i
\boldsymbol x_i
xi 的输出值
y
i
y_i
yi 是一个随机变量,其服从高斯分布
N
(
μ
,
σ
1
2
)
N(\boldsymbol \mu, \sigma_1^2)
N(μ,σ12),其中
μ
=
f
(
x
i
)
\boldsymbol \mu=f(\boldsymbol x_i)
μ=f(xi),即允许真实值
y
i
y_i
yi 在
f
(
x
i
)
f(\boldsymbol x_i)
f(xi) 的小范围内波动。在给定参数
w
\boldsymbol w
w 的情况下,生成
y
i
y_i
yi 的似然为:
p
(
y
i
∣
w
)
=
N
(
f
(
x
i
)
,
σ
1
2
)
=
1
2
π
σ
1
e
−
(
y
i
−
f
(
x
i
)
)
2
2
π
σ
1
p(y_i|\boldsymbol w)=N(f(\boldsymbol x_i), \sigma_1^2)=\frac{1}{\sqrt{2\pi}\sigma_1}e^{-\frac{(y_i-f(\boldsymbol x_i))^2}{2\pi \sigma_1}}
p(yi∣w)=N(f(xi),σ12)=2πσ11e−2πσ1(yi−f(xi))2 则对于整个数据集来说,似然为每个样本似然的乘积:
∏
i
=
1
m
p
(
y
i
∣
w
)
=
∏
i
=
1
m
N
(
f
(
x
i
)
,
σ
1
2
)
=
∏
i
=
1
m
1
2
π
σ
1
e
−
(
y
i
−
f
(
x
i
)
)
2
2
π
σ
1
\prod _{i=1}^m p(y_i|\boldsymbol w)=\prod _{i=1}^m N(f(\boldsymbol x_i), \sigma_1^2)=\prod _{i=1}^m \frac{1}{\sqrt{2\pi}\sigma_1}e^{-\frac{(y_i-f(\boldsymbol x_i))^2}{2\pi \sigma_1}}
i=1∏mp(yi∣w)=i=1∏mN(f(xi),σ12)=i=1∏m2πσ11e−2πσ1(yi−f(xi))2 由于连乘容易导致数据溢出,因此取一般会对似然取对数,得到
log
∏
i
=
1
m
p
(
y
i
∣
w
)
=
∑
i
=
1
m
log
p
(
y
i
∣
w
)
=
∑
i
=
1
m
−
(
(
y
i
−
f
(
x
i
)
)
2
2
π
σ
1
+
1
2
log
2
π
+
log
σ
1
)
\log \prod _{i=1}^m p(y_i|\boldsymbol w)=\sum_{i=1}^m \log p(y_i|\boldsymbol w)=\sum_{i=1}^m -(\frac{(y_i-f(\boldsymbol x_i))^2}{2\pi \sigma_1}+\frac{1}{2}\log 2\pi+\log \sigma_1)
logi=1∏mp(yi∣w)=i=1∑mlogp(yi∣w)=i=1∑m−(2πσ1(yi−f(xi))2+21log2π+logσ1) 因为
2
π
,
σ
1
2\pi, \sigma_1
2π,σ1 与参数
w
\boldsymbol w
w 无关,可以看作是常数从而去掉,所以最大化似然等价于最小化下列式子:
min
w
∑
i
=
1
m
(
y
i
−
f
(
x
i
)
)
2
\min_{\boldsymbol w} \sum_{i=1}^m (y_i-f(\boldsymbol x_i))^2
wmini=1∑m(yi−f(xi))2 上述式子与 1.1 中的公式(1)完全一致。从上面分析,我们可以看出,最大化似然等价于最小化均方误差。
2.2 贝叶斯后验
假设参数
w
\boldsymbol w
w 服从先验分布
N
(
0
,
σ
2
2
)
N(0,\sigma_2^2)
N(0,σ22),即:
p
(
w
)
=
1
2
π
σ
2
e
−
w
2
2
π
σ
2
p(\boldsymbol w)=\frac{1}{\sqrt{2\pi}\sigma_2}e^{-\frac{\boldsymbol w^2}{2\pi \sigma_2}}
p(w)=2πσ21e−2πσ2w2 给定数据集 D,则可以得到
w
\boldsymbol w
w 的后验概率如下:
p
(
w
∣
y
)
=
p
(
w
)
p
(
y
∣
w
)
p
(
y
)
=
p
(
w
)
∏
i
=
1
m
p
(
y
i
∣
w
)
p
(
y
)
p(\boldsymbol w|\boldsymbol y)=\frac{p(\boldsymbol w)p(\boldsymbol y|\boldsymbol w)}{p(\boldsymbol y)}=\frac{p(\boldsymbol w)\prod_{i=1}^m p(y_i|\boldsymbol w)}{p(\boldsymbol y)}
p(w∣y)=p(y)p(w)p(y∣w)=p(y)p(w)∏i=1mp(yi∣w) 我们想找到一个
w
\boldsymbol w
w 使得上述后验概率最大,由于分母
p
(
y
)
p(\boldsymbol y)
p(y) 与参数
w
\boldsymbol w
w 的取值没有关系,因此可以去掉。再对后验概率取对数,得到:
log
p
(
w
∣
y
)
=
∑
i
=
1
m
log
p
(
y
i
∣
w
)
+
log
p
(
w
)
\log p(\boldsymbol w|\boldsymbol y)=\sum_{i=1}^m \log p(y_i|\boldsymbol w)+\log p(\boldsymbol w)
logp(w∣y)=i=1∑mlogp(yi∣w)+logp(w) 展开得到:
log
p
(
w
∣
y
)
=
∑
i
=
1
m
−
(
(
y
i
−
f
(
x
i
)
)
2
2
π
σ
1
+
1
2
log
2
π
+
log
σ
1
)
−
w
2
2
π
σ
2
−
1
2
log
2
π
−
log
σ
2
\log p(\boldsymbol w|\boldsymbol y)=\sum_{i=1}^m -(\frac{(y_i-f(\boldsymbol x_i))^2}{2\pi \sigma_1}+\frac{1}{2}\log 2\pi+\log \sigma_1)-\frac{\boldsymbol w^2}{2\pi \sigma_2}-\frac{1}{2}\log 2\pi-\log \sigma_2
logp(w∣y)=i=1∑m−(2πσ1(yi−f(xi))2+21log2π+logσ1)−2πσ2w2−21log2π−logσ2 把和
w
\boldsymbol w
w 无关的项去掉之后,最大化上面式子等价于最小化下列式子:
min
w
1
2
π
σ
1
∑
i
=
1
m
(
y
i
−
f
(
x
i
)
)
2
+
w
2
2
π
σ
2
\min_{\boldsymbol w} \frac{1}{2\pi \sigma_1} \sum_{i=1}^m (y_i-f(\boldsymbol x_i))^2+\frac{\boldsymbol w^2}{2\pi \sigma_2}
wmin2πσ11i=1∑m(yi−f(xi))2+2πσ2w2 即:
min
w
∑
i
=
1
m
(
y
i
−
f
(
x
i
)
)
2
+
λ
∥
w
∥
2
\min_{\boldsymbol w} \sum_{i=1}^m (y_i-f(\boldsymbol x_i))^2+ \lambda \Vert \boldsymbol w \Vert^2
wmini=1∑m(yi−f(xi))2+λ∥w∥2 其中
λ
=
σ
1
/
σ
2
\lambda=\sigma_1 / \sigma_2
λ=σ1/σ2。可以看出,最大化后验概率等价于加了正则项的线性回归。