先对“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分布