正则化(regularization)
简单来说,正则化的目的是为了在overfitting的情形下,通过加入惩罚参数,获得能够平衡bias和variance的一个有偏估计量。
bias和variance的tradeoff
在统计学中,我们的目的是为了得到数据的某些数字特征的估计,例如期望的极大似然估计。估计量是统计中的重要的研究对象,对于同一个待估计的参数,实际上可以得到很多不同的估计量,这里的估计量一般都是样本的函数。为了得到较好的估计,我们希望MSE(mean squared error )越小越好。
MSE的表达式如上图所示,
θ
^
\hat{\theta}
θ^是
θ
\theta
θ的估计量,因此bias和variance有一个tradeoff,也就是,在MSE一定的情况下,当bias很小的时候,variance就会很大,当variance很小的时候,bias就会变高。下面这幅图的模拟结果能更好的说明这个问题。
underfitting和overfitting一般是对应以下的情况。
在underfitting时,variance显然很小,也就是你的拟合函数,估计量即使是更换一组新的样本也变化不大,例如常函数,而此时估计的bias就会相对较大。在overfitting的情形下,bias就会很小,但是是建立在牺牲了一定的variance的基础上,也就是更换样本会使得估计量的波动性很大。理想的估计是能够找到一个bias和variance的一个tradeoff。
以上就是regularization正则化要处理的问题,牺牲一定的bias,获得较小的variance,找到较好的估计量。
正则化
正则化的方法一般是通过在目标函数的基础上,加入一个惩罚项*惩罚系数。具体如下,假设损失函数不加惩罚的损失函数是
J
(
ω
;
X
,
y
)
J\boldsymbol{(\omega;X,y)}
J(ω;X,y),目的是为了最小化这个损失函数,得到好的估计量。正则化的方法一般是在此基础上,来优化下面这个损失函数,
J
~
(
ω
;
X
,
y
)
=
J
(
ω
;
X
,
y
)
+
α
Ω
(
ω
)
,
\widetilde{J}\boldsymbol{(\omega;X,y)}=J\boldsymbol{(\omega;X,y)}+\alpha \varOmega(\boldsymbol{\omega}),
J
(ω;X,y)=J(ω;X,y)+αΩ(ω),
其中
X
,
y
\boldsymbol{X,y}
X,y是数据,
ω
\boldsymbol{\omega}
ω是待估计的参数,也就是数据所服从的模型或者分布的某些特征值,
Ω
(
ω
)
\varOmega(\boldsymbol{\omega})
Ω(ω) 是参数
ω
\boldsymbol{\omega}
ω的范数。
常见的正则化一般有以下三种,
- L 1 L_{1} L1惩罚,也叫LASSO;
- L 2 L_{2} L2惩罚,也叫岭回归;
- L 1 L_{1} L1和 L 2 L_{2} L2惩罚的加权和,也叫弹性网。
L 1 L_{1} L1惩罚
特别地,当
Ω
(
ω
)
=
∣
∣
ω
∣
∣
1
=
∑
i
∣
ω
∣
i
\varOmega(\boldsymbol{\omega})=||\boldsymbol{\omega}||_{1}=\sum_{i}|\omega|_{i}
Ω(ω)=∣∣ω∣∣1=∑i∣ω∣i时,就是LASSO,
L
1
L_{1}
L1惩罚。因此所对应的目标函数是,
J
~
(
ω
;
X
,
y
)
=
J
(
ω
;
X
,
y
)
+
α
∣
∣
ω
∣
∣
1
.
\widetilde{J}\boldsymbol{(\omega;X,y)}=J\boldsymbol{(\omega;X,y)}+\alpha ||\boldsymbol{\omega}||_{1}.
J
(ω;X,y)=J(ω;X,y)+α∣∣ω∣∣1.
所对应的导数如下,
▽
ω
J
~
(
ω
;
X
,
y
)
=
▽
ω
J
(
ω
;
X
,
y
)
+
α
s
i
g
n
(
ω
)
.
\bigtriangledown_{\omega}\widetilde{J}\boldsymbol{(\omega;X,y)}=\bigtriangledown_{\boldsymbol{\omega}}J\boldsymbol{(\omega;X,y)}+\alpha sign(\boldsymbol{\omega}).
▽ωJ
(ω;X,y)=▽ωJ(ω;X,y)+αsign(ω).
加入了
L
1
L_{1}
L1惩罚之后是怎么使得bias增大,然后variance减小的呢?MSE又有什么变化呢?详细推导见以下。
- [ S1] 对于目标损失函数,
J
(
ω
;
X
,
y
)
J\boldsymbol{(\omega;X,y)}
J(ω;X,y)在
ω
∗
\omega^{\ast}
ω∗处Taylor展开,得到以下的近似
J
^
\hat{J}
J^,
J ^ ( ω ) = J ( ω ∗ ) + ( ω − ω ∗ ) ′ ▽ ω J ( ω ; X , y ) ∣ ω = ω ∗ + \hat{J}(\boldsymbol{\omega})={J}(\boldsymbol{\boldsymbol{\omega}^{\ast}})+(\boldsymbol{\omega}-\boldsymbol{\omega}^{\ast})^{'}\bigtriangledown_{\boldsymbol{\boldsymbol{\omega}}}J\boldsymbol{(\boldsymbol{\omega};X,y)}|_{\boldsymbol{\omega}=\boldsymbol{\omega}^{\ast}}+ J^(ω)=J(ω∗)+(ω−ω∗)′▽ωJ(ω;X,y)∣ω=ω∗+ ∑ i [ 1 2 H i i ( ω i − ω i ∗ ) 2 ] . \sum_i[\frac{1}{2}H_{ii}(\boldsymbol{\omega}_i-\boldsymbol{\omega}^{\ast}_i)^{2}]. i∑[21Hii(ωi−ωi∗)2].
特别地,这里取 ω ∗ = a r g m i n ω ∗ J ( ω ) \boldsymbol{\omega}^{\ast}=argmin_{\boldsymbol{\omega}^{\ast}}J(\boldsymbol{\omega}) ω∗=argminω∗J(ω),Hessian 矩阵是对角阵。此时的 ω ∗ \boldsymbol{\omega}^{\ast} ω∗就是没有加惩罚的估计量,此时,上式会变成, ▽ ω J ( ω ; X , y ) ∣ ω = ω ∗ = 0 \bigtriangledown_{\boldsymbol{\boldsymbol{\omega}}}J\boldsymbol{(\boldsymbol{\omega};X,y)}|_{\boldsymbol{\omega}=\boldsymbol{\omega}^{\ast}}=0 ▽ωJ(ω;X,y)∣ω=ω∗=0,而上式会变成以下这种形式,
J ^ ( ω ) = J ( ω ∗ ) + ∑ i [ 1 2 H i i ( ω i − ω i ∗ ) 2 ] . \hat{J}(\boldsymbol{\omega})={J}(\boldsymbol{\boldsymbol{\omega}^{\ast}})+ \sum_i[\frac{1}{2}H_{ii}(\boldsymbol{\omega}_i-\boldsymbol{\omega}^{\ast}_i)^{2}]. J^(ω)=J(ω∗)+i∑[21Hii(ωi−ωi∗)2].
此时的尾项 ∑ i [ 1 2 H i i ( ω i − ω i ∗ ) 2 ] \sum_i[\frac{1}{2}H_{ii}(\boldsymbol{\omega}_i-\boldsymbol{\omega}^{\ast}_i)^{2}] ∑i[21Hii(ωi−ωi∗)2]实际上就是一般情形下的渐近MSE, ( ω i − ω i ∗ ) (\boldsymbol{\omega}_i-\boldsymbol{\omega}^{\ast}_i) (ωi−ωi∗)是bias,而 H i i H_{ii} Hii是variance。如果是bias很小的估计量,那么方差就会很大。 - [ S2] LASSO是在上面的目标函数的基础上,优化
J ^ ( ω ) = J ( ω ∗ ) + ∑ i [ 1 2 H i i ( ω i − ω i ∗ ) 2 + α ∣ ω i ∣ ] . \hat{J}(\boldsymbol{\omega})={J}(\boldsymbol{\boldsymbol{\omega}^{\ast}})+ \sum_i[\frac{1}{2}H_{ii}(\boldsymbol{\omega}_i-\boldsymbol{\omega}^{\ast}_i)^{2}+\alpha|\omega_i|]. J^(ω)=J(ω∗)+i∑[21Hii(ωi−ωi∗)2+α∣ωi∣].
通过分类讨论,求导的方法,很容易可以得到 L 1 L_{1} L1惩罚下的估计量为,
ω ~ i = s i g n ( ω i ∗ ) m a x { ∣ ω i ∗ ∣ − α H i i , 0 } . \widetilde{\omega}_i=sign({\omega}^{\ast}_i)max \left\lbrace |{\omega}^{\ast}_i|-\frac{\alpha}{H_{ii}},0\right\rbrace . ω i=sign(ωi∗)max{∣ωi∗∣−Hiiα,0}. - [ S3]证明
v
a
r
(
ω
~
i
)
<
v
a
r
(
ω
i
∗
)
.
var(\widetilde{\omega}_i)<var({\omega}_i^{\ast}).
var(ω
i)<var(ωi∗).
当 ω i ∗ > 0 {\omega}^{\ast}_i>0 ωi∗>0时,有两种结果。第一种是,当 ω i ∗ ⩽ α H i i {\omega}_i^{\ast} \leqslant \frac{\alpha}{H_{ii}} ωi∗⩽Hiiα时,也就是 H i i H_{ii} Hii小的时候, ω ~ i = 0 \widetilde{\omega}_i=0 ω i=0,这也就是sparsity,而variance也是变为0了。第二种是,当 ω i ∗ > α H i i {\omega}_i^{\ast} >\frac{\alpha}{H_{ii}} ωi∗>Hiiα时,也就是 H i i H_{ii} Hii大的时候, v a r ( ω ~ i ) = v a r ( ω i ∗ − α H i i ) var(\widetilde{\omega}_i)=var({\omega}_i^{\ast}-\frac{\alpha}{H_{ii}}) var(ω i)=var(ωi∗−Hiiα), L 1 L_{1} L1惩罚没有让最优值变为0,但是收缩了 α H i i \frac{\alpha}{H_{ii}} Hiiα。
L 2 L_{2} L2惩罚
岭回归实际上也可以得到以上的推导。不同的是,
L
2
L_{2}
L2惩罚下,
ω
~
i
=
H
i
i
H
i
i
+
α
ω
i
∗
\widetilde{\omega}_i=\frac{H_{ii}}{H_{ii}+\alpha}{{\omega}_i^{\ast} }
ω
i=Hii+αHiiωi∗,因此对于
H
i
i
H_{ii}
Hii小的时候,只要
ω
∗
{\omega}^{\ast}
ω∗不为0,
ω
~
\widetilde{\omega}
ω
就不会是0。而LASSO 会直接变为0。
附上一张Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep learning. MIT press. Page 232的对于
L
2
L_{2}
L2惩罚的解释。
以上是关于正则化的目的及具体过程,关于计算的具体将在另一篇文章中给出。
[1]: Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep learning. MIT press.