前言
在机器学习领域,L1、L2正则是防止过拟合的利器。本文主要梳理一下L1正则和L2正则的关系,主要包括回答以下几个问题:
1、L1正则和L2正则的区别
2、L1正则为什么更容易得到稀疏解
3、正则的作用
L1正则和L2正则的区别
对于这个问题,可以看下知乎的这个解答https://zhuanlan.zhihu.com/p/35356992
L1更容易得到稀疏解,就是参数会出现很多零;L2会使得参数取值更加平滑,即参数取值会比较小;从实际应用效果来看,L2效果比较好。
L1正则为什么更容易得到稀疏解
关于这个问题,可以看这个 https://www.zhihu.com/question/37096933
L2正则更新参数时,会在参数前乘以一个小于1的系数,因而会变得越来越小;L1正则对参数求导的话,当正则系数大于零处的导数时,零就是极小值点,因而好多参数会变为零。
正则的作用
怎么评估模型的推广能力呢?假设我们有待预测的数据点 ( x , y ) (x,y) (x,y), y y y是真实取值, f f f是模型, f ( x ) f(x) f(x)就是模型预测值。模型的推广能力使用模型预测的期望残差来衡量,期望是基于模型的分布计算的。使用不同的训练数据就可以得到不同的模型,而训练数据是有概率分布的,因而不同的模型出现的概率就不同。
E f ( f ( x ) − y ) 2 = ( E f f ( x ) − y ) 2 + E f ( f ( x ) − E f f ( x ) ) 2 E_f(f(x)-y)^2=(E_ff(x)-y)^2+E_f(f(x)-E_ff(x))^2 Ef(f(x)−y)2=(Eff(x)−y)2+Ef(f(x)−Eff(x))2
等号右边儿第一项叫做bias,第二项叫做variance。模型越复杂,即模型参数越多,bias越小,variance越大;反之,模型越简单,bias越大,variance越小。
所以通常当模型复杂度适中的时候,即模型参数不要太多也不要太少,会有比较好的推广能力。对于深度学习模型来说,模型参数相对于训练数据来说往往都太多了,这时使用正则就可以减少模型参数从而提升模型的推广能力。L1正则会使许多参数变为零,L2正则虽然不会使参数变为零,但是会使参数变得很小,亦可以降低模型复杂度。所以L1/L2正则都可以提升模型的推广能力。