为什么L1正则项产生稀疏的权重,L2正则项产生相对平滑的权重

  • L1 和L2正则项的定义如下:
    L 1 = i | w i | L 2 = i ( w i ) 2
  • 首先我们先计算一下他们对应的导数,导入如下所示:
    L 1 w i = 1 o r 1 w i t + 1 = w i t + η ( 1 o r 1 ) L 2 w i = w i w i t + 1 = w i t + η w i
  • 所以我们看到L1每次更新的时候会更新一个定值,那么若干次迭代之后,权重就有可能减少为0。但是L2每个更新的时候更新的值的大小和 w i 的值是有关系的。当 w i 趋近与0时,那么对应的导数值也会更新,所以他会不停的接近0,但并不会是0。此外,我们还可以得到,L2相对L1更稳定一些。
  • L1 产生0的权重也可以起到特征选择的作用,假设我们有 X 0 . . . X i . . . X n n个特征,通过分配不同的权重 w 0 . . . w i . . . w n ,然后使用L1 来做特征选择。
  • L2 可以迅速产生接近0的权值,但并不是0,所以会比较平滑。
  • 此外,我们还可以从几何的角度来理解。
    • 假设我们的Loss函数 ( y w x ) 2 ,那么我们的几何解释如下图所示:
    • 其中左图表示L1,右图表示L2。绿色代表的是loss的等高线, w 1 , w 2 在L1中的取值空间如左图的菱形所示。在L2中的取值空间如右图的圆形所示。从等高线和取值空间的交点可以看到L1更容易倾向一个权重偏大一个权重为0。L2更容易倾向权重都较小。
  • 主要参考

相关文章

正则替换html代码中img标签的src值在开发富文本信息在移动端...
正则表达式
AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它...
正则表达式是特殊的字符序列,利用事先定义好的特定字符以及...
Python界一名小学生,热心分享编程学习。
收集整理每周优质开发者内容,包括、、等方面。每周五定期发...