L0,L1,L2范式的区别和应用

来源:互联网 发布:ubuntu 图形界面 编辑:程序博客网 时间:2024/06/08 11:18

L0范数是指向量中非零元素的个数。

如果用L0规则化一个参数矩阵W,就是希望W中大部分元素是零,实现稀疏。

L0范数的应用:

1)特征选择
​实现特征的自动选择,去除无用特征。稀疏化可以去掉这些无用特征,将特征对应的权重置为零。
2)可解释性(interpretability)​
例如判断某种病的患病率时,最初有1000个特征,建模后参数经过稀疏化,最终只有5个特征的参数是非零的,那么就可以说影响患病率的主要就是这5个特征。


L1范数是指向量中各个元素的绝对值之和,也叫”系数规则算子(Lasso regularization)“。

L1范数也可以实现稀疏,通过将无用特征对应的参数W置为零实现。



L0和L1都可以实现稀疏化,不过一般选用L1而不用L0,原因包括:1)L0范数很难优化求解(NP难);2)L1是L0的最优凸近似,比L0更容易优化求解。(这一段解释过于数学化,姑且当做结论记住)


L2范数​​是指向量各元素的平方和然后开方,用在回归模型中也称为岭回归(Ridge regression)。


L2避免过拟合的原理是:让L2范数的规则项||W||2 尽可能小,可以使得W每个元素都很小,接近于零,但是与L1不同的是,不会等于0;这样得到的模型抗干扰能力强,参数很小时,即使样本数据x发生很大的变化,模型预测值y的变化也会很有限。


L2范数除了避免过拟合问题,还有一个优点是有助于处理condition number不好的情况下,矩阵求解困难的问题。condition number是对系统ill-condition程度的一个衡量标准。假设有方程组Ax=b,需要求解x。如果A或者b发生轻微改变,就会使得x的解发生很大变化,那么这个方程组系统就是ill-condition的,反之就是well-condition的。下图为例说明:


第一行为原始的矩阵AX=b,第二行为对b 做了稍微的更改,第三行对A做了稍微的更改。

第二行对b 的微小的改变可以在第二列中发现解的值发生了很大的变化,而第四列的解并没有发生多大变化。

第三行对A的微小的改变可以发现在第二列中发现解的值发生了很大的变化,而第四列的解并没有发生多大变化。

所以第一列的方程组是ill-condition的,而第三列的方程组是well-condition的。

具体到通过训练数据建立的模型中时,ill-condition可以说就是不稳定的,当输入的样本数据发生变化时,预测结果就会不准确。​condition number就是用来对系统的ill-condition程度进行衡量的,condition number值小的就是well-condition,反之为ill-condition。


 L1和L2的差别

1)下降速度
建立模型的过程中,会尝试最小化损失函数,这个过程就像一个下坡的过程,L1和L2的差别在于坡的斜率,如下图所示。



​2)模型空间的限制
如果将L1和L2的模型空间都表示在(W1,W2)空间上,则可以发现L1在和每个相交的位置都有角出现,L2则没有角出现,故L1的位置容易产生稀疏性,而L2相交的位置有稀性的概率非常低。











0 0
原创粉丝点击