L1 和 L2的区别:
L1范数是指向量中各个元素绝对值值和,也有一个美称叫“稀疏规则算子”。(Lasso regularization)
比如向量
A
=
[
1
,
−
1
,
3
]
A = [1,-1,3]
A=[1,−1,3],那么A的L1范数为
∣
1
∣
+
∣
−
1
∣
+
∣
3
∣
|1|+|-1|+|3|
∣1∣+∣−1∣+∣3∣
总结一下就是:
- L1范数:为x向量各个元素绝对值之和
- L2范数:为x向量各个元素平方和的1/2次方。(又称Eudclidean范数)
在支持向量机学习过程中,
- L1范数实际是一种对于成本函数求解最优的过程,因此,L1范数正则化通过向成本函数中添加L1范数,使得学习得到的结果满足稀疏化,从而方便人类提取特征,即L1范数可以使权值稀疏,方便特征提取。
- L2范数可以防止过拟合,提升模型的泛化能力。
L1,L2 在图上表示如下,引用链接下下文中,
当w趋近与于0的时候,L1的斜率是不变的,所以w会很快的变成0.
而L2的斜率随着w变小而变小,从而很难到达0,因此w会尽可能而不是等于0.
什么是范式:
a function that assigns a strictly positive length or size to each vector in a vector space, except for the zero vector. ——Wikipedia
一个向量的norm就是将该向量投影到[0,)范围内的值,其中0值只有零向量的norm取到。看到这样的一个范围,相信大家就能想到与现实中的距离类比。
∣ ∣ x ∣ ∣ p : = ( ∑ i = 1 n ∣ x i ∣ p ) 1 p ||x||_p := (\sum_{i=1}^n|x_i|^p)^\frac{1}{p} ∣∣x∣∣p:=(i=1∑n∣xi∣p)p1
当p == 1时是L1范数
当p ==2 时是L2范数
引用:https://www.zhihu.com/question/26485586/answer/616029832
L0范数指向量中非0元素的个数,如果我们用L0范数来规范一个参数矩阵,就是希望大部分元素是0。即让参数W是稀疏的。 通过使用L0范数和L1范数可以实现系数,但是L1范数因具有L0更好的优化求解特性而被广泛使用。
让参数稀疏有什么好处:
- 特征选择
- 可解释性
选择 使用L2范数的好处:
- L2范数可以防止过拟合,提高模型泛化能力
- 优化计算
具体原理请参考:
https://blog.youkuaiyun.com/zouxy09/article/details/24971995