作者:大坑啊同志 | 来源:互联网 | 2023-09-15 16:46
范数的定义
范数的一般化定义:对于实数X,p-norm的定义为:
||X||p=(∑ni=1|xi|p)1p
其赋予某个向量空间(或矩阵)中每个元素以长度或大小。直观地说,范数越大,则相应的向量或矩阵也就越大。三种范数在机器学习中的正则化与稀疏编码(Sparse Coding)中有非常有趣的应用。
L0
范数
||X||0=0∑ni=0X0i−−−−−−−√
with
xi!=0
其表示向量中非零元素的个数。如果我们使用
L0
来规则化参数向量w,就是希望w的元素大部分都为零。
L0
范数的这个属性,使其非常适用于机器学习中的稀疏编码。在特征选择中,通过最小化
L0
范数来寻找最少最优的稀疏特征项。但是,
L0
范数的最小化问题是NP难问题。
L1
范数是
L0
范数的最优凸近似,它比
L0
范数要更容易求解。因此,
L0
优化过程将会被转换为更高维的范数(例如
L1
范数)问题。
L1
范数
||X||1=∑ni=1|Xi|
L1
范数是向量中各个元素绝对值之和,也被称作“Lasso regularization”(稀疏规则算子)。
在机器学习特征选择中的应用:
稀疏规则化能够实现特征的自动选择。一般来说,xi的大部分元素(也就是特征)都是和最终的输出yi没有关系或者不提供任何信息的,在最小化目标函数的时候考虑xi这些额外的特征,虽然可以获得更小的训练误差,但在预测新的样本时,这些没用的信息反而会被考虑,从而干扰了对正确yi的预测。稀疏规则化算子的引入就是为了完成特征自动选择,它会学习地去掉这些没有信息的特征,也就是把这些特征对应的权重置为0。
L1
范数与
L0
范数都可以实现稀疏,而
L1
范数比
L0
具有更好的优化求解特性而被广泛使用。
L0
范数本身是特征选择的最直接最理想的方案,但如前所述,其不可分,且很难优化,因此实际应用中我们使用
L1
来得到
L0
的最优凸近似。
L2
范数
||X||2=∑ni=0X2i−−−−−−−√
一.从学习理论的角度
L2
可以防止过拟合:
我们让
L2
的规则化项
||w||2
最小,可以使w中的每个元素都很小,但是不是像
L1
范数那样使元素等于0,而是接近于零。越小的参数说明模型越简单,越简单的模型越不容易产生过拟合的现象。??通过
L2
范数可以防止过拟合,提升模型的泛化能力。
二.从优化计算的角度
L2
范数可以有助于处理condition number 不好地情况下矩阵求逆很困难的问题
具体参见http://blog.csdn.net/zouxy09/article/details/24971995/
L2
范数不仅可以防止过拟合,还可以让我们的优化求解变的稳定和迅速。
三.
L2
范数与
L1
范数的关系
1)下降速度
我们知道,L1和L2都是规则化的方式,我们将权值参数以L1或者L2的方式放到代价函数里面去。然后模型就会尝试去最小化这些权值参数。而这个最小化就像一个下坡的过程,L1和L2的差别就在于这个“坡”不同,如下图:L1就是按绝对值函数的“坡”下降的,而L2是按二次函数的“坡”下降。所以实际上在0附近,L1的下降速度比L2的下降速度要快。
2)最优化问题的平滑性
从最优化问题解的平滑性来看,
L1
范数的最优解相对于
L2
范数要少,但是其往往是最优解,而
L2
范数的解很多,但其更多的倾向于某种局部最优解。
但由于
L1
范数并没有平滑的方式表示,起初
L1
最优化问题解决起来非常困难。但是现在,很多凸优化问题使
L1
最优化成为可能。
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 不行的原因了。因此,一句话总结就是:
L1
会趋向于产生少量的特征,而其他的特征都是0,而
L2
会选择更多的特征,这些特征都会接近于0。Lasso在特征选择时候非常有用,而Ridge就只是一种规则化而已。
而
L2
相对于
L1
具有更为平滑的特性,在模型预测中,往往比
L1
具有更好的预测特性。当遇到两个对预测有帮助的特征时,
L1
倾向于选择一个更大的特征。而
L2
更倾向把两者结合起来。
L2,1
范数
||X||2,1=∑ni=1∑tj=1X2i,j−−−−−−−−√=∑ni=1X2i,:−−−√=∑ni=1||Xi,:||2
原始矩阵是n行t列的,可以看出
L2,1
是对列求和,也就是先对每行元素求
L2
范数,然后再按行求和。
从中可以看出,
L2,1
范数就是对矩阵X中每行元素的
L2
范数之和。
在矩阵稀疏表示模型中,其作为正则化的作用?
它是每行的
L2
范数之和。在最小化问题中,只有每一行的
L2
都最小结果才能最小。而怎么才能使每一行的
L2
范数取得最小呢?当行内尽可能多的元素为零时,约束才可能取得最小。而行内尽可能取零的含义就是行稀疏。
不同于
L1
范数的稀疏要求(矩阵元素绝对值之和),
L2,1
范数还要求行稀疏。