1、范数概念
1.1文字描述
- 范数(Norm)是一个函数,其赋予某个向量空间(或矩阵)中的每个向量以长度或大小。对于零向量,另其长度为零。直观的说,向量或矩阵的范数越大,则我们可以说这个向量或矩阵也就越大。有时范数有很多更为常见的叫法,如绝对值其实便是一维向量空间中实数或复数的范数,而Euclidean距离也是一种范数。
范数表示向量长度或大小
1.2 公式表示
设p⩾1的实数,p−norm定义为:2、常用范数
2.1、L0范数
- 当p=0时,因其不再满足三角不等性,严格的说此时p已不算是范数了,但很多人仍然称之为L0范数.
||x||0=∑i=0nx0i−−−−−√0(2.1.1)
下式能代替:
||x||0=#(i) with xi≠0(2.1.2)
表示向量中所有非零元素的个数
2.2、L1范数
当p=1时,我们称之为taxicab Norm,也叫Manhattan Norm。其来源是曼哈顿的出租车司机在四四方方的曼哈顿街道中从一点到另一点所需要走过的距离。即我们所要讨论的L1范数。
||x||1:=∑i=1n|xi|(2.2.1)其表示某个向量中所有元素绝对值的和
L1正则能把效应小的特征的回归系数压缩为0,这样的好处:
- 特征选择(Feature Selection)
- 可解释性(Interpretability)
2.3、L2范数
当p=2时,则是我们最为常见的Euclidean norm。也称为Euclidean distance。也即我们要讨论的L2范数。
||x||1:=∑i=1nx2i−−−−−√(2.3.1)其表示某个向量中所有元素的平方和
L2正则也称岭回归(Ridge Regression),把归回系数压缩趋近于0,好处:
- 从而减少模型的复杂度,防止过拟合。
- L2范数有助于处理 condition number不好的情况下矩阵求逆很困难的问题。
如果方阵A是非奇异的,那么A的conditio nnumber定义为:
κ(A)=||A|| ||A−1||
condition number是一个矩阵稳定性或者敏感度的度量。
矩阵的condition number在1附近,那么它就是well-conditioned的;
如果远大于1,那么它就是ill-conditioned的。
如果一个系统是ill-conditioned的它的输出结果就不太可信。
3、正则化与机器学习
3.1、L1正则与L2正则解释
机器学习目标函数的一般形式:
为了便于可视化,我们考虑两维的情况,在(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的方向收缩,L2正则可防止过拟合。
3.2、L2正则与逻辑回归
对于逻辑回归,不进行正则化,损失函数及θ迭代公式为
:
矩阵表达为:
对于逻辑回归,L2正则化之后,损失函数及θ迭代公式为 :
其矩阵形式为:
改善了condition number,从而可以直接求逆。
注:下角标指示列索引,上角标指示行索引;m为行数即个体数目,n为列数目即参数θ个数。