正则项的原理、梯度公式、L1正则化和L2正则化的区别、应用场景

先对“L1正则化和L2正则化的区别、应用场景”给出结论,具体见后面的原理解释:

  • L1正则化会产生更稀疏的解,因此基于L1正则化的学习方法相当于嵌入式的特征选择方法.
  • L2正则化计算更加方便,只需要计算向量内积,L1范数的计算效率特别是遇到非稀疏向量时非常低
  • L1正则化相当于给权重设置拉普拉斯先验,L2正则化相当于给权重设置高斯先验 [ 3 , 4 ] ^{[3,4]}
  • 实际使用时,L2正则化通常都比L1正则化要好,所以应优先选择L2正则化.

PS:为方便书写,以下的向量和矩阵省略粗体,如 w \boldsymbol w H \boldsymbol H 写成 w w H H

L1正则化是指在目标函数中加入 λ w 1 \lambda \Vert w\Vert_1 ,其中, w w是 模型权重向量, λ 0 \lambda \geq 0 是权衡项,越大表示正则化惩罚越大.

L2正则化则是加入 λ 2 w 2 2 \frac\lambda2\Vert w \Vert_2^2 ,也可以写成 λ 2 w T w \frac\lambda 2w^Tw ,注意是L2范数的平方,除以2是为了求导方便

假设未加入正则项的代价函数为 J ( w ) J(w) ,那么加入L2正则项后,代价函数变为:

J ~ ( w ) = J ( w ) + λ 2 w T w (1) \tilde J(w)=J(w)+\frac\lambda 2w^Tw\tag1

对应的梯度为:

w J ~ = w J + λ w (2) \nabla_w \tilde J=\nabla_wJ+\lambda w\tag2

权重更新表达式为( α \alpha 为学习率):

w w α ( w J + λ w ) (3) w\leftarrow w - \alpha(\nabla_wJ+\lambda w)\tag3

等价于:

w ( 1 α λ ) w α w J (4) w\leftarrow (1-\alpha\lambda )w-\alpha \nabla_wJ\tag4

由上式可以看出加入L2正则项后梯度更新的变化,即在每步执行通常的梯度更新之前先缩放权重向量(乘以一个常数因子)

对L1正则化而言,代价函数变为:

J ~ ( w ) = J ( w ) + λ w 1 (5) \tilde J(w)=J(w)+\lambda \Vert w\Vert_1\tag5

对应的(次)梯度为:

w J ~ = w J + λ s i g n ( w ) (6) \nabla_w \tilde J=\nabla_wJ+\lambda \rm sign\it(w)\tag6

其中 s i g n ( ) \rm sign( \cdot) 为符号函数. 权重更新表达式为( α \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 λ s i g n ( w ) ) α w J (8) w\leftarrow (w -\lambda \rm sign\it(w))- \alpha\nabla_wJ\tag8

可以看到L1正则化的效果与L2正则化的效果很不一样,不再是线性地缩放每个 w i w_i ,而是减去了一项与权重 w i w_i 同号的常数,因此当 w i > 0 w_i>0 时,更新权重使得其减小,当 w i < 0 w_i<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 w^* J ( w ) J(w) 的最小值点,利用泰勒展开将式 ( 1 ) (1) 中的 J ( w ) J(w) w w^* 点处展开,并只保留到二阶导的项作为近似. 如果目标函数确实是二次的(例如使用均方误差损失的线性回归模型),那么得到的表达式是没有误差的.

J ~ ( w ) \tilde J(w) 近似得到 J ^ ( w ) \hat 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}

其中 H H J ( w ) J(w) w w^* 处关于 w w 的Hessian矩阵,由于 w w^* 为极值点,所以 w J = 0 \nabla_wJ=\boldsymbol 0 ,故近似式中没有一次项. 另外由 w w^* 为极小值点可知 H H 是半正定的.

J ^ ( w ) \hat J(w) w w 的梯度为:

