对L1与L2正则化的一些理解

/ Algorithm / No comments yet / 568 browses

欠拟合&过拟合

在做数据挖掘时,机器学习模型在拟合训练集数据时会遇到两种情况,一种是欠拟合,另一种是过拟合。感觉现在一说到防止模型过拟合增强模型的泛化能力(过拟合:training loss很小,validation loss很大),首先想到的就是加入正则化(Regularization)。其中正则化分为L1与L2,但是正则化为什么可以增强模型的泛化能力?如何判断一个模型是过拟合还是欠拟合呢? alt

图片出自《统计学习方法》-李航著,第1.4章节

如上图所示,模型复杂度接近零点时为欠拟合,这时training loss和validation loss都比较大且都还有下降的趋势,当随着模型复杂度上升时,training loss一直处于单调递减的趋势而validation loss却先减后增,validation loss斜率即导数为零时,模型的泛化能力达到最高,这时如果再对训练集进行拟合时就是过拟合。过拟合和欠拟合的模型不能有效地预测未知数据因而没有太高的使用价值。

L1正则化

设\(f(w)\)为目标函数,\(L(w)\)为原始的损失函数即经验风险,那么L1正则化就是在原始损失函数\(L(w)\)的基础上加入的\(\lambda\sum_{w}|w|\)后缀项,简单的公式示例如下$$f(w)=L(w)+\lambda\sum_{w}|w|$$
计算\(f(w)\)的导数如下 $$\frac{\partial f(w)}{\partial w} = \frac{\partial L(w)}{\partial w} + \lambda sgn(w)$$ 那么\(w\)的更新如下所示 $$w^{'}=w-\eta (\frac{\partial L(w)}{\partial w} + \lambda sgn(w))$$

sgn(w) = 1 if w<0 else -1

其中\(\eta\)为学习率,\(w\)为原来的权重,\(w^{'}\)为更新后的心权重,\(sgn\)为符号函数。当\(w>0\)时,\(w^{'}\)在原来梯度\(\frac{\partial L(w)}{\partial w}\)更新的基础上,又减了一项正则项\(\lambda\),此时正则项的作用是使\(w\)越发趋近于0;当\(w<0\)时,\(w^{'}\)在原来梯度\(\frac{\partial L(w)}{\partial w}\)更新的基础上,加了一项正则项\(\lambda\),也是使\(w\)趋近于0.

都说L0是降低模型的复杂度,我觉得L0是对特征的选择,是不是等同于降维?先用自编码器降维再?PCA?...

L2正则化

L2正则化的形式与L1类似,不同的是L2正则化是在原来的损失函数后加入的是二次项的约束,公式如下 $$f(w)=L(w)+\frac{\lambda}{2}\sum_{w}w^{2}$$
公式中\(\frac{\lambda}{2}\)中的2没有意义,只是为了抵消\(w^{2}\)求导后的2,便于计算。下面对\(f(w)\)求导 $$\frac{\partial f(w)}{\partial w} = \frac{\partial L(w)}{\partial w} + \lambda w$$ 那么\(w\)的更新公式如下 $$w^{'} = w-\eta(\frac{\partial L(w)}{w}+\lambda w)$$ $$w^{'} = (1-\eta \lambda)w-\eta \frac{\partial L(w)}{\partial w}$$ 如果不使用L2正则化的话,\(w\)的更新公式为 $$w^{'} = w-\eta \frac{\partial L(w)}{\partial w}$$ L2正则比原来的目标函数多了一项\((1-\eta \lambda)\),因为\(\eta >0\),\(\lambda > 0\),且\(0<(1-\eta \lambda)<1\),所以\(w\)的权重一直被削弱,这就是L2使权重衰减的原因。

L2正则化的作用是削弱单一特征对模型的影响,使每个特征对模型的影响更均匀,从而使模型更鲁棒?

我的实际应用

记得当初去实习,第一次做的是竞品APP的分析,其有一个亮点是给用户提供若干道心理测试题目,每道测试题目都四个选项,最后根据用户的回答计算用户的五维还是六维的心理属性。当初是想知道如故是怎么根据测试问题计算得到的心理属性,然后就写了爬虫模拟答题,得到了上千份回答与对应的几维心理属性。最后是用加入L1正则项的逻辑回归做的,每一维心理属性做一个逻辑回归模型。结果极高的概率是每一道题目对应是某一维心理属性得分,和“九型人格测试”如出一辙。我才不会告诉你们那个APP叫什么呢