zoukankan      html  css  js  c++  java
  • Machine Learning --> L1 & L2正则化

    1.为什么要进行正则化?

      机器学习中,如果参数过多,模型会变得复杂,易overfit,即模型在训练样本数据上表现的很好,但在实际测试样本上表现的较差,不具备良好的泛化能力。为了避免过拟合,最常用的一种方法就是使用正则化,从而限制模型参数更多/更大,避免模型的复杂。

    2.L1正则化:在原损失函数的基础上加上权重参数的绝对值。

    其中,Ein 是未包含正则化项的训练样本误差,λ 是正则化参数,可调。

    3.L2正则化:在原来损失函数基础上加上权重参数的平方和。

      为达到正则化的目的,最简单的方法就是限制w的个数,但这类问题属于NP难问题,即无法求解,所以我们需要寻找一些宽松的限制条件,如:

       这里对 w 的平方和做数值上界的限定,要求所有w 的平方和不超过参数 C。这时候,我们将目标转换为:最小化训练样本误差 Ein,但是要满足 w 平方和小于 C 这个条件。

    4.二者的区别

       左图为L1正则化,右图为L2正则化。

      以二维情况为例,满足正则化条件,即求解椭圆区域与正方形/圆形区域的交点,也就是同时满足了Ein最小化和相应限定条件。

      对于L2正则化来说,其限定区域是圆,得到的解w1或w2很大概率是非零的。

      而对于L1正则化 来说,其限定区域是正方形,与椭圆区域的交点很大概率是其顶点,即方形的凸点会更接近Ein最优解对应的 wlin 位置,而凸点处必有w1或w2为 0,故得到的解w1或w2为零的概率就很大了。

      因此我们说,L1正则化的解具有稀疏性。同理,当扩展到高维情况,L2的限定区域是平滑的,与中心点等距;而L1的限定区域是尖锐的,有凸点。这些凸点更接近Ein的最优解位置,而在这些凸点上,很多wj都为 0。

    5.正则化参数λ

      正则化是结构风险最小化的一种策略实现,能够有效降低过拟合。此时的损失函数实际上包含了两个方面:训练样本误差和正则化项,此时需要参数 λ 权衡二者。

    这里写图片描述

      这里以 L2 为例,若 λ 很小,对应 C 值就很大。此时圆形区域很大,能够让 w 更接近 Ein 最优解的位置。若 λ 近似为 0,相当于圆形区域覆盖了最优解位置,这时候,正则化失效,即容易造成过拟合。

      相反,若 λ 很大,对应 C 值就很小。此时圆形区域很小,w 离 Ein 最优解的位置较远。w 被限制在一个很小的区域内变化,w 普遍较小且接近 0,可以起到正则化左右。但λ 过大容易造成欠拟合。

    To see I can not see, to know I do not know.
  • 相关阅读:
    js引用类型赋值不改变原对象值
    VS2017启动实例调试(谷歌浏览器)闪退问题
    ext6时间控件(带时分秒)
    extjs列表中文件上传与下载(带有重命名操作)
    c# word(1) 向标签处添加文字
    关于页面加载后执行使用afterrender
    ExtJS,grid多选框列
    vue起手式
    Javascript诞生与历史
    markdown语法说明
  • 原文地址:https://www.cnblogs.com/aluomengmengda/p/14201916.html
Copyright © 2011-2022 走看看