在上一篇文章中我们写到了L1损失函数和L2损失函数,本文将讲述L1正则化和L2正则化。损失函数和正则化是作用不同的两个部分,我们将在文中对其进行辨析。
L1和L2正则化
假设我们考虑一个回归问题,数据集
,此处我们选择L2损失函数,则模型优化的目标为:
其中
表示模型的参数。
当我们的数据量不大的时候,可能会造成过拟合的情况。过拟合在分类问题中可以使用决策树的修剪等办法解决,但是在回归问题中,解决过拟合最常用的方式就是对模型进行正则化。
L1正则化(LASSO)
对于同样的回归问题,同样的数据集,我们的优化目标为:
其中,正则化参数
,
表示
的一范数。
L2正则化(岭回归)
我们的优化目标为:
其中,正则化参数
,
表示
的二范数。
正则化和损失函数的区别: 损失函数构成了优化目标的第一部分,也就是 ,在本例中,我们选择的是L2损失函数;正则化构成的是优化目标的第二部分,也就是 和 。正则化是在损失函数的基础上对模型的参数加以控制,避免出现过拟合的情况。
L1和L2正则化的区别
1.从求解效率上看: L2损失函数是可导的,L2正则化也是可导的,所以L2正则化是有解析解的,求解的效率高。但是L1正则化在零点处是不可导的,所以它是没有解析解的,如果问题是一个稀疏问题(简单地说就是很多特征的系数为0),那么可以采用稀疏算法求解,如果问题不是稀疏的,那求解的效率就很低了。
2. 从解的角度看:L2正则化得到不会是稀疏性结果,但是L1正则化可能会得到稀疏结果。
3. L1正则化的优点在于它可以进行特征选择(由于其结果是稀疏的,即很多变量前的系数为0,那么这些系数为0的变量,就是被淘汰的变量);但是L2正则化则不行。(因为L2正则化的结果不是稀疏的)。所以可以认为L1正则化是一种嵌入式的特征选择方法,其特征选择过程与模型的建立过程融为一体,同时完成。
稀疏性说明
从上面的叙述我们可以看出,L1正则化结果稀疏性的问题是关键点,接下来我们辅以图例说明。(注:图片选择周志华《机器学习》253页)
这里我们假设特征(自变量)向量 只有两个维度,所以参数向量 也只有两个维度 和 。我们将其在二维平面图中绘制出来。同时绘制L1正则化的等值线和L2正则化的等值线。我们以L1正则化为例,等值线就是要求 相同。
同时,我们在绘制平方误差等值线,模型所得参数最后的结果就是平方误差等值线与两个正则化等值线的交点坐标。
从图中我们可以发现,L2等值线与平方误差等值线的交点基本都在某一个象限内,即
;但是L1等值线和平方误差等值线的交点经常出现在坐标轴上,也就是说
中存在某些分量为0,这也就是稀疏性。而这些为0的变量就相当于被淘汰,从而达到了变量选择的目的。