一、L0范数与L1范数
L0范数是指向量中非0的元素的个数。如果我们用L0范数来规则化一个参数矩阵W的话,就是希望W的大部分元素都是0。让参数W是稀疏的。
L1范数是指向量中各个元素绝对值之和,也叫“稀疏规则算子”(Lasso regularization)。
既然L0可以实现稀疏,为什么不用L0,而要用L1呢?一是因为L0范数很难优化求解(NP难问题),二是L1范数是L0范数的最优凸近似,而且它比L0范数要容易优化求解。L1范数和L0范数可以实现稀疏,L1因具有比L0更好的优化求解特性而被广泛应用。
为什么要实现参数稀疏呢?
1)特征选择(Feature Selection):
一般来说,xi的大部分元素(也就是特征)都是和最终的输出yi没有关系或者不提供任何信息的,在最小化目标函数的时候考虑xi这些额外的特征,虽然可以获得更小的训练误差,但在预测新的样本时,这些没用的信息反而会被考虑,从而干扰了对正确yi的预测。稀疏规则化算子的引入就是为了完成特征自动选择的光荣使命,它会学习地去掉这些没有信息的特征,也就是把这些特征对应的权重置为0。
2)可解释性(Interpretability):
模型更容易解释。如果最后学习到的w*就只有很少的非零元素,那么我们就有理由相信,这些对应的特征在分析上面提供的信息是巨大的,决策性的。
二、L2范数
L2范数“岭回归”(Ridge Regression)。改善机器学习里面一个非常重要的问题:过拟合。
欠拟合(underfitting,也称High-bias)、合适的拟合和过拟合(overfitting,也称High variance)三种情况。
L2范数是指向量各元素的平方和然后求平方根。我们让L2范数的规则项||W||2最小,可以使得W的每个元素都很小,都接近于0,但与L1范数不同,它不会让它等于0,而是接近于0,而越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象。参数越小,限制了多项式某些分量的影响,或者减少参数个数。通过L2范数,我们可以实现了对模型空间的限制,从而在一定程度上避免了过拟合。
L2范数的好处,一方面可以防止过拟合,提升模型的泛化能力。另外一方面,从优化计算的角度来看:L2范数有助于处理condition number不好的情况下矩阵求逆很困难的问题。condition number就是拿来衡量ill-condition系统(输入稍微改变下,输出就发生很大的改变)的可信度的。如果方阵A是非奇异的,那么A的conditionnumber定义为:
对condition number来个一句话总结:conditionnumber是一个矩阵(或者它所描述的线性系统)的稳定性或者敏感度的度量,如果一个矩阵的condition number在1附近,那么它就是well-conditioned的,如果远大于1,那么它就是ill-conditioned的,如果一个系统是ill-conditioned的,它的输出结果就不要太相信了。L2范数有助于处理condition number不好的情况下矩阵求逆很困难的问题。加上L2规则项,就变成了下面这种情况,就可以直接求逆了:
L2范数不但可以防止过拟合,还可以让我们的优化求解变得稳定和快速。
L1和L2的差别。
1)下降速度
L1和L2都是规则化的方式,我们将权值参数以L1或者L2的方式放到代价函数里面去。然后模型就会尝试去最小化这些权值参数。而这个最小化就像一个下坡的过程,L1和L2的差别就在于这个“坡”不同,L1就是按绝对值函数的“坡”下降的,而L2是按二次函数的“坡”下降。所以实际上在0附近,L1的下降速度比L2的下降速度要快。所以会非常快得降到0。
看导数一个是1一个是w便知, 在靠进零附近, L1以匀速下降到零, 而L2则完全停下来了. 这说明L1是将不重要的特征(或者说, 重要性不在一个数量级上)尽快剔除, L2则是把特征贡献尽量压缩最小但不至于为零. 两者一起作用, 就是把重要性在一个数量级(重要性最高的)的那些特征一起平等共事(通过不同的系数可以调节。比如:Elastic Net)。
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就只是一种规则化而已。
转自:作者:江州司马binbin
链接:https://www.jianshu.com/p/798a31fad527
來源:简书