L1 和 L2正则化的区别,在机器学习中如何选择

L1范数的定义

L1范数是指向量中各个元素绝对值之和

\left \| x \right \|_{1}=\sum |x_{i}|

L1正则

带L1正则项的cost function:

J(w,b)=\frac{1}{m}\sum_{i=1}^{m}L(\widehat{y}^{i}, y^{i})+\frac{\lambda }{2m}\left \| w \right \|_{1}

用L1正则得到的参数稀疏,有很多0。用一个图例解释下。假设一个二维样本,求解二维参数W(w1,w2),如果没有正则项,对于线性回归的目标函数来说,最优解再最里面的紫色圆圈的等高线上。加入L1正则项,|w1| + |w2| =F,即下图的菱形,现在不仅希望目标函数越小越好,且希望F越小越好(菱形越小越好)。

preview

那么在菱形与等高线相交或相切时,且菱形最小,满足条件。从图中可以看出,在座标轴上,等高线与菱形最容易相交,比如上图,在众轴上,w1为0,所以,L1正则容易求得稀疏解。

参数稀疏有什么好处?

    (1)特征选择(Feature Selection)

      参数稀疏规则化能够实现特征的自动选择,在特征工程的过程中,一般来说,xi的大部分元素(特征)都和其标签yi没有关系的。我们在最小化目标函数的时候,考虑了这些无关特征,虽然可以获得最小的训练误差,但是对于新的样本时,这些没用的信息反而被考虑,干扰了对样本的预测。稀疏规则化将这些没用的特征的权重置为0,去掉这些没用的特征。

     (2)可解释性

     将无关特征置为0,模型更容易解释。例如:患某种病的概率为y,我们收集到的数据x是1000维的,我们的任务是寻找这1000种因素是如何影响患上这种病的概率。假设,我们有一个回归模型:y=w1*x1+w2*x2+…+w1000*x1000+b,通过学习,我们最后学习到w*只有很少的非零元素。例如只有5个非零的w*,那么这5个w*含有患上这种病的关键信息。也就是说,是否患上这种病和这5个特征相关,那事情变得容易处理多了。

L2范数定义

\left \| x \right \|_{2}=\sqrt{\sum |x_{i}|^2}

L2正则

J(w,b)=\frac{1}{m}\sum_{i=1}^{m}L(\widehat{y}^{i}, y^{i})+\frac{\lambda }{2m}\left \| w \right \|_{2}

L2正则化得到的w每个元素都比较小,接近0,更加平滑(不等于0)

L1范数MAE 与 L2范数 MSE作为损失函数的对比

MSE= \sum_{i=1}^{n}(\widehat{y}^{i}-y^{i})^{2}

MAE= \sum_{i=1}^{n}|\widehat{y}^{i}-y^{i}|

在机器学习中,通过最小化预测值和真实值的误差,更新模型参数,那么基于L1范数的MAE误差和基于L2范数的MSE误差有什么区别,该怎么选择呢?

(1)MAE相比MSE,鲁棒性更强。MSE对误差取了平方,如果数据存在异常值,误差会被放大。所以,MAE对于异常值比MSE更稳定。

(2)然而MAE存在一个严重的问题(特别是对于神经网络):更新的梯度始终相同,也就是说,即使对于很小的损失值,梯度也很大。这样不利于模型的学习。为了解决这个缺陷,我们可以使用变化的学习率,在损失接近最小值时降低学习率。而MSE在这种情况下的表现就很好,即便使用固定的学习率也可以有效收敛。MSE损失的梯度随损失增大而增大,而损失趋于0时则会减小。这使得在训练结束时,使用MSE模型的结果会更精确。

根据不同情况选择损失函数

(1)如果需要检测出数据重要的异常值,选用MSE损失函数,如果把异常值当作受损数据,应避免异常值的影响,选用MAE损失函数

(2)二者兼有的问题是:在某些情况下,上述两种损失函数都不能满足需求。例如,若数据中90%的样本对应的目标值为150,剩下10%在0到30之间。那么使用MAE作为损失函数的模型可能会忽视10%的异常点,而对所有样本的预测值都为150。
这是因为模型会按中位数来预测。而使用MSE的模型则会给出很多介于0到30的预测值,因为模型会向异常点偏移。上述两种结果在许多商业场景中都是不可取的。这些情况下应该怎么办呢?最简单的办法是对目标变量进行变换。而另一种办法则是换一个损失函数。如Huber损失,Log-Cosh损失,分位数损失。也有些时候可以将利用MAE与MSE训练出的模型进行融合。

(3)选择MSE训练模型效率更高

 

Reference

1. https://baijiahao.baidu.com/s?id=1603857666277651546&wfr=spider&for=pc

2. https://zhuanlan.zhihu.com/p/35356992?utm_medium=social&utm_source=wechat_session

3. https://blog.csdn.net/fisherming/article/details/79492602

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章