美文网首页
L1稀疏,L2平滑的推理

L1稀疏,L2平滑的推理

作者: ZAK_ML | 来源:发表于2019-03-11 15:13 被阅读0次

介绍L1和L2

  L1和L2正则常被用来解决过拟合问题。而L1正则也常被用来进行特征选择,主要原因在于L1正则化会使得较多的参数为0,从而产生稀疏解。我们可以将0对应的特征遗弃,进而用来选择特征。

角度一(从L1和L2的来源看)

当你想从一个手头的数据集中学习出一套规则时,贝叶斯学派认为仅仅使用这些数据是不够的,还需要加入先验知识。如果你在损失函数中使用了L1正则项,那么其实质就是加入了拉普拉斯先验分布,即认为数据是符合拉普拉斯分布的;如果你使用了L2正则项,那么就是加入了高斯先验分布,即认为数据是符合高斯分布的。一般由于推导和计算方便,会对分布函数取对数,然后再去优化。最终的结果是,由于你的模型参数考虑了数据先验,学习出来的规则就更加接近实际。

我们对高斯分布很熟悉,但是对拉普拉斯分布可能比较陌生,拉普拉斯密度函数的图形和表达式分别如下所示:

我们如果对拉普拉斯密度函数取对数,剩下的是一个一次项|x-u|,这就是L1范式;我们如果对高斯密度函数取对数剩下的就是一个二次项(x-u)^2,这就是L2范式。比较高斯分布的密度函数图像和拉普拉斯分布的密度函数图像,我们很容易看到,当x趋于正无穷和负无穷时,前者是逼近于0的,后者是等于0的。

角度二(从代价函数上看)

但为什么L1正则会产生稀疏解呢?这里利用公式进行解释。

假设只有一个参数为w,损失函数为L(w),分别加上L1正则项和L2正则项后有:

假设L(w)在0处的倒数为d0,即

则可以推导使用L1正则和L2正则时的导数。

引入L2正则项,在0处的导数

引入L1正则项,在0处的导数

可见,引入L2正则时,代价函数在0处的导数仍是d0,无变化。而引入L1正则后,代价函数在0处的导数有一个突变。从d0+λ到d0−λ,若d0+λ和d0−λ异号,则在0处会是一个极小值点。因此,优化时,很可能优化到该极小值点上,即w=0处。

这里只解释了有一个参数的情况,如果有更多的参数,也是类似的。因此,用L1正则更容易产生稀疏解。

角度三(L1正则化本身的导数性质)

这个角度从权值的更新公式来看权值的收敛结果。

首先来看看L1和L2的梯度(导数的反方向):

所以(不失一般性,我们假定:wi等于不为0的某个正的浮点数,学习速率η 为0.5):

L1的权值更新公式为wi = wi - η * 1 = wi - 0.5 * 1,也就是说权值每次更新都固定减少一个特定的值(比如0.5),那么经过若干次迭代之后,权值就有可能减少到0。

L2的权值更新公式为wi = wi - η * wi = wi - 0.5 * wi,也就是说权值每次都等于上一次的1/2,那么,虽然权值不断变小,但是因为每次都等于上一次的一半,所以很快会收敛到较小的值但不为0。

下面的图很直观的说明了这个变化趋势:

L1能产生等于0的权值,即能够剔除某些特征在模型中的作用(特征选择),即产生稀疏的效果。

L2可以得迅速得到比较小的权值,但是难以收敛到0,所以产生的不是稀疏而是平滑的效果。

角度四(几何空间)

这个角度从几何位置关系来看权值的取值情况。

直接来看下面这张图

高维我们无法想象,简化到2维的情形,如上图所示。其中,左边是L1图示,右边是L2图示,左边的方形线上是L1中w1/w2取值区间,右边得圆形线上是L2中w1/w2的取值区间,绿色的圆圈表示w1/w2取不同值时整个正则化项的值的等高线(凸函数),从等高线和w1/w2取值区间的交点可以看到,L1中两个权值倾向于一个较大另一个为0,L2中两个权值倾向于均为非零的较小数。这也就是L1稀疏,L2平滑的效果。

相关文章

  • L1稀疏,L2平滑的推理

    介绍L1和L2   L1和L2正则常被用来解决过拟合问题。而L1正则也常被用来进行特征选择,主要原因在于L1正则化...

  • L1/L2范数

    文章:这个博客 里面介绍了L1、L2范数,说到了L1正则化产生稀疏的权值, L2正则化产生平滑的权值,何为如此? ...

  • 为什么L1稀疏,L2平滑?

    L1正则化本身的导数性质 这个角度从权值的更新公式来看权值的收敛结果。 首先来看看L1和L2的梯度(导数的反方向)...

  • 大话稀疏回归(1)——Lasso、OMP、Lars.....

    大话稀疏回归系列 目录 一.为什么要使回归系数稀疏 二.常用的稀疏回归方法 三.L0和L1、L2正则化 四.求解非...

  • L1和L2正则化

    L1正则:绝对值,Lasso回归L2正则:平方,岭回归 差别 主要差别: L1正则化可以产生稀疏权值矩阵,即产生一...

  • 标签平滑 Label Smoothing 详解及 pytorch

    定义 标签平滑(Label smoothing),像L1、L2和dropout一样,是机器学习领域的一种正则化方法...

  • 机器学习面试004—正则化

    1. L1范数和L2范数的区别是什么? Ans:①L1范数——指向量中各个元素的绝对值之和,又叫“稀疏规则算子”(...

  • 图像稀疏度的计算

    图像(矩阵)稀疏度的计算 文献[1]中提出了,可以利用L1范数和L2范数之间的差异度来衡量矩阵的稀疏度,公式如下:...

  • DL4J中文文档/开始/速查表-2

    正则化 L1/L2 正则化 L1和L2正则化可以容易地通过配置:.l1(0.1).l2(0.2)添加到网络中。注意...

  • 两个列表合成字典

    L1 = ['a','b'] L2 = [1,2] adct = dict(zip(L1, L2))#方法一 ad...

网友评论

      本文标题:L1稀疏,L2平滑的推理

      本文链接:https://www.haomeiwen.com/subject/luhbpqtx.html