机器学习中的正则化问题(1)——概念
一般来说,监督学习就是最小化下面函数:
对于第一部分——Loss函数,一般有如下几种情况:
- 如果是Square loss,那就是最小二乘了;
- 如果是Hinge Loss,那就是著名的SVM了;
- 如果是exp-Loss,那就是牛逼的 Boosting了;
- 如果是log-Loss,那就是Logistic Regression了;
除以上几种,还有不同的loss函数,具有不同的拟合特性,这个得就具体问题具体分析[1]。
在[2]中,提到了L1和L2作为损失函数和用于规则化的几个特点,其中L1的形式是:
L2的形式是:
作为损失函数,L2对离群点更加敏感,但从另外一方面,数据集中某个数据的微小改变,反映到拟合曲线上,L1比L2的变化幅度要大,也就是L2比L1更加稳定。
关于损失函数是选择L1还是L2,pdf文档[5]可以作为参考,在这篇文档中使用了gradient boosting regressor作为回归模型。
优化目标的后一部分,是规则化函数\(\Omega(w)\),其用于约束我们的模型,使其尽量简单,其目的用于防止过拟合,下面提一下L1和L2作为规范化项时候的一些区别。
L1的形式是:
L2的形式是:
相比较来说,L1具有内置的特征选择能力,但L2没有。其原因在于L1更倾向于产生稀疏的系数,打个比方来说,我们的回归函数具有100个系数,使用L1可能会产生10个非零系数,这也就是说其余90个系数在预测目标值的过程中没有发挥作用,而L2则不会产生稀疏系数,因而不具备特征选择能力。
此外,最后求得的L1数值可能有多个,而L2的话只可能得到一个数值,其原因在于
由上图可见,随着系数取值偏离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?