zoukankan      html  css  js  c++  java
  • L1和L2正则化。L1为什么能产生稀疏值,L2更平滑

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

         https://zhuanlan.zhihu.com/p/25707761

         https://www.zhihu.com/question/37096933/answer/70426653

      首先正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化的值会越大。

      正则化是结构风险最小化的一种策略实现,在经验风险最小化的基础上(也就是训练误差最小化),尽可能采用简单的模型,以此提高泛化预测精度。

      经验风险较小的模型可能较复杂,这时会使正则化项变大。正则化的作用就是选择经验风险和模型复杂度同时较小的模型。

      同时也符合奥卡姆剃刀原理:在所有可能选择的模型中,能够很好解释数据并且十分简单才是好的模型。通过降低模型的复杂度,得到更小的泛化误差,降低过拟合程度。

    h(w)是目标函数  f(w)是没有加正则化的目标函数  c|w|是L1正则项,要是0点成为最可能的点,因为在0点处不可导,但是只需让0点左右的导数异号即可。

    最终解的:

    ,所以只要满足这个条件,0点都是最值点。

    两种 regularization 能不能把最优的 w变成 0,取决于原先的损失函数在 0 点处的导数。
    如果本来导数不为 0,那么施加 L2 regularization 后导数依然不为 0,最优的 x 也不会变成 0。
    而施加 L1 regularization 时,只要 regularization 项的系数 C 大于原先损失函数在 0 点处的导数的绝对值,x = 0 就会变成一个极小值点。

    上面只分析了一个参数 w。事实上 L1 regularization 会使得许多参数的最优值变成 0,这样模型就稀疏了。


    作者:王赟 Maigo
    链接:https://www.zhihu.com/question/37096933/answer/70426653
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

      、

      

  • 相关阅读:
    SQL Server 深入解析索引存储(非聚集索引)
    class.forName的官方使用方法说明
    使用C++实现学生管理系统
    hdu5033 Building 单调队列
    leetCode 72.Edit Distance (编辑距离) 解题思路和方法
    IOS7 textkit 的相关
    nodejs即时聊天
    5种语言混合编程:C++、JS、python、Lisp、汇编
    java Semaphore信号亮-同意多个任务同一时候訪问这个资源--thinking in java21.7.6
    关于Android的.so文件所须要知道的
  • 原文地址:https://www.cnblogs.com/smartwhite/p/10064982.html
Copyright © 2011-2022 走看看