机器学习之L1 L2

参考:https://zhuanlan.zhihu.com/p/35356992

正则化

  • 正则化是结构风险最小化的一种策略。给损失函数加上正则化项,能使得在优化模型的时候要对经验风险与模型复杂度做一个trade-off,同时符合偏差和方差(若模型非常复杂,那么加入噪声以后的输入可能输出就会跟目标差距很大,鲁棒性降低,方差变大)分析。通过降低模型复杂度,得到更好的泛化能力,降低模型对训练数据的拟合程度。
  • L1正则化就是在损失函数加上L1范数,加上L1范数容易得到稀疏解
  • L2正则化是在损失函数后加上L2范数,使得得出的解比较平滑(不是稀疏),但是能保证比较多的参数更接近于0,降低模型的复杂度,一般在深度学习用得比较多。pytorch中只要在optim加上weight_decay参数就可以。

在这里插入图片描述

(1) 结构风险最小化角度

  • 假设优化目标为
    在这里插入图片描述

  • L1正则(lasso公式)
    在这里插入图片描述

  • L2正则(岭回归)
    在这里插入图片描述

  • 假如不加正则项的话,对于凸的目标函数来说,最终目标就是梯度为0的区域即中心紫色区域。

  • 当加入正则项以后,我们不仅需要使权重接近中心紫色区域,还需要使L1菱形或者L2圆形更加小

  • 其实这些加上正则项以后也可以看成是一种带约束的优化问题,可以将L1 L2看成是小于或等于某个阈值的约束项,这时候使用拉格朗日乘数法以后,正则就要加上一个需要优化的参数。为了优化更简单,人为设定了一个超参数。

  • 对于同一条梯度等高线而言,与菱形相切L1正则项最小,与圆形相切时L2正则项最小。因此,假如正则项以后,损失函数的最低点一定是某条等高线与菱形L1或者圆形L2的切点

