一、L1和L2正则化是什么?
在防止过拟合的方法中有L1正则化和L2正则化,L1和L2是正则化项,又叫做惩罚项,是为了限制模型的参数,防止模型过拟合而加在损失函数后面的一项。
在二维的情况下,黄色的部分是L2和L1正则项约束后的解空间,绿色的等高线是凸优化问题中目标函数的等高线,如下图所示。由图可知,L2正则项约束后的解空间是圆形,而L1正则项约束的解空间是多边形。显然,多边形的解空间更容易在尖角处与等高线碰撞出稀疏解。
图片参考来源:《百面机器学习》
看完上面内容,进一步追求细节,为什么加入正则项就是定义了一个解空间约束? 为什么L1和L2的解空间是不同的?
这些问题其实可以通过KKT条件给出一种解释。
事实上,“带正则项”和“带约束条件”是等价的。为了约束w的可能取值空间从而防止过拟合,我们为该最优化问题加上一个约束,就是w的L2范数的平方不能大于m:
为了求解带约束条件的凸优化问题,写出拉格朗日函数
若w*和 λ*分别是原问题和对偶问题的最优解,则根据KKT条件,它们应满足
此时可以发现,上述第一个式子就是w*为带L2正则项的优化问题的最优解的条件,而λ*就是L2正则项前面的正则参数。
此时对问题的理解就更加深刻了。L2正则化相当于为参数定义了一个圆形的解空间(因为必须保证L2范数不能大于m),而L1正则化相当于为参数定义了个棱形的解空间。如果原问题目标函数的最优解不是恰好落在解空间内,那么约束条件下的最优解一定是在解空间的边界上,而L1“棱角分明”的解空间显然更容易与目标函数等高线在角点碰撞,从而产生稀疏解。
二、区别
区别一:
- L1是模型各个参数的绝对值之和。
- L2是模型各个参数的平方和的开方值。
区别二:
- L1会趋向于产生少量的特征,而其他的特征都是0。因为最优的参数值很大概率出现在坐标轴上,这样就会导致某一维的权重为0 ,产生稀疏权重矩阵;
- L2会选择更多的特征,这些特征都会接近于0。最优的参数值很小概率出现在坐标轴上,因此每一维的参数都不会是0。当最小化||w||时,就会使每一项趋近于0。
三、其他问题
-
为什么参数越小代表模型越简单?
- 越是复杂的模型,越是尝试对所有样本进行拟合,包括异常点。这就会造成在较小的区间中产生较大的波动,这个较大的波动也会反映在这个区间的导数比较大。只有越大的参数才可能产生较大的导数。因此参数越小,模型就越简单。
-
实现参数的稀疏有什么好处?
- 因为参数的稀疏,在一定程度上实现了特征的选择。一般而言,大部分特征对模型是没有贡献的。这些没有用的特征虽然可以减少训练集上的误差,但是对测试集的样本,反而会产生干扰。稀疏参数的引入,可以将那些无用的特征的权重置为0。
-
L1范数和L2范数为什么可以避免过拟合?
- 加入正则化项就是在原来目标函数的基础上加入了约束。当目标函数的等高线和L1,L2范数函数第一次相交时,得到最优解。