正则项L1与L2的区别
定义
L0范数指向量中非零元素的个数
L1范数:向量中每个元素绝对值的和
L2范数:向量元素绝对值的平方和再开平方
为什么需要正则项
在训练模型过程中,当我们的训练数据不够大时,但为了精确拟合训练数据而使模型变得复杂时,会使模型的偏差过小而方差过大,这时模型再去拟合测试数据时会发现效果比较差,泛化能力较弱,这就是过拟合现象。为什么这样,因为数据量不够大的情况下,越复杂的模型越会训练集中所有的数据点,包括噪声。这就会造成在较小的区间中产生较大的波动,这个较大的波动也会反映在这个区间的导数比较大。
这个时候正则项的作用就是通过限制参数的大小,来限制模型的拟合程度,就不会导致跟无正则项模型一样大参数学习大噪声,导致较小的区间产生大波动。
L2正则项
L2正则化可以解决模型训练中的过拟合现象,它也被称为权重衰减。在回归模型中,这也被称为岭回归。
设损失函数为
其中表示没有正则化时的损失函数。对它求w的偏导:
对w进行更新:
我们知道,没有正则化的参数更新为,而L2正则化使用了一个乘性因子 去调整权重,因此权重会不断衰减,并且在权重较大时衰减地快,权重较小时衰减得慢。
下面换一种方式来理解L2正则化对权重的限制。我们的目标是最小化下面的损失函数:
为了最小,需要让和正则化项的和能够最小。若w变大让减小,也会变大,后者就会抑制前者,前者会受到后者的约束,从而让w不会上升地过大。此时就像是一个调整模型拟合精度与泛化能力的权重因子。
现在我们知道了,L2正则化能够限制参数的大小。那么,为什么参数大小被限制了,这个模型就是一个简单的模型,就能够防止过拟合了呢?,当参数很小时,高次方项的影响就会变得十分微弱,这使模型不会对某一个输入太过敏感,从而近似学习到一条简单的曲线,类似最开始的线性模型。也就是说,即使你预设的回归模型是一个9次的多项式回归,通过正则化学习,高次项前的系数 会变得很小,最后的曲线类似一条直线,这就是让模型变成了一个简单的模型。
总结一下,
1)正则化让模型根据训练数据中常见的模式来学习相对简单的模型,无正则化的模型用大参数学习大噪声。
2)L2正则化通过权重衰减,保证了模型的简单,提高了泛化能力。
L1正则项
L1不仅能限制模型参数的取值还能对模型进行稀疏约束。最终模型的权重主要集中在那些高重要度的特征上,对于不重要的特征,权重会很快趋近于0。所以最终权重w会变得稀疏。
L1与L2的区别
相同点:
都能通过限制模型参数的取值,来保证模型的简单,来限制模型的拟合程度,减少噪声对模型的影响,使模型相对于无正则项模型平滑。
区别
-
L1是模型各个参数的绝对值之和。L2是模型各个参数的平方和的开方值。
-
L1会趋向于产生少量的特征,而其他的特征都是0. 因为最优的参数值很大概率出现在坐标轴上,这样就会导致某一维的权重为0 ,产生稀疏权重矩阵
L2会选择更多的特征,这些特征都会接近于0。最优的参数值很小概率出现在坐标轴上,因此每一维的参数都不会是0。当最小化||w||时,就会使每一项趋近于0
L1正则化的情况,在特征为二维时,约束线是一个菱形,等值线极有可能最先与顶点相交,在这种情况下有一个维度的特征就会为0,这就带来了稀疏。当特征的维度变高,坐标轴上角与边都会变多,这更会加大等值线与他们先相交的概率,从而导致了稀疏性。
L2正则化不同,如右图所示,它的约束线是一个圆形,等值线可能与它任意一个位置的点首先相切,这个切点在坐标轴上的概率大大 减小,从而不太容易导致稀疏。
参考资料:
[1] L0、L1、L2范数在机器学习中的应用 https://www.jianshu.com/p/4bad38fe07e6
[2] 贪心nlp