正则化(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}ω的范数。
常见的正则化一般有以下三种,
- L1L_{1}L1惩罚,也叫LASSO;
- L2L_{2}L2惩罚,也叫岭回归;
- L1L_{1}L1和L2L_{2}L2惩罚的加权和,也叫弹性网。
L1L_{1}L1惩罚
特别地,当Ω(ω)=∣∣ω∣∣1=∑i∣ω∣i\varOmega(\boldsymbol{\omega})=||\boldsymbol{\omega}||_{1}=\sum_{i}|\omega|_{i}Ω(ω)=∣∣ω∣∣1=∑i∣ω∣i时,就是LASSO,L1L_{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)+αsign(ω).
\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(ω).
加入了L1L_{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[12Hii(ωi−ωi∗)2]. \sum_i[\frac{1}{2}H_{ii}(\boldsymbol{\omega}_i-\boldsymbol{\omega}^{\ast}_i)^{2}]. i∑[21Hii(ωi−ωi∗)2].
特别地,这里取ω∗=argminω∗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[12Hii(ω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[12Hii(ω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,而HiiH_{ii}Hii是variance。如果是bias很小的估计量,那么方差就会很大。 - [ S2] LASSO是在上面的目标函数的基础上,优化
J^(ω)=J(ω∗)+∑i[12Hii(ω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∣].
通过分类讨论,求导的方法,很容易可以得到L1L_{1}L1惩罚下的估计量为,
ω~i=sign(ωi∗)max{∣ωi∗∣−αHii,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]证明var(ω~i)<var(ωi∗).var(\widetilde{\omega}_i)<var({\omega}_i^{\ast}).var(ωi)<var(ωi∗).
当ωi∗>0{\omega}^{\ast}_i>0ωi∗>0时,有两种结果。第一种是,当ωi∗⩽αHii{\omega}_i^{\ast} \leqslant \frac{\alpha}{H_{ii}}ωi∗⩽Hiiα时,也就是HiiH_{ii}Hii小的时候,ω~i=0\widetilde{\omega}_i=0ωi=0,这也就是sparsity,而variance也是变为0了。第二种是,当ωi∗>αHii{\omega}_i^{\ast} >\frac{\alpha}{H_{ii}}ωi∗>Hiiα时,也就是HiiH_{ii}Hii大的时候,var(ω~i)=var(ωi∗−αHii)var(\widetilde{\omega}_i)=var({\omega}_i^{\ast}-\frac{\alpha}{H_{ii}})var(ωi)=var(ωi∗−Hiiα),L1L_{1}L1惩罚没有让最优值变为0,但是收缩了αHii\frac{\alpha}{H_{ii}}Hiiα。
L2L_{2}L2惩罚
岭回归实际上也可以得到以上的推导。不同的是,L2L_{2}L2惩罚下,ω~i=HiiHii+αωi∗\widetilde{\omega}_i=\frac{H_{ii}}{H_{ii}+\alpha}{{\omega}_i^{\ast} }ωi=Hii+αHiiωi∗,因此对于HiiH_{ii}Hii小的时候,只要ω∗{\omega}^{\ast}ω∗不为0,ω~\widetilde{\omega}ω就不会是0。而LASSO 会直接变为0。
附上一张Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep learning. MIT press. Page 232的对于L2L_{2}L2惩罚的解释。
以上是关于正则化的目的及具体过程,关于计算的具体将在另一篇文章中给出。
[1]: Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep learning. MIT press.