1、线性回归的基本形式
给定数据集
D
=
{
(
x
⃗
1
,
y
1
)
,
(
x
⃗
2
,
y
2
)
,
…
,
(
x
⃗
m
,
y
m
)
}
\mathcal{D} = \left\{ (\vec x_1,y_1),(\vec x_2,y_2),…,(\vec x_m,y_m) \right\}
D={(x1,y1),(x2,y2),…,(xm,ym)} ,共m个样本,其中
x
⃗
i
=
(
x
i
1
,
x
i
2
,
…
,
x
i
d
)
\vec x_i = (x_{i1},x_{i2},…,x_{id})
xi=(xi1,xi2,…,xid) ,代表每条数据的d个不同属性,比如房价预测问题中的房屋面积,卧室数量,建造年份等。
y
i
∈
R
\quad y_i \in R
yi∈R,代表房屋的价格。回归问题主要是训练一个模型,通过房屋的不同属性拟合出房屋价格,即:
f
(
x
⃗
)
=
w
1
x
1
+
w
2
x
2
+
…
+
w
d
x
d
+
b
f(\vec x) = w_1x_1 + w_2x_2 +\ldots +w_dx_d + b
f(x)=w1x1+w2x2+…+wdxd+b
也可写成向量的形式:
f
(
x
⃗
)
=
w
⃗
T
x
⃗
+
b
f(\vec x) = \vec w^\mathrm{T} \vec x + b
f(x)=wTx+b
其中
w
⃗
=
(
w
1
,
w
2
,
…
,
w
d
)
\vec w = (w_1,w_2,\ldots,w_d)
w=(w1,w2,…,wd) 。
通过训练,求得最优的 w ⃗ , b \vec w, b w,b,线性回归模型也就确定下来了。
为了理解方便,我们先考虑一种简单的情形,输入数据的属性只有一个,即研究房屋的面积与房屋价格之间的关系,不考虑价格与其他房屋属性之间的关系。线性回归模型试图寻找最优的 w , b w, b w,b,使得预测的房价 f ( x i ) = w x i + b f(x_i) = wx_i + b f(xi)=wxi+b ,满足: f ( x i ) f(x_i) f(xi)尽可能的接近真实的房屋价格 y i y_i yi。
2、误差函数
如何训练求得最优的 w , b w,b w,b 呢?
关键在于如何衡量
f
(
x
)
f(x)
f(x)和
y
y
y 之间的差别,常用的做法是使用均方误差进行性能度量,当均方误差最小时,此时的
w
,
b
w, b
w,b 即为最优解。即:
(
w
∗
,
b
∗
)
=
a
r
g
min
w
,
b
∑
i
=
1
m
(
f
(
x
i
)
−
y
i
)
2
=
a
r
g
min
w
,
b
∑
i
=
1
m
(
y
i
−
w
x
i
−
b
)
2
\begin{aligned} (w^*,b^*) & = arg \min \limits_{w,b} \sum_{i=1}^m(f( x_i) - y_i)^2 \\& = arg \min \limits_{w,b} \sum_{i=1}^m(y_i - wx_i - b)^2 \end{aligned}
(w∗,b∗)=argw,bmini=1∑m(f(xi)−yi)2=argw,bmini=1∑m(yi−wxi−b)2
注:均方误差的几何意义:欧氏距离。
3、如何求得最优解
3.1 最小二乘法
只要我们能够做到极小化误差函数,就能够得到最优解。求解 w , b w,b w,b 使得 E ( w , b ) = ∑ i = 1 m ( y i − w x i − b ) 2 E_{(w,b)} = \sum_{i=1}^m(y_i - wx_i - b)^2 E(w,b)=∑i=1m(yi−wxi−b)2 最小化的过程,称为线性回归的最小二乘“参数估计”。
因为这里的误差函数
E
(
w
,
b
)
E_{(w,b)}
E(w,b) 是关于
w
,
b
w,b
w,b 的凸函数,根据凸函数的定义可知,当他关于
w
和
b
w和 b
w和b 的导函数为0时,可以求得
w
w
w和
b
b
b的最优解。
∂
E
(
w
,
b
)
∂
w
=
∂
∂
w
[
∑
i
=
1
m
(
y
i
−
w
x
i
−
b
)
2
]
=
∑
i
=
1
m
∂
∂
w
[
(
y
i
−
w
x
i
−
b
)
2
]
=
∑
i
=
1
m
[
2
⋅
(
y
i
−
w
x
i
−
b
)
⋅
(
−
x
i
)
]
=
∑
i
=
1
m
[
2
⋅
(
w
x
i
2
−
y
i
x
i
+
b
x
i
)
]
=
2
⋅
(
w
∑
i
=
1
m
x
i
2
−
∑
i
=
1
m
y
i
x
i
+
b
∑
i
=
1
m
x
i
)
=
2
(
w
∑
i
=
1
m
x
i
2
−
∑
i
=
1
m
(
y
i
−
b
)
x
i
)
\begin{aligned} \cfrac{\partial E_{(w, b)}}{\partial w}&=\cfrac{\partial}{\partial w} \left[\sum_{i=1}^{m}\left(y_{i}-w x_{i}-b\right)^{2}\right] \\ &= \sum_{i=1}^{m}\cfrac{\partial}{\partial w} \left[\left(y_{i}-w x_{i}-b\right)^{2}\right] \\ &= \sum_{i=1}^{m}\left[2\cdot\left(y_{i}-w x_{i}-b\right)\cdot (-x_i)\right] \\ &= \sum_{i=1}^{m}\left[2\cdot\left(w x_{i}^2-y_i x_i +bx_i\right)\right] \\ &= 2\cdot\left(w\sum_{i=1}^{m} x_{i}^2-\sum_{i=1}^{m}y_i x_i +b\sum_{i=1}^{m}x_i\right) \\ &=2\left(w \sum_{i=1}^{m} x_{i}^{2}-\sum_{i=1}^{m}\left(y_{i}-b\right) x_{i}\right) \end{aligned}
∂w∂E(w,b)=∂w∂[i=1∑m(yi−wxi−b)2]=i=1∑m∂w∂[(yi−wxi−b)2]=i=1∑m[2⋅(yi−wxi−b)⋅(−xi)]=i=1∑m[2⋅(wxi2−yixi+bxi)]=2⋅(wi=1∑mxi2−i=1∑myixi+bi=1∑mxi)=2(wi=1∑mxi2−i=1∑m(yi−b)xi)
∂ E ( w , b ) ∂ b = ∂ ∂ b [ ∑ i = 1 m ( y i − w x i − b ) 2 ] = ∑ i = 1 m ∂ ∂ b [ ( y i − w x i − b ) 2 ] = ∑ i = 1 m [ 2 ⋅ ( y i − w x i − b ) ⋅ ( − 1 ) ] = ∑ i = 1 m [ 2 ⋅ ( b − y i + w x i ) ] = 2 ⋅ [ ∑ i = 1 m b − ∑ i = 1 m y i + ∑ i = 1 m w x i ] = 2 ( m b − ∑ i = 1 m ( y i − w x i ) ) \begin{aligned} \cfrac{\partial E_{(w, b)}}{\partial b}&=\cfrac{\partial}{\partial b} \left[\sum_{i=1}^{m}\left(y_{i}-w x_{i}-b\right)^{2}\right] \\ &=\sum_{i=1}^{m}\cfrac{\partial}{\partial b} \left[\left(y_{i}-w x_{i}-b\right)^{2}\right] \\ &=\sum_{i=1}^{m}\left[2\cdot\left(y_{i}-w x_{i}-b\right)\cdot (-1)\right] \\ &=\sum_{i=1}^{m}\left[2\cdot\left(b-y_{i}+w x_{i}\right)\right] \\ &=2\cdot\left[\sum_{i=1}^{m}b-\sum_{i=1}^{m}y_{i}+\sum_{i=1}^{m}w x_{i}\right] \\ &=2\left(m b-\sum_{i=1}^{m}\left(y_{i}-w x_{i}\right)\right) \end{aligned} ∂b∂E(w,b)=∂b∂[i=1∑m(yi−wxi−b)2]=i=1∑m∂b∂[(yi−wxi−b)2]=i=1∑m[2⋅(yi−wxi−b)⋅(−1)]=i=1∑m[2⋅(b−yi+wxi)]=2⋅[i=1∑mb−i=1∑myi+i=1∑mwxi]=2(mb−i=1∑m(yi−wxi))
令:
{
∂
E
(
w
,
b
)
∂
w
=
2
(
w
∑
i
=
1
m
x
i
2
−
∑
i
=
1
m
(
y
i
−
b
)
x
i
)
=
0
∂
E
(
w
,
b
)
∂
b
=
2
(
m
b
−
∑
i
=
1
m
(
y
i
−
w
x
i
)
)
=
0
\left \{ \begin{array}{lr} \cfrac{\partial E_{(w, b)}}{\partial w} = 2\left(w \sum_{i=1}^{m} x_{i}^{2}-\sum_{i=1}^{m}\left(y_{i}-b\right) x_{i}\right) =0 &\\ \cfrac{\partial E_{(w, b)}}{\partial b} =2\left(m b-\sum_{i=1}^{m}\left(y_{i}-w x_{i}\right)\right) = 0 \end{array} \right.
⎩⎪⎨⎪⎧∂w∂E(w,b)=2(w∑i=1mxi2−∑i=1m(yi−b)xi)=0∂b∂E(w,b)=2(mb−∑i=1m(yi−wxi))=0
解得:
{
w
=
∑
i
=
1
m
y
i
(
x
i
−
x
ˉ
)
∑
i
=
1
m
x
i
2
−
1
m
(
∑
i
=
1
m
x
i
)
2
b
=
1
m
∑
i
=
1
m
(
y
i
−
w
x
i
)
\left \{ \begin{array}{lr} w=\cfrac{\sum_{i=1}^{m}y_i(x_i-\bar{x})}{\sum_{i=1}^{m}x_i^2-\cfrac{1}{m}(\sum_{i=1}^{m}x_i)^2} &\\b=\cfrac{1}{m}\sum_{i=1}^{m}(y_i-wx_i) \end{array} \right.
⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧w=∑i=1mxi2−m1(∑i=1mxi)2∑i=1myi(xi−xˉ)b=m1∑i=1m(yi−wxi)
求得 w , b w,b w,b 即可的单变量回归模型。
对于多变量回归的情况,也就是预测房价时,除了考虑房屋面积,还要考虑卧室数量,建造年份等因素。为了便于讨论。把偏置b和w整合到一个向量中(下文出现的
w
⃗
\vec w
w 遵循这个标准),此时:
w
⃗
=
(
w
1
,
w
2
,
…
,
w
d
;
b
)
\vec w = (w_1, w_2,\ldots,w_d;b)
w=(w1,w2,…,wd;b)
注:
w
⃗
\vec w
w 默认列向量,
w
⃗
T
\vec w^ \mathrm T
wT 为横向量,下同。
把m条数据的房屋价格也写成向量的形式:
y
⃗
=
(
y
1
,
y
2
,
…
,
y
m
)
\vec y = (y_1, y_2,\ldots,y_m)
y=(y1,y2,…,ym)
相应的把数据
D
\mathcal D
D 也进行改写,对于每一个数据扩展为
x
⃗
i
=
(
x
i
1
,
x
i
2
,
…
,
x
i
d
,
1
)
\vec x_i = (x_{i1},x_{i2},\ldots,x_{id},1)
xi=(xi1,xi2,…,xid,1) (下文出现的
x
⃗
i
\vec x_i
xi 遵循这个标准),整体数据集扩展为
m
×
(
d
+
1
)
m\times(d+1)
m×(d+1) 的矩阵
X
\textbf X
X:
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
]
\textbf X = \begin{bmatrix}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{bmatrix}
X=⎣⎢⎢⎢⎡x11x21⋮xm1x12x22⋮xm2⋯⋯⋱⋯ x1dx2d⋮xmd11⋮1⎦⎥⎥⎥⎤
其中,每一行代表一个数据,改行的前d个元素对应房屋的d个属性值,最后一个元素置为1。
此时对于单个样本有:
f
(
x
⃗
i
)
=
w
⃗
T
x
⃗
f(\vec x_i) = \vec w ^T \vec x
f(xi)=wTx
此时,
X
w
⃗
=
[
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
]
[
w
1
w
2
⋮
b
]
=
[
w
1
x
11
+
w
2
x
12
+
…
+
w
d
x
1
d
+
b
w
1
x
21
+
w
2
x
22
+
…
+
w
d
x
2
d
+
b
⋮
w
1
x
m
1
+
w
2
x
m
2
+
…
+
w
d
x
m
d
+
b
]
X\vec w =\begin{bmatrix}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{bmatrix} \begin{bmatrix}w_{1} \\w_{2} \\ \vdots \\b \\\end{bmatrix} = \begin{bmatrix} w_1x_{11} + w_2x_{12} +\ldots +w_dx_{1d} + b \\w_1x_{21} + w_2x_{22} +\ldots +w_dx_{2d} + b \\ \vdots \\w_1x_{m1} + w_2x_{m2} +\ldots +w_dx_{md} + b \\\end{bmatrix}
Xw=⎣⎢⎢⎢⎡x11x21⋮xm1x12x22⋮xm2⋯⋯⋱⋯ x1dx2d⋮xmd11⋮1⎦⎥⎥⎥⎤⎣⎢⎢⎢⎡w1w2⋮b⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡w1x11+w2x12+…+wdx1d+bw1x21+w2x22+…+wdx2d+b⋮w1xm1+w2xm2+…+wdxmd+b⎦⎥⎥⎥⎤
这样通过一次运算,就可求得所有的样本点的房屋价格。也不需要单独考虑 b 。
此时的最优解为:
w ^ ∗ = arg min w ^ ( y − X w ^ ) T ( y − X w ^ ) \hat{\boldsymbol{w}}^*=\underset{\hat{\boldsymbol{w}}}{\arg\min}(\boldsymbol{y}-\mathbf{X}\hat{\boldsymbol{w}})^{\mathrm{T}}(\boldsymbol{y}-\mathbf{X}\hat{\boldsymbol{w}}) w^∗=w^argmin(y−Xw^)T(y−Xw^)
均方误差为:
E
w
^
=
(
y
−
X
w
^
)
T
(
y
−
X
w
^
)
E_{\hat w}=(\boldsymbol{y}-\mathbf{X}\hat{\boldsymbol{w}})^{\mathrm{T}}(\boldsymbol{y}-\mathbf{X}\hat{\boldsymbol{w}})
Ew^=(y−Xw^)T(y−Xw^)
均方误差对
w
⃗
\vec w
w 求导:
∂
E
w
^
∂
w
^
=
2
X
T
(
X
w
^
−
y
)
\cfrac{\partial E_{\hat{\boldsymbol w}}}{\partial \hat{\boldsymbol w}}=2\mathbf{X}^{\mathrm{T}}(\mathbf{X}\hat{\boldsymbol w}-\boldsymbol{y})
∂w^∂Ew^=2XT(Xw^−y)
推导过程如下:
E
w
^
=
(
y
−
X
w
^
)
T
(
y
−
X
w
^
)
E_{\hat{\boldsymbol w}}=(\boldsymbol{y}-\mathbf{X}\hat{\boldsymbol w})^{\mathrm{T}}(\boldsymbol{y}-\mathbf{X}\hat{\boldsymbol w})
Ew^=(y−Xw^)T(y−Xw^)
展开可得:
E
w
^
=
y
T
y
−
y
T
X
w
^
−
w
^
T
X
T
y
+
w
^
T
X
T
X
w
^
E_{\hat{\boldsymbol w}}= \boldsymbol{y}^{\mathrm{T}}\boldsymbol{y}-\boldsymbol{y}^{\mathrm{T}}\mathbf{X}\hat{\boldsymbol w}-\hat{\boldsymbol w}^{\mathrm{T}}\mathbf{X}^{\mathrm{T}}\boldsymbol{y}+\hat{\boldsymbol w}^{\mathrm{T}}\mathbf{X}^{\mathrm{T}}\mathbf{X}\hat{\boldsymbol w}
Ew^=yTy−yTXw^−w^TXTy+w^TXTXw^
对
w
^
\hat{\boldsymbol w}
w^求导可得
∂
E
w
^
∂
w
^
=
∂
y
T
y
∂
w
^
−
∂
y
T
X
w
^
∂
w
^
−
∂
w
^
T
X
T
y
∂
w
^
+
∂
w
^
T
X
T
X
w
^
∂
w
^
\cfrac{\partial E_{\hat{\boldsymbol w}}}{\partial \hat{\boldsymbol w}}= \cfrac{\partial \boldsymbol{y}^{\mathrm{T}}\boldsymbol{y}}{\partial \hat{\boldsymbol w}}-\cfrac{\partial \boldsymbol{y}^{\mathrm{T}}\mathbf{X}\hat{\boldsymbol w}}{\partial \hat{\boldsymbol w}}-\cfrac{\partial \hat{\boldsymbol w}^{\mathrm{T}}\mathbf{X}^{\mathrm{T}}\boldsymbol{y}}{\partial \hat{\boldsymbol w}}+\cfrac{\partial \hat{\boldsymbol w}^{\mathrm{T}}\mathbf{X}^{\mathrm{T}}\mathbf{X}\hat{\boldsymbol w}}{\partial \hat{\boldsymbol w}}
∂w^∂Ew^=∂w^∂yTy−∂w^∂yTXw^−∂w^∂w^TXTy+∂w^∂w^TXTXw^
由矩阵微分公式
∂
a
T
x
∂
x
=
∂
x
T
a
∂
x
=
a
,
∂
x
T
A
x
∂
x
=
(
A
+
A
T
)
x
\cfrac{\partial\boldsymbol{a}^{\mathrm{T}}\boldsymbol{x}}{\partial\boldsymbol{x}}=\cfrac{\partial\boldsymbol{x}^{\mathrm{T}}\boldsymbol{a}}{\partial\boldsymbol{x}}=\boldsymbol{a},\cfrac{\partial\boldsymbol{x}^{\mathrm{T}}\mathbf{A}\boldsymbol{x}}{\partial\boldsymbol{x}}=(\mathbf{A}+\mathbf{A}^{\mathrm{T}})\boldsymbol{x}
∂x∂aTx=∂x∂xTa=a,∂x∂xTAx=(A+AT)x
可得
∂
E
w
^
∂
w
^
=
0
−
X
T
y
−
X
T
y
+
(
X
T
X
+
X
T
X
)
w
^
\cfrac{\partial E_{\hat{\boldsymbol w}}}{\partial \hat{\boldsymbol w}}= 0-\mathbf{X}^{\mathrm{T}}\boldsymbol{y}-\mathbf{X}^{\mathrm{T}}\boldsymbol{y}+(\mathbf{X}^{\mathrm{T}}\mathbf{X}+\mathbf{X}^{\mathrm{T}}\mathbf{X})\hat{\boldsymbol w}
∂w^∂Ew^=0−XTy−XTy+(XTX+XTX)w^
∂
E
w
^
∂
w
^
=
2
X
T
(
X
w
^
−
y
)
\cfrac{\partial E_{\hat{\boldsymbol w}}}{\partial \hat{\boldsymbol w}}=2\mathbf{X}^{\mathrm{T}}(\mathbf{X}\hat{\boldsymbol w}-\boldsymbol{y})
∂w^∂Ew^=2XT(Xw^−y)
解得:
w
^
∗
=
(
X
T
X
)
−
1
X
T
y
\hat{\boldsymbol{w}}^*=(\mathbf{X}^{\mathrm{T}}\mathbf{X})^{-1}\mathbf{X}^{\mathrm{T}}\boldsymbol{y}
w^∗=(XTX)−1XTy
这里我们发现:当且仅当 X T X \mathbf{X}^{\mathrm{T}}\mathbf{X} XTX 可逆时上式成立。 w ^ ∗ \hat{\boldsymbol{w}}^* w^∗ 有唯一解。
实际情况是, X T X \mathbf{X}^{\mathrm{T}}\mathbf{X} XTX 往往不是满秩矩阵,比如一些数据属性数目大于样本数,结合解方程组时,若因变量过多,则会出现多组解。选择哪一个解作为最终模型,将由算法的归纳偏好决定,常见的做法是引入正则项。
3.2 梯度下降法
我们也可以从梯度下降的角度来理解如何训练求得最优的 w w w呢?
梯度下降的核心是:设定初始参数
w
i
w_i
wi,不断迭代,使得
J
(
w
^
)
J({\hat w})
J(w^)最小化
w
j
:
=
w
j
−
α
∂
J
(
w
)
∂
w
w_j:=w_j-\alpha\frac{\partial{J(w)}}{\partial w}
wj:=wj−α∂w∂J(w)
J ( w ^ ) = 1 2 ∑ i = 1 m ( w ⃗ T x ⃗ i − y i ) 2 J({\hat w})=\frac{1}{2}\sum_{i=1}^m(\vec w^\mathrm{T} \vec x_i - y_i)^2 J(w^)=21i=1∑m(wTxi−yi)2
根据梯度下降法则:
∂
J
(
w
⃗
)
∂
w
j
=
∂
∂
w
j
1
2
∑
i
=
1
n
(
w
⃗
T
x
⃗
i
−
y
i
)
2
=
2
∗
1
2
∑
i
=
1
n
(
w
⃗
T
x
⃗
i
−
y
i
)
∗
∂
∂
w
j
(
w
⃗
T
x
⃗
i
−
y
i
)
=
∑
i
=
1
n
(
w
⃗
T
x
⃗
i
−
y
i
)
∗
∂
∂
w
j
(
∑
j
=
0
d
w
j
x
i
j
−
y
i
)
)
=
∑
i
=
1
n
(
w
⃗
T
x
⃗
i
−
y
i
)
x
i
j
\begin{aligned} \frac{\partial{J(\vec w)}}{\partial w_j} &= \frac{\partial}{\partial w_j}\frac{1}{2}\sum_{i=1}^{n}(\vec w^\mathrm{T} \vec x_i - y_i)^2 \\ &= 2*\frac{1}{2}\sum_{i=1}^{n}(\vec w^\mathrm{T}\vec x_i - y_i)*\frac{\partial}{\partial w_j}(\vec w^\mathrm{T}\vec x_i - y_i) \\ &= \sum_{i=1}^{n}(\vec w^\mathrm{T}\vec x_i - y_i)*\frac{\partial}{\partial w_j}(\sum_{j=0}^{d}w_jx_{ij}-y_i))\\ &= \sum_{i=1}^{n}(\vec w^\mathrm{T}\vec x_i - y_i)x_{ij} \\ \end{aligned}
∂wj∂J(w)=∂wj∂21i=1∑n(wTxi−yi)2=2∗21i=1∑n(wTxi−yi)∗∂wj∂(wTxi−yi)=i=1∑n(wTxi−yi)∗∂wj∂(j=0∑dwjxij−yi))=i=1∑n(wTxi−yi)xij
w j = w j − α ∑ i = 1 n ( w ⃗ T x ⃗ i − y i ) x i j w_j = w_j - \alpha\sum_{i=1}^{n}(\vec w^\mathrm{T}\vec x_i - y_i)x_{ij} wj=wj−αi=1∑n(wTxi−yi)xij
注:下标 i 表示第几个样本点。
梯度下降法沿着图中的1-2-3-4路径逐步达到最小 J ( w ^ ) J({\hat w}) J(w^) 点。梯度下降法的缺陷:如果函数为非凸函数,有可能找到的并非全局最优值,而是局部最优值。
4、引入正则项的回归
介绍两种回归变体。
当样本数远小于特征数时,直接使用
min
w
∑
i
=
1
m
(
y
i
−
w
T
x
i
)
2
\min\limits_{\boldsymbol w} \sum_{i=1}^{m}\left(y_{i}-\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}\right)^{2}
wmini=1∑m(yi−wTxi)2
作为损失函数,很容易导致过拟合,我们在原有的误差函数上引入正则化项。
(1)先引入
L
2
L_2
L2 范数:
min
w
∑
i
=
1
m
(
y
i
−
w
T
x
i
)
2
+
λ
∣
∣
w
∣
∣
2
2
\min\limits_{\boldsymbol w} \sum_{i=1}^{m}\left(y_{i}-\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}{i}\right)^{2}+\lambda||\boldsymbol{w}||_{2}^{2}
wmini=1∑m(yi−wTxi)2+λ∣∣w∣∣22
其中 λ > 0 \lambda > 0 λ>0 , 上式即为“岭回归”的优化目标。
(2)引入
L
1
L_1
L1 范数:
min
w
∑
i
=
1
m
(
y
i
−
w
T
x
i
)
2
+
λ
∣
∣
w
∣
∣
1
\min\limits_{\boldsymbol w} \sum_{i=1}^{m}\left(y_{i}-\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}{i}\right)^{2}+\lambda||\boldsymbol{w}||_{1}
wmini=1∑m(yi−wTxi)2+λ∣∣w∣∣1
其中 λ > 0 \lambda > 0 λ>0 , 上式即为“LASSO 回归”的优化目标。
L 1 L_1 L1范数与 L 2 L_2 L2范数正则化都有助于降低过拟合的风险,但是 L 1 L_1 L1 范数更易获得“稀疏”解,即:使用 L 1 L_1 L1范数求得的模型 w w w 中会有更多的0。
如何理解这一点?为了分析方便,我们假定 x x x仅有两个属性,即 w ⃗ = ( w 1 , w 2 ) \vec w = (w_1,w_2) w=(w1,w2),建立以 w 1 , w 2 w_1,w_2 w1,w2 为坐标轴的坐标系。在坐标系中绘制如下方程:
(1)
L
1
L_1
L1 范数等值线
∣
∣
w
⃗
∣
∣
1
=
∣
w
1
∣
+
∣
w
2
∣
||\vec w||_1 = |w_1| + |w_2|
∣∣w∣∣1=∣w1∣+∣w2∣
(2)
L
2
L_2
L2 范数等值线
∣
∣
w
⃗
∣
∣
2
=
∣
w
1
∣
2
+
∣
w
2
∣
2
||\vec w||_2 = \sqrt{|w_1|^2 + |w_2|^2}
∣∣w∣∣2=∣w1∣2+∣w2∣2
(3)平方误差项等值线
E
=
∑
i
=
1
m
(
y
i
−
(
w
1
x
i
1
+
w
1
x
i
2
+
b
)
)
2
E= \sum_{i=1}^m (y_i - (w_1 x_{i1} + w_1 x_{i2} + b ))^2
E=i=1∑m(yi−(w1xi1+w1xi2+b))2
注:等值线即空间中取值相同的点连成的线,以 L 1 L_1 L1范数为例,分别在坐标轴中画出 ∣ w 1 ∣ + ∣ w 2 ∣ = 1 |w_1| + |w_2| = 1 ∣w1∣+∣w2∣=1 , ∣ w 1 ∣ + ∣ w 2 ∣ = 2 |w_1| + |w_2| = 2 ∣w1∣+∣w2∣=2 … ∣ w 1 ∣ + ∣ w 2 ∣ = k |w_1| + |w_2| = k ∣w1∣+∣w2∣=k (k为常数)的线,即 L 1 L_1 L1范数中取值相同的点连成的线。
由图可知:
(1)无论是“岭回归”还是“Lasso回归”,其最优解都出现在图中平方误差项等值线与相应的正则化等值线相交处。如:“Lasso回归”最优解可能是图中的B点,“岭回归”的最优解可能出现在图中的A点。
(2)采用 L 1 L_1 L1 范数“Lasso回归”中的,平方误差项等值线与 L 1 L_1 L1的正则化等值线的交点往往出现在坐标轴上,即 w 1 w_1 w1 或 w 2 w_2 w2 为0;而“岭回归”中,交点往往出现在某个象限中,即 w 1 w_1 w1 或 w 2 w_2 w2 非0。即: L 1 L_1 L1 范数更易获得“稀疏”解(使用 L 1 L_1 L1范数求得的模型 w w w 中会有更多的0)。
说明:如果 w ⃗ \vec w w 中某些元素为0,意味着d个特征中对应着 w ⃗ \vec w w 中的0分量的特征将会不起作用,这其实完成了嵌入式的特征选择,即:模型学习的同时进行特征选择。
5、为什么是均方误差
为什么均方误差作为性能的度量是合理的?我们从概率的角度来分析一下。
假设预测值
f
(
x
i
)
f(x_i)
f(xi)与真实值
y
i
y_i
yi 之间的误差为
ϵ
i
\epsilon_i
ϵi ,那么真实值与预测值之间有如下关系:
y
i
=
f
(
x
⃗
i
)
+
ϵ
i
y_i = f(\vec x_i) + \epsilon_i
yi=f(xi)+ϵi
经过训练得到最优的参数
w
,
b
w,b
w,b ,使得
f
(
x
i
)
f(x_i)
f(xi) 与
y
i
y_i
yi 与是十分接近的,所以大部分样本的
ϵ
i
\epsilon_i
ϵi 都是趋近于0,所以,
ϵ
i
\epsilon_i
ϵi 可以看成高斯分布,即:
ϵ
i
∼
N
(
0
,
σ
2
)
\epsilon_i \sim \mathcal{N}(0,\sigma^2)
ϵi∼N(0,σ2)
高斯分布的概率密度函数为:
P
(
ϵ
i
)
=
1
2
π
σ
e
x
p
(
−
(
ϵ
i
)
2
2
σ
2
)
P(\epsilon_i) = \frac{1}{\sqrt{2\pi} \sigma}exp(-\frac{(\epsilon_i)^2}{2\sigma^2})
P(ϵi)=2πσ1exp(−2σ2(ϵi)2)
所以:
P
(
y
i
∣
x
i
;
w
)
=
1
2
π
σ
e
x
p
(
−
(
ϵ
i
)
2
2
σ
2
)
=
1
2
π
σ
e
x
p
(
−
(
y
i
−
f
(
x
⃗
i
)
)
2
2
σ
2
)
\begin{aligned} P(y_i|x_i;w) &= \frac{1}{\sqrt{2\pi} \sigma}exp(-\frac{(\epsilon_i)^2}{2\sigma^2}) \\ &= \frac{1}{\sqrt{2\pi} \sigma}exp(-\frac{(y_i - f(\vec x_i))^2}{2\sigma^2}) \\ \end{aligned}
P(yi∣xi;w)=2πσ1exp(−2σ2(ϵi)2)=2πσ1exp(−2σ2(yi−f(xi))2)
即:在给定
w
,
x
i
w,x_i
w,xi的前提下:
y
i
∼
N
(
f
(
x
⃗
i
)
,
σ
2
)
其
中
:
f
(
x
⃗
i
)
=
w
⃗
T
x
⃗
i
y_i \sim \mathcal{N}(f(\vec x_i),\sigma^2)\\其中:f(\vec x_i) = \vec w^T \vec x_i
yi∼N(f(xi),σ2)其中:f(xi)=wTxi
相当于我们已经知道 y i y_i yi 的分布即高斯分布,但是我们不知道他的参数 w ⃗ T \vec w^T wT和 σ \sigma σ, 而极大似然估计法来正是用来解决此类问题的。通过假设样本独立同分布,最大化似然函数,来进行参数估计。
补充一点:最大化似然函数的原理说简单点就是在一次观测中发生了的事件其概率应该大,概率大的事在观测中容易发生,所以我们希望让每一个 P ( y i ∣ x i ; w ) P(y_i|x_i;w) P(yi∣xi;w)都最大化,这等效于他们的乘积(或他们的乘积取对数)最大化。在这个前提下对参数进行估计。
构造似然函数为:
L
(
w
⃗
)
=
∏
i
=
1
m
P
(
y
i
∣
x
i
;
w
)
=
∏
i
=
1
m
1
2
π
σ
e
x
p
(
−
(
y
i
−
w
⃗
T
x
⃗
i
)
2
2
σ
2
)
L(\vec w) =\prod_{i=1}^m P(y_i|x_i;w) = \prod_{i=1}^m \frac{1}{\sqrt{2\pi} \sigma}exp(-\frac{(y_i - \vec w^T \vec x_i)^2}{2\sigma^2})
L(w)=i=1∏mP(yi∣xi;w)=i=1∏m2πσ1exp(−2σ2(yi−wTxi)2)
两边同时取对数:
I
n
L
(
w
⃗
)
=
I
n
∏
i
=
1
m
1
2
π
σ
e
x
p
(
−
(
y
i
−
w
⃗
T
x
⃗
i
)
2
2
σ
2
)
=
n
I
n
1
2
π
σ
−
1
σ
2
⋅
1
2
∑
i
=
1
n
(
(
y
(
i
)
−
w
⃗
T
x
⃗
i
)
2
\begin{aligned}In L(\vec w) &= In \prod_{i=1}^m \frac{1}{\sqrt{2\pi} \sigma}exp(-\frac{(y_i - \vec w^T \vec x_i)^2}{2\sigma^2}) \\&= nIn\frac{1}{{\sqrt{2\pi}\sigma}} - \frac{1}{\sigma^2} \cdot \frac{1}{2}\sum^n_{i=1}((y^{(i)}-\vec w^T \vec x_i)^2\end{aligned}
InL(w)=Ini=1∏m2πσ1exp(−2σ2(yi−wTxi)2)=nIn2πσ1−σ21⋅21i=1∑n((y(i)−wTxi)2
最大化似然函数,即最小化
1
2
∑
i
=
1
n
(
(
y
(
i
)
−
w
⃗
T
x
⃗
i
)
2
\frac{1}{2}\sum^n_{i=1}((y^{(i)}-\vec w^T \vec x_i)^2
21∑i=1n((y(i)−wTxi)2
此结果即为均方误差,因此用这个值作为代价函数来优化模型在统计学的角度是合理的。