@TOC
<hr style=" border:solid; width:100px; height:1px;" color=#0a00000 size=1">
一:范数对比
L0范数: 指向量中非0的元素的个数。(L0范数很难优化求解)
L1范数: 指向量中各个元素绝对值之和
L2范数: 指向量各元素的平方和然后求平方根
注: L0范数,指向量中非零元素的个数。无穷范数,指向量中所有元素的最大绝对值。
<hr style=" border:solid; width:100px; height:1px;" color=#000000 size=1">
二:范数作用
L1范数: 可以进行特征选择,即让特征的系数变为0.
L2范数: 可以防止过拟合,提升模型的泛化能力,有助于处理 condition number不好下的矩阵(数据变化很小矩阵求解后结果变化很大)(核心:L2对大数,对outlier离群点更敏感!)
下降速度:最小化权值参数L1比L2变化的快
模型空间的限制:L1会产生稀疏 L2不会。L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。<hr style=" border:solid; width:100px; height:1px;" color=#000000 size=1">
三:L0范数和L1范数之间的比较
L0范数: 指向量中非零元素的个数。
L1范数: 是指向量中各个元素绝对值之和,也有个美称叫“稀疏规则算子”(Lasso regularization)。现在我们来分析下这个价值一个亿的问题:
1.为什么L1范数会使权值稀疏?
答:任何的规则化算子,如果他在Wi=0的地方不可微,并且可以分解为一个“求和”的形式,那么这个规则化算子就可以实现稀疏。
2.既然L0可以实现稀疏,为什么不用L0,而要用L1呢?
答:一是因为L0范数很难优化求解(NP难问题),二是L1范数是L0范数的最优凸近似,而且它比L0范数要容易优化求解。所以大家才把目光和万千宠爱转于L1范数。
3.总结
答:L1范数和L0范数可以实现稀疏,L1因具有比L0更好的优化求解特性而被广泛应用。
理解备注:1.不可微的理解:
在w1/w2=0的地方因为是|w1|,所以其是不可导的。 解决方法:LARS、FIST、坐标轴下降法。
2.为什么要特征选择/稀疏:
<hr style=" border:solid; width:100px; height:1px;" color=#000000 size=1">
四:L1范数和L2范数的比较
L1范数: 是指向量中各个元素绝对值之和,也有个美称叫“稀疏规则算子”(Lasso regularization)。 L2范数: 它也不逊于L1范数,它有两个美称,在回归里面,有人把有它的回归叫“岭回归”(Ridge Regression),有人也叫它“权值衰减weight decay”。注意,其一般会在L2的范数基础上在平方!!!
注:L1范数的理解见前面,L2范数的理解如下
L2范数的规则项||W||2最小,可以使得W的每个元素都很小,都接近于0,但与L1范数不同,它不会让它等于0,而是接近于0, 这里是有很大的区别的哦。而越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象。
1.为什么越小的参数说明模型越简单?
我的理解是:限制了参数很小,实际上就限制了多项式某些分量的影响很小(看上面线性回归的模型的那个拟合的图),这样就相当于减少参数个数。这里可以想象只有两者参数w1、w2,对于y= w1x1+w2x2,如果w1和w2越小,当x1、x2发生变化的时候,y的值变化不是很大,所以比较平滑,模型也就越简单。
2.L2范数的好处
3.两者的差距
1)下降速度:
如上图:L1就是按绝对值函数的“坡”下降的,而L2是按二次函数的“坡”下降。所以实际上在0附近,L1的下降速度比L2的下降速度要快。2)模型空间的限制:我们将模型空间限制在w的一个L1-ball 中。为了便于可视化,我们考虑两维的情况,在(w1, w2)平面上可以画出目标函数的等高线,而约束条件则成为平面上半径为C的一个 norm ball 。等高线与 norm ball 首次相交的地方就是最优解:
可以看到,L1-ball 与L2-ball 的不同就在于L1在和每个坐标轴相交的地方都有“角”出现,而目标函数的测地线除非位置摆得非常好,大部分时候都会在角的地方相交。注意到在角的位置就会产生稀疏性,例如图中的相交点就有w1=0,而更高维的时候(想象一下三维的L1-ball 是什么样的?)除了角点以外,还有很多边的轮廓也是既有很大的概率成为第一次相交的地方,又会产生稀疏性。 相比之下,L2-ball 就没有这样的性质,因为没有角,所以第一次相交的地方出现在具有稀疏性的位置的概率就变得非常小了。这就从直观上来解释了为什么L1-regularization 能产生稀疏性,而L2-regularization 不行的原因了。 因此,一句话总结就是:L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。Lasso在特征选择时候非常有用,而Ridge就只是一种规则化而已。 <hr style=" border:solid; width:100px; height:1px;" color=#000000 size=1">
五:L1范数和L2范数之反向传播的理解
L1范数: 因为存在不可导的地方,其解决方法参见:LARS、FIST、坐标轴下降法。 LARS: https://blog.csdn.net/xbinworld/article/details/44284293 FIST: https://www.cnblogs.com/louisanu/p/12045861.html 坐标轴下降法: https://blog.csdn.net/qq_32742009/article/details/81735274
L2范数: