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