zoukankan      html  css  js  c++  java
  • 从公式的角度理解L2和L1正则

    L2正则

    $$C=C_0+frac{lambda}{n}sum_{i=1}^n{w_i^2}$$

    $$frac{partial C}{partial w}=frac{partial C_0}{partial w}+frac{lambda}{2n}w$$

    egin{equation}w o w'=w-etafrac{partial C}{partial w}=left(1-frac{etalambda}{n} ight)w-etafrac{partial C_0}{partial w}label{g1}end{equation}

    η是学习率,λ是正则系数,n是参数的个数。
    L2 正则项的作用是使 w 在每次迭代时都 变小了 ηλ/n 倍。如果要使这个倍率不变,那么当参数个数增多(即 n 变大) 时,正则项系数 λ 也应该相应调大。

    L1正则

     $$C=C_0+frac{lambda}{n}sum_{i=1}^n{|w_i|}$$

    $$frac{partial C}{partial w}=frac{partial C_0}{partial w}+frac{lambda}{n} extrm{sgn}(w)$$

    $$ extrm{sgn}(w)=left{egin{matrix}1 & extrm{if};wgeqslant 0\0 & extrm{if};w<0end{matrix} ight.$$

    $$w o w-frac{etalambda}{n} extrm{sgn}(w)-etafrac{partial C_0}{partial w}=wpmfrac{etalambda}{n}-etafrac{partial C_0}{partial w}$$

    当w是小于1的正数时,L1正则的效果是使w减小ηλ/n ,即相比于L2正则w减小得更多,L1正则使(0,1)上的w快速向0逼近。当w位于(-1,0)时,L1正则的效果是使w增大ηλ/n,也是快速向0逼近。总的来说L1 正则的效果是使不重要的 w (绝对值小的w)几乎衰减为 0。
    跟L2一样,参数变多时,正则系数λ也要跟着变大才能使w的更新速率保持不变。

  • 相关阅读:
    [置顶] cocos2dx sqllite 增删查改等操作
    BZOJ 2933([Poi1999]地图-区间Dp)
    java使用batik转换svg文件
    算法小题目小结。。。
    [置顶] shell变量赋值-linux
    高级IO复用应用:聊天室程序
    NSUserDefaults的使用
    动态链接库与静态链接库的区别
    阐明iOS证书和provision文件
    Hyperic Agent 安装配置报
  • 原文地址:https://www.cnblogs.com/zhangchaoyang/p/12902212.html
Copyright © 2011-2022 走看看