范数

范数(norm),是具有“长度”概念的函数。在线性代数、泛函分析及相关的数学领域,在泛函分析中,它定义在赋范线性空间中,并满足一定的条件,即①非负性;②齐次性;③三角不等式。它常常被用来度量某个向量空间(或矩阵)中的每个向量的长度或大小。拥有范数的向量空间就是赋范向量空间。同样,拥有半范数的向量空间就是赋半范向量空间。

范数包括向量范数矩阵范数,向量范数表征向量空间中向量的大小,矩阵范数表征矩阵引起变化的大小。一种非严密的解释就是,对应向量范数,向量空间中的向量都是有大小的,这个大小如何度量,就是用范数来度量的,不同的范数都可以来度量这个大小,就好比米和尺都可以来度量远近一样;对于矩阵范数,学过线性代数,我们知道,通过运算AX=BAX=B,可以将向量X变化为B,矩阵范数就是来度量这个变化大小的。

范数

范数

常用的三种p-范数推导出的矩阵范数

1-范数:

║A║1 = max{ ∑|ai1|,∑|ai2|,……,∑|ain| } (列和范数,A每一列元素绝对值之和的最大值)(其中∑|ai1|第一列元素绝对值的和∑|ai1|=|a11|+|a21|+...+|an1|,其余类似);

2-范数:

║A║2 = A的最大奇异值 = (max{ λi(AH*A)}) 1/2 (谱范数,即A^H*A特征值λi中最大者λ1的平方根,其中AH为A的转置共轭矩阵);

∞-范数:

║A║ = max{ ∑|a1j|,∑|a2j|,...,∑|amj| } (行和范数,A每一行元素绝对值之和的最大值)(其中∑|a1j| 为第一行元素绝对值的和,其余类似);

其它的p-范数则没有很简单的表达式。

对于p-范数而言,可以证明║A║p=║AHq,其中p和q是共轭指标。

简单的情形可以直接验证:║A║1=║AH,║A║2=║AH2,一般情形则需要利用║A║p=max{yH*A*x:║x║p=║y║q=1}。

在实际的训练中对应的参数空间最后用于结构风险最小化的时候,对应的x是一个列向量,即用到的是向量范数

即有下面的形式:

L-P范数 
与闵可夫斯基距离的定义一样,L-P范数不是一个范数,而是一组范数,其定义如下: 

范数
根据P 的变化,范数也有着不同的变化,一个经典的有关P范数的变化图如下: 
 范数
上图表示了p从无穷到0变化时,三维空间中到原点的距离(范数)为1的点构成的图形的变化情况。以常见的L-2范数(p=2)为例,此时的范数也即欧氏距离,空间中到原点的欧氏距离为1的点构成了一个球面。

实际上,在0≤p<1≤p<1时,Lp并不满足三角不等式的性质,也就不是严格意义下的范数。因此这里的L-P范数只是一个概念上的宽泛说法。

L0范数 

当P=0时,也就是L0范数,由上面可知,L0范数并不是一个真正的范数,它主要被用来度量向量中非零元素的个数。用上面的L-P定义可以得到的L-0的定义为: 

范数

在通常情况下,大家都用的是: ||x||=权向量中非零参数的个数

对于L0范数,其优化问题为: 

范数
在实际应用中,由于L0范数本身不容易有一个好的数学表示形式,给出上面问题的形式化表示是一个很难的问题,故被人认为是一个NP难问题。所以在实际情况中,L0的最优问题会被放宽到L1或L2下的最优化。

L1范数 
L1范数是我们经常见到的一种范数,它的定义如下: 

范数
表示向量x中非零元素的绝对值之和。

L1范数有很多的名字,例如我们熟悉的曼哈顿距离、最小绝对误差等。

对于L1范数,它的优化问题如下:

范数

注:Ax=b中,A是包含所有训练数据的矩阵。 x是正在寻找的解决方案向量。 b是标签矢量;由于x存在很多解,但由于L1范数的特点是表示非零向量的绝对值之和,故偏重于将向量中无关紧要的元素变成零,从而得到的是稀疏解)
由于L1范数的天然性质,对L1优化的解是一个稀疏解,因此L1范数也被叫做稀疏规则算子

通过L1可以实现特征的稀疏,去掉一些没有信息的特征,例如在对用户的电影爱好做分类的时候,用户有100个特征,可能只有十几个特征是对分类有用的,大部分特征如身高体重等可能都是无用的,利用L1范数就可以过滤掉。

L2范数 
L2范数是我们最常见最常用的范数了,我们用的最多的度量距离欧氏距离就是一种L2范数,它的定义如下: 

范数
表示向量元素的平方和再开平方。 

对于L2范数,它的优化问题如下: 

范数
L2范数通常会被用来做优化目标函数的正则化项,防止模型为了迎合训练集而过于复杂造成过拟合的情况,从而提高模型的泛化能力。

L-∞范数

当P=∞时,也就是L-∞范数,它主要被用来度量向量元素的最大值。用上面的L-P定义可以得到的L∞的定义为: 

范数

与L0一样,在通常情况下,大家都用的是: ||x||∞=max(|xi|)来表示L∞