zoukankan      html  css  js  c++  java
  • 机器学习中的正则化问题(1)——概念

    一般来说,监督学习就是最小化下面函数:

    [w^* = argmin_w sum_iL(y_i,;f(x_i;w)) + lambdaOmega(w) ]

    对于第一部分——Loss函数,一般有如下几种情况:

    • 如果是Square loss,那就是最小二乘了;
    • 如果是Hinge Loss,那就是著名的SVM了;
    • 如果是exp-Loss,那就是牛逼的 Boosting了;
    • 如果是log-Loss,那就是Logistic Regression了;

    除以上几种,还有不同的loss函数,具有不同的拟合特性,这个得就具体问题具体分析[1]。

      在[2]中,提到了L1和L2作为损失函数和用于规则化的几个特点,其中L1的形式是:

    [S = sum_{i=1}^nleft|y_i-f(x_i) ight| ]

    L2的形式是:

    [S = sum_{i=1}^nleft(y_i-f(x_i) ight)^2 ]

      作为损失函数,L2对离群点更加敏感,但从另外一方面,数据集中某个数据的微小改变,反映到拟合曲线上,L1比L2的变化幅度要大,也就是L2比L1更加稳定
      关于损失函数是选择L1还是L2,pdf文档[5]可以作为参考,在这篇文档中使用了gradient boosting regressor作为回归模型。

      优化目标的后一部分,是规则化函数(Omega(w)),其用于约束我们的模型,使其尽量简单,其目的用于防止过拟合,下面提一下L1和L2作为规范化项时候的一些区别。
    L1的形式是:

    [{f w}^* = argmin_{f w} sum_jleft(t({f x}_j)-sum_iw_ih_i({f x}_j) ight)^2 + lambdasum_{i=1}^k|{f w}_i| ]

    L2的形式是:

    [{f w}^* = argmin_{f w} sum_jleft(t({f x}_j)-sum_iw_ih_i({f x}_j) ight)^2 + lambdasum_{i=1}^k{f w}_i^2 ]

      相比较来说,L1具有内置的特征选择能力,但L2没有。其原因在于L1更倾向于产生稀疏的系数,打个比方来说,我们的回归函数具有100个系数,使用L1可能会产生10个非零系数,这也就是说其余90个系数在预测目标值的过程中没有发挥作用,而L2则不会产生稀疏系数,因而不具备特征选择能力。
      此外,最后求得的L1数值可能有多个,而L2的话只可能得到一个数值,其原因在于

    ![正则化1](http://ogex32jwc.bkt.clouddn.com/%E6%AD%A3%E5%88%99%E5%8C%961.png)
    在这张图中,L2是绿色线条,其余线条都是L1的线条,由于L2只有一条,所以只有一个解(这些解释出自[2],想弄明白其中的"禅机"还需要更多动手尝试)   最后,==L1不具备解析解而L2具有,因而L2的计算更为高效==;但另一方面,L1的解具有稀疏性质,因而可以使用稀疏算法求解,从而从另一方面获得更好的计算效率。      **从另一个角度来讲,对损失函数进行正则化,实际上是在贝叶斯统计学派思想指导下的数据分析,其将先验期望和对观测数据进行拟合融合到一起,对于L1规则项来说,实际是对回归方程的系数添加了一个拉普拉斯先验,之后运行MAP,而对L2规则项来说,对回归方程添加了高斯先验,之后运行MAP**。高斯分布密度函数曲线和拉普拉斯分布密度函数曲线如下:
    ![正则化2](http://ogex32jwc.bkt.clouddn.com/%E6%AD%A3%E5%88%99%E5%8C%962.png)

      由上图可见,随着系数取值偏离0,取到这些系数的概率会降低,L1规范式对较大值和较小值兼容性较强(出自[5]的第一个回答)。从第三个回答中也能看出一些很有意思的内容,L1规范式适合于比较稀疏的数据,但如果在L1,L2都能用的情况下,L2更合适一些,因为L2能够产生更小的预测错误率。

    [1] 机器学习中的范数规则化之(一)L0、L1与L2范数
    [2] Differences between L1 and L2 as Loss Function and Regularization
    [3] Differences between the L1-norm and the L2-norm (Least Absolute Deviations and Least Squares)
    [4] L1 vs. L2 Loss function
    [5] What is the difference between L1 and L2 regularization?

  • 相关阅读:
    多按键设计的标准思路
    与,非,或门总结
    i2c中应答信号信号总结
    i2c中start和restart的区别
    poj 1631 Bridging signals
    poj 2533 Longest Ordered Subsequence
    poj 1887 Testing the CATCHER
    poj 1088 滑雪
    poj 1014 Dividing
    babel转码时generator的regeneratorRuntime
  • 原文地址:https://www.cnblogs.com/stevenlk/p/6340047.html
Copyright © 2011-2022 走看看