浅谈L1 与L2 正则项
1 从范数开始吧
1.1 范数是什么
范数:一种具有抽象长度概念的函数,被用来度量某个向量空间(或矩阵)中每个向量的长度或大小。
1.2 范数的性质
通常意义上,范数具有以下三种基本性质:
- 非负性:
- 齐次性:
- 三角不等式:
1.3 常用的几组范数
以空间为例,空间类似,若,
则有。与闵可夫斯基(Minkowski)定义一样,可以将定义写成如下形式,
值得注意的是,范数为一组范数。根据p的取值不同,其具体范数不同。通常,p取以下值:0,1,2,
用来度量向量中非零元素的个数。范数的问题在于,非零元素开零次方不可为,意义表达有障碍,被认为是NP难题。因此通常用如下表达:
实际应用中,经常用范数来逼近,
范数也称为Lasso,表示向量中非零元素的绝对值之和
范数也称为Ridge,表示向量中非零元素的平方和开方
被用来度量向量中元素最大值,通常情况下表示为:
2 机器学习角度
2.1 损失函数
机器学习中损失函数(Loss function )用来描述真实值与预测值之间的差异,表达如下:
2.2 最优化问题
根据损失函数表达式,当y与f(x)的值差不多时,损失函数的值会无限接近于某个数,暂记为L;当y与f(x)的值差很多时,损失函数的值会高于L。因此可以判定,损失函数有下确界。
此时,需要找到一个模型f(f属于F泛函空间)使得在全局中,损失函数的值最小。即:
这就转化为了最优化问题。由于此时只考虑了模型的数据拟合,而忽略了模型的复杂度(过拟合overfitting),因此我们需要引入可以描述模型复杂度的一项。即正则项(regularizer),表达式如下:
为什么选用范数作为正则项呢?
由于求解损失函数最优化问题中非负性保证了损失函数有下确界。此时所需的正则项也应保证具有相同的性质。而根据范数的性质可知,其也有一个下界,且有非负性提供。当c=0时,由齐次性保证了具有下确界。因此选用范数作为正则项。
2.3 范数与机器学习的联系
下面,我们通过一个例子来说明范数作为正则项在机器学习中的使用。若在泛函空间F中,存在以下f模型及其损失函数,
此时,我们希望模型能够尽可能的简单,比如使后两项的系数尽可能的接近于0,这样模型f整体最高次方可以控制在平方的层面上。那么,正则项就是作用在模型上,使模型的某些权重尽可能的小,模型尽可能的简单(可以在一定程度上避免过拟合)
由此,损失函数的表达为,
这时可以把正则项(regularizer)看作是对模型的一种约束规范项,使其在空间中的形态表达更为简单,不会因为模型复杂度过高而导致过拟合问题。它通过对损失函数进行惩罚来实施约束规范。
那么具体有哪些惩罚措施或者说约束规范呢?
这就引入了前面提到的范数,常用的是p值为1,2的这两组范数。
根据上述模型事例,
3. L1与L2的对比
3.1 分析
下面我们来具体分析下,这两组正则项有什么不同。
L1正则项实际上在做的是特征选择(feature selection)。它会对不重要的输入特征置为零权值(zero weight),有用的特征置为非零权值(non-zero weight)。而L2正则项则使权值都逼近到非常小的数,但是无法达到零。也因此,L1具有稀疏性。以下图例引自周志华《机器学习》一书,
对于我们要求解的目标函数f,我们希望能够找到一个交点,使得正则项等值线与平方误差项等值线的和最小。由于L1会把不重要的特征置为零,放到图中其等值线(菱形)交点则易落在坐标轴上,另一参数值交点为零,因此具有稀疏性。而L2等值线是一组圆形,其交点可能落在平面中任意位置,因此不具备稀疏性。
对于鲁棒性,由于L1采取的是线性计算,L2则是指数方式增加,因此L1对于数据中异常值(outlier)的容忍力要高于L2,其鲁棒性更强。
关于求解的数量,根据L1和L2的定义可知,L1可以有多个解,L2则只有一个解。
3.2 对比总结
| L1 | L2 |
|---|---|
| 度量为绝对误差和 | 度量为平方差和 |
| 具有稀疏性 | 不具有稀疏性 |
| 有多个解 | 有一个解 |
| 具备特征选择 | 无特征选择 |
| 鲁棒性更强 | 鲁棒性差 |
参考资料
- https://blog.csdn.net/zouxy09/article/details/24971995
- https://blog.csdn.net/a493823882/article/details/80569888
- https://blog.csdn.net/vividonly/article/details/50723852?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase
- https://medium.com/datadriveninvestor/l1-l2-regularization-7f1b4fe948f2
- https://blog.csdn.net/anshuai_aw1/article/details/89435414