w J ^ ( w ) = H ( w w ) + λ w (10) \nabla_w\hat J(w)=H(w-w^*)+\lambda w \tag{10}

w ^ = arg min w J ^ ( w ) \hat w=\argmin_w\hat J(w) ,即 w ^ \hat w J ^ ( w ) \hat 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}

( H + λ I ) w ^ = H w (12) (H+\lambda I)\hat w=Hw^*\tag{12}

w ^ = ( H + λ I ) 1 H w (13) \hat w=(H+\lambda I)^{-1}Hw^*\tag{13}

λ \lambda 趋于0时,正则化后的代价函数的最优解 w ^ \hat w 趋于 w w^* ,那么当 λ \lambda 增加时会发生什么呢?

由于Hessian矩阵 H H 是实对称矩阵,所以其可对角化,即 Q T H Q = Λ Q^TH Q=\Lambda ,其中 Q Q 为正交矩阵且列向量为 H H 的特征向量,故 H = Q Λ Q T H=Q\Lambda Q^T ,代入式 ( 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}

H ^ = Q ( Λ + λ I ) 1 Q T \hat H=Q(\Lambda +\lambda I)^{-1}Q^T ,则有 w ^ = H ^ w \hat w=\hat Hw^* ,即 H ^ \hat H 的特征值为 ξ i ξ i + λ \frac{\xi_i}{\xi_i+\lambda} ,其中 ξ i \xi_i H H 的特征值,且 H ^ \hat H 的特征值 ξ i ξ i + λ \frac{\xi_i}{\xi_i+\lambda} 对应的特征向量与 H H 的特征值 ξ i \xi_i 对应的特征向量相同,均为 Q Q 的第 i i 列.

因此, w w^* 左乘 H ^ \hat H 可以看做沿着由 H H 的特征向量所定义的轴来缩放 w w^* ,具体来说,我们会根据 ξ i ξ i + λ \frac{\xi_i}{\xi_i+\lambda} 因子来缩放 w w^* H H 的第 i i 个特征向量方向上的分量 w i w_i^* . 因此,对于较大的特征值 ξ i λ \xi_i \gg \lambda 所对应的特征向量的方向上,正则化的影响较小,因为分量 w i w_i^* 的缩放因子趋于1;而对于较小的特征值 ξ i λ \xi_i \ll \lambda 所对应的特征向量的方向上, w w^* 的分量 w i w_i^* 会缩放到几乎为 0 \boldsymbol 0 .

还可以这样来理解:L2正则化会将最优解 w w^* 的分量进行缩放,某分量方向上代价函数降低得越慢,则对其缩放的程度越高,即偏好保留的是代价函数降低更快的方向,这些方向特征值大,故二阶导数大,所以降低快 [ 2 ] ^{[2]} . 这种效应如下图所示.

在这里插入图片描述
上图是假设参数向量 w w 维度仅为2,即 w = [ w 1 , w 2 ] w=[w_1,w_2] ,作出 J ( w ) J(w) 的等值线后,由Hessian矩阵与等值线的关系可知,图中所画的 J ( w ) J(w) 的Hessian矩阵 H H 的特征向量方向恰为水平和垂直方向,且等值线密集的垂直方向对应的特征值较大,等值线稀疏的水平方向对应的特征值较小.

根据前文所述结论, w w^* 在水平方向的分量将被收缩较多,而在垂直方向的分量所收到的影响则相对没那么大. 图中的 w ~ \tilde w 点正是加了正则项后的最优解,其垂直与水平分量相对于 w w^* 的变化验证了我们的想法.

References:

[1] 花书中文版7.1节
[2] Hessian矩阵与等值线的关系
[3] 贝叶斯角度看 L1 & L2 正则化
[4] L1正则先验分布是Laplace分布,L2正则先验分布是Gaussian分布

发布了67 篇原创文章 · 获赞 27 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/xpy870663266/article/details/104573194