数据科学家成长之旅

关注 机器学习,深度学习,自然语言处理,数学

机器学习中的正则化问题(1)——概念

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

\[w^* = arg\min_w \sum_iL(y_i,\;f(x_i;w)) + \lambda\Omega(w) \]

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

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

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

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

\[S = \sum_{i=1}^n\left|y_i-f(x_i)\right| \]

L2的形式是:

\[S = \sum_{i=1}^n\left(y_i-f(x_i)\right)^2 \]

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

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

\[{\bf w}^* = arg\min_{\bf w} \sum_j\left(t({\bf x}_j)-\sum_iw_ih_i({\bf x}_j)\right)^2 + \lambda\sum_{i=1}^k|{\bf w}_i| \]

L2的形式是:

\[{\bf w}^* = arg\min_{\bf w} \sum_j\left(t({\bf x}_j)-\sum_iw_ih_i({\bf x}_j)\right)^2 + \lambda\sum_{i=1}^k{\bf 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?

posted on 2017-01-22 13:40  会飞的蝸牛  阅读(1020)  评论(0编辑  收藏  举报

导航