范数的定义
范数的一般化定义:对于实数X,p-norm的定义为:
其赋予某个向量空间(或矩阵)中每个元素以长度或大小。直观地说,范数越大,则相应的向量或矩阵也就越大。三种范数在机器学习中的正则化与稀疏编码(Sparse Coding)中有非常有趣的应用。
L0
范数
其表示向量中非零元素的个数。如果我们使用
L1
范数
在机器学习特征选择中的应用:
稀疏规则化能够实现特征的自动选择。一般来说,xi的大部分元素(也就是特征)都是和最终的输出yi没有关系或者不提供任何信息的,在最小化目标函数的时候考虑xi这些额外的特征,虽然可以获得更小的训练误差,但在预测新的样本时,这些没用的信息反而会被考虑,从而干扰了对正确yi的预测。稀疏规则化算子的引入就是为了完成特征自动选择,它会学习地去掉这些没有信息的特征,也就是把这些特征对应的权重置为0。
L2
范数
一.从学习理论的角度
L2
可以防止过拟合:
我们让
二.从优化计算的角度
L2
范数可以有助于处理condition number 不好地情况下矩阵求逆很困难的问题
具体参见http://blog.csdn.net/zouxy09/article/details/24971995/
三.
L2
范数与
L1
范数的关系
1)下降速度
我们知道,L1和L2都是规则化的方式,我们将权值参数以L1或者L2的方式放到代价函数里面去。然后模型就会尝试去最小化这些权值参数。而这个最小化就像一个下坡的过程,L1和L2的差别就在于这个“坡”不同,如下图:L1就是按绝对值函数的“坡”下降的,而L2是按二次函数的“坡”下降。所以实际上在0附近,L1的下降速度比L2的下降速度要快。
2)最优化问题的平滑性
从最优化问题解的平滑性来看,
但由于
3)模型空间的限制
实际上,对于L1和L2规则化的代价函数来说,我们可以写成以下形式:
也就是说,我们将模型空间限制在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 不行的原因了。因此,一句话总结就是:
而
L2,1
范数
原始矩阵是n行t列的,可以看出
从中可以看出,
在矩阵稀疏表示模型中,其作为正则化的作用?
它是每行的
不同于