L1 更容易得到稀疏权重
  • L ( x ) = f ( x ) + C ∣ x ∣ L(x) = f(x) + C|x| L(x)=f(x)+Cx。其中 f ( x ) f(x) f(x)为正则化前的损失函数。由于L1正则项的存在无法直接令 L ′ ( x ) = 0 L^{'}(x)=0 L(x)=0,但只要使 L − ′ ( 0 ) L_{-}^{'}(0) L(0) L 0 ′ ( x ) L_{0}^{'}(x) L0(x)异号即满足以下公式,那么x=0就可能成为可能的极值点。
    L + ′ ( 0 ) × L − ′ ( 0 ) = ( f ′ ( 0 ) + C ) × ( f ′ ( 0 ) − C ) &lt; 0 L_{+}^{&#x27;}(0) \times L_{-}^{&#x27;}(0) = (f^{&#x27;}(0) + C) \times (f^{&#x27;}(0) - C) &lt; 0 L+(0)×L(0)=(f(0)+C)×(f(0)C)<0
    由于后一项一定小于另一项,要满足异号,必须满足 f ′ ( 0 ) &lt; C f^{&#x27;}(0) &lt; C f(0)<C
  • 因此L1更加容易得到稀疏权重
    在这里插入图片描述
  • 分别对L1和L2求导,当 w &lt; 0 w&lt;0 w<0的时候,L2产生的导数相比L1的会小很多(L2比L1多乘了个 w w w
L2不容易得到稀疏权重
  • 加入L2正则项以后, L ( x ) = f ( x 1 , x 2 ) + C x 1 2 + x 2 2 L(x) = f(x_1,x_2) + C\sqrt{x_1^2+x_2^2} L(x)=f(x1,x2)+Cx12+x22 。求导得
    L ′ ( x ) = f ′ ( x ) + C x 1 x 1 2 + x 2 2 L^{&#x27;}(x)=f^{&#x27;}(x)+\frac{Cx_1}{\sqrt{x_1^2+x_2^2}} L(x)=f(x)+x12+x22 Cx1
    要令 x 1 = 0 x_1=0 x1=0称为极值点(假设 x 2 ! = 0 x_2!=0 x2!=0,多维权重下总有权重不为0,要不然就成了一个模型输出就成了常量),显然要 f ′ ( 0 ) = 0 f^{&#x27;}(0)=0 f(0)=0,比L1更加严格!

(2) 贝叶斯先验概率角度

  1. 假设 Y ∣ X ; w Y|X;w YX;w服从 N ( w T X , σ ) N(w^TX, \sigma) N(wTX,σ)的高斯分布,其中 w w w为未知的参数(w是固定的只是未知的)。则用极大似然估计求解参数 w w w
    max ⁡ log ⁡ ∏ i m p ( y i ∣ x i ; w ) = min ⁡ − log ⁡ ∏ i m p ( y i ∣ x i ; w )          ( 1 ) \max\log\prod_i^mp(y_i|x_i;w) = \min-\log\prod_i^mp(y_i|x_i;w) \ \ \ \ \ \ \ \ (1) maxlogimp(yixi;w)=minlogimp(yixi;w)        (1)
  2. 从贝叶斯学派观点看来,我们先假设参数 w w w随机变量已经服从一种先验分布 P ( w ) P(w) P(w),那么根据贝叶斯公式,最大化后验概率估计
    P ( w ∣ ( X , Y ) ) = P ( ( X , Y ) ∣ w ) P ( w ) P ( X , Y ) ∝ P ( Y ∣ X , w ) P ( X ) P ( w ) ∝ P ( Y ∣ X , w ) P ( w ) P(w|(X,Y)) = \frac{P((X,Y)|w)P(w)}{P(X,Y)} \propto P(Y|X,w)P(X)P(w) \propto P(Y|X,w)P(w) P(w(X,Y))=P(X,Y)P((X,Y)w)P(w)P(YX,w)P(X)P(w)P(YX,w)P(w)
    这时候我们再用极大似然估计再去估计参数 w w w时,似然函数就变成了:
    max ⁡ log ⁡ ∏ i = 1 m P ( y i ∣ x i ; w ) P ( w ) = min ⁡ − ( log ⁡ ∏ i m p ( y i ∣ x i ; w ) + log ⁡ ∏ i = 1 m p ( w ) )          ( 2 ) \max \log\prod_{i=1}^m{P(y_i|x_i;w)P(w)} = \min-(\log\prod_i^mp(y_i|x_i;w) + \log\prod_{i=1}^mp(w)) \ \ \ \ \ \ \ \ (2) maxlogi=1mP(yixi;w)P(w)=min(logimp(yixi;w)+logi=1mp(w))        (2)
    公式(2)相比公式(1)多了一项,就是正则项(参数 w w w先验分布带来的)
  3. L1:假设 w w w服从标准拉普拉斯分布,即概率密度函数为 1 2 ∗ e − ∣ w ∣ \frac{1}{2}*e^{-|w|} 21ew,那么公式(2)就会变为
    min ⁡ − ( log ⁡ ∏ i m p ( y i ∣ x i ; w ) + log ⁡ ∏ i = 1 m p ( w ) ) = min ⁡ − ( log ⁡ ∏ i m p ( y i ∣ x i ; w ) + C ∣ ∣ w ∣ ∣ 1 ) \min-(\log\prod_i^mp(y_i|x_i;w) + \log\prod_{i=1}^mp(w)) = \min-(\log\prod_i^mp(y_i|x_i;w)+C||w||_1) min(logimp(yixi;w)+logi=1mp(w))=min(logimp(yixi;w)+Cw1)
    也就是说假设 w w w服从标准拉普拉斯分布时,极大似然估计就比原来多出一个L1范数项。
  4. L2:假设 w w w服从标准高斯分布,推理过程与3. 一样,可以得出极大似然估计比原来多出来一个L2范数项。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值