什么是L1正则化
在机器学习任务中,对于一个参数模型,优化参数时一定伴随着损失函数的建立与优化。
通常不加入L1正则化的损失函数为
加入L1正则化的损失函数为
所以L1正则化就是在原来损失函数的基础上,再加上模型参数的权重绝对值即可。通常L1正则也叫 lasso回归
。
(其中等号右边的前半部分称为经验风险
,后半部分称为结构风险
,有兴趣了解的也可以自行查阅相应资料)。
L1正则化防止过拟合的原理
为什么新的损失函数可以防止模型的过拟合呢?
我们经常在一些文章或者博客中看到L1防止过拟合的方式是因为L1正则化有特征选择的作用,容易产生稀疏解,即可以使得重要特征的参数不为0,而使得一些不重要特征的参数变为0将其抛弃掉。
那么究竟为什么L1具有特征选择的作用,是如何将不重要特征的参数学习的结果为0的呢?
我们在优化更新参数w
的时候,一般需要对损失函数求解一阶导数,对原始损失函数求解在w=0
处的一阶导数为:
则引入L1正则项后,求解w=0
的一阶导数为:
可见引入L1正则后,在0处的导数有一个突变,从d0−λ
变到d0+λ
。
若d0−λ
和d0+λ
异号,则在0处会是一个极小值点,因此,参数优化时很有可能优化到该极小值点上,即w=0
处。当有多个参数时也是类似的情况,因此用L1正则化容易产生稀疏解。
上面我们知道L1正则化可以通过让模型学习更多稀疏解,而使得更多的参数变为0,当一个模型中有很多0值参数时,其模型复杂度会变得更小,从而给予模型防止过拟合的能力。