先对“L1正则化和L2正则化的区别、应用场景”给出结论,具体见后面的原理解释:
- L1正则化会产生更稀疏的解,因此基于L1正则化的学习方法相当于嵌入式的特征选择方法.
- L2正则化计算更加方便,只需要计算向量内积,L1范数的计算效率特别是遇到非稀疏向量时非常低
- L1正则化相当于给权重设置拉普拉斯先验,L2正则化相当于给权重设置高斯先验[3,4]
- 实际使用时,L2正则化通常都比L1正则化要好,所以应优先选择L2正则化.
PS:为方便书写,以下的向量和矩阵省略粗体,如w与H写成w和H
L1正则化是指在目标函数中加入λ∥w∥1,其中,w是模型权重向量,λ≥0是权衡项,越大表示正则化惩罚越大.
L2正则化则是加入2λ∥w∥22,也可以写成2λwTw,注意是L2范数的平方,除以2是为了求导方便
假设未加入正则项的代价函数为J(w),那么加入L2正则项后,代价函数变为:
J~(w)=J(w)+2λwTw(1)
对应的梯度为:
∇wJ~=∇wJ+λw(2)
权重更新表达式为(α为学习率):
w←w−α(∇wJ+λw)(3)
等价于:
w←(1−αλ)w−α∇wJ(4)
由上式可以看出加入L2正则项后梯度更新的变化,即在每步执行通常的梯度更新之前先缩放权重向量(乘以一个常数因子)
对L1正则化而言,代价函数变为:
J~(w)=J(w)+λ∥w∥1(5)
对应的(次)梯度为:
∇wJ~=∇wJ+λsign(w)(6)
其中sign(⋅)为符号函数. 权重更新表达式为(α为学习率):
w←w−α(∇wJ+λsign(w))(7)
即:
w←(w−λsign(w))−α∇wJ(8)
可以看到L1正则化的效果与L2正则化的效果很不一样,不再是线性地缩放每个wi,而是减去了一项与权重wi同号的常数,因此当wi>0时,更新权重使得其减小,当wi<0时,更新权重使得其增大. 从这点来说也可以看出L1正则化更有可能使得权重为0,而L2正则化虽也使得权重减小,但缩放操作使得其仍保持同号.
因此他们的一个区别是:L1正则化会导致更稀疏的权重. 这里的“稀疏”指的是其中一部分权重参数为0.
这种区别也可以通过下面的图看出,同心椭圆为原目标函数的等值线,左图(同心)菱形为L1范数的等值线,右图(同心)圆形为L2范数的等值线. 范数的同心等值线被省略了.
对于左右每个图来说,假设分别从原目标函数和范数的最低点开始往外拓展等值线,把第一次两个等值线相交的点称为meet-point,那么该点就是在某个惩罚系数λ下达到的代价最小点,λ决定了该点是更接近目标函数的最低点还是范数的最低点(原点).
由上图可以看出,L1正则化下的meet-point很可能落在座标轴上,这些点的一部分分量为0,也就导致权重的稀疏,而L2正则化下的meet-point则更有可能落在某个象限内,因此不会有L1正则化的稀疏性.
为什么参数的绝对值更小对应的模型更简单?可以考虑多项式拟合的场景:
在等量的数据集规模下,复杂的模型为了对训练样本的拟合程度更高,拟合的曲线要不断地剧烈上下抖动以求穿过每一个训练样本点,这就导致多项式的阶数比较大且参数绝对值比较大;反之,而当模型比较简单时,曲线就更平滑,即多项式order比较小且参数绝对值也小得多.
前面对L2正则化的效果分析得出的结论是:L2正则化会在每次更新参数时对参数向量多进行一步缩放操作. 但是这仅是对於单个步骤的分析,事实上我们可以对整个训练过程进行分析,并得到正则化的最优解与不进行正则化的区别.
令w∗=wargminJ(w),即w∗为J(w)的最小值点,利用泰勒展开将式(1)中的J(w)在w∗点处展开,并只保留到二阶导的项作为近似. 如果目标函数确实是二次的(例如使用均方误差损失的线性回归模型),那么得到的表达式是没有误差的.
J~(w)近似得到J^(w):
J~(w)=J(w)+2λwTw≈J(w∗)+21(w−w∗)TH(w−w∗)+2λwTw令为J^(w)(9)
其中H是J(w)在w∗处关于w的Hessian矩阵,由于w∗为极值点,所以∇wJ=0,故近似式中没有一次项. 另外由w∗为极小值点可知H是半正定的.
J^(w)对w的梯度为:
∇wJ^(w)=H(w−w∗)+λw(10)
设w^=wargminJ^(w),即w^是J^(w)的最小值点,则
∇w^J^(w)=H(w^−w∗)+λw^=0(11)
(H+λI)w^=Hw∗(12)
w^=(H+λI)−1Hw∗(13)
当λ趋于0时,正则化后的代价函数的最优解w^趋于w∗,那么当λ增加时会发生什么呢?
由于Hessian矩阵H是实对称矩阵,所以其可对角化,即QTHQ=Λ,其中Q为正交矩阵且列向量为H的特征向量,故H=QΛQT,代入式(13)可得
w^=(QΛQT+λI)−1QΛQTw∗=[Q(Λ+λI)QT]−1QΛQTw∗=Q(Λ+λI)−1QTw∗(14)
令H^=Q(Λ+λI)−1QT,则有w^=H^w∗,即H^的特征值为ξi+λξi,其中ξi为H的特征值,且H^的特征值ξi+λξi对应的特征向量与H的特征值ξi对应的特征向量相同,均为Q的第i列.
因此,w∗左乘H^可以看做沿着由H的特征向量所定义的轴来缩放w∗,具体来说,我们会根据ξi+λξi因子来缩放w∗在H的第i个特征向量方向上的分量wi∗. 因此,对于较大的特征值ξi≫λ所对应的特征向量的方向上,正则化的影响较小,因为分量wi∗的缩放因子趋于1;而对于较小的特征值ξi≪λ所对应的特征向量的方向上,w∗的分量wi∗会缩放到几乎为0.
还可以这样来理解:L2正则化会将最优解w∗的分量进行缩放,某分量方向上代价函数降低得越慢,则对其缩放的程度越高,即偏好保留的是代价函数降低更快的方向,这些方向特征值大,故二阶导数大,所以降低快[2]. 这种效应如下图所示.
上图是假设参数向量w维度仅为2,即w=[w1,w2],作出J(w)的等值线后,由Hessian矩阵与等值线的关系可知,图中所画的J(w)的Hessian矩阵H的特征向量方向恰为水平和垂直方向,且等值线密集的垂直方向对应的特征值较大,等值线稀疏的水平方向对应的特征值较小.
根据前文所述结论,w∗在水平方向的分量将被收缩较多,而在垂直方向的分量所收到的影响则相对没那么大. 图中的w~点正是加了正则项后的最优解,其垂直与水平分量相对于w∗的变化验证了我们的想法.
References:
[1] 花书中文版7.1节
[2] Hessian矩阵与等值线的关系
[3] 贝叶斯角度看 L1 & L2 正则化
[4] L1正则先验分布是Laplace分布,L2正则先验分布是Gaussian分布