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.
  • 相关阅读:
    CodeForces gym Nasta Rabbara lct
    bzoj 4025 二分图 lct
    CodeForces 785E Anton and Permutation
    bzoj 3669 魔法森林
    模板汇总——快读 fread
    bzoj2049 Cave 洞穴勘测 lct
    bzoj 2002 弹飞绵羊 lct裸题
    HDU 6394 Tree 分块 || lct
    HDU 6364 Ringland
    nyoj221_Tree_subsequent_traversal
  • 原文地址:https://www.cnblogs.com/aluomengmengda/p/14201916.html
Copyright © 2011-2022 走看看