范数
在机器学习中,经常使用称为范数的函数来衡量大小。那么范数是什么呢?
范数实质上就是一种强化了的距离概念,它在定义上比距离多了一条数乘运算。
范数(包括L-p)范数是将向量映射到非负值的函数,满足下列定义:
- $f(x)=0 ==> x=0 $
- f(x+y)≤f(x)+f(y)f(x+y) \leq f(x)+f(y)f(x+y)≤f(x)+f(y)
- ∀α∈R,f(αx)=∣α∣f(x)\forall \alpha \in R,f(\alpha x)=|\alpha| f(x)∀α∈R,f(αx)=∣α∣f(x)
LpL^pLp范数
LpL^pLp范数定义如下:
∣∣x∣∣p=(∑i∣xi∣p)1/p||x||_p = {(\sum_i|x_i|^p)}^{1/p}∣∣x∣∣p=(i∑∣xi∣p)1/p
根据p的变化,范数也有着不同的变化,一个经典的有关p范数的变化图如下:
上图表示了p从无穷到0变化时,三维空间中到原点的距离(范数)为1的点构成的图形的变化情况。以常见的L-2范数(p=2)为例,此时的范数也即欧氏距离,空间中到原点的欧氏距离为1的点构成了一个球面。
L0和L1L^0和L^1L0和L1范数
有时我们会统计向量中非零元素的个数来衡量向量的大小。有些人将这称为L0L^0L0范数。严格意义上,向量的非零元素数目不是范数。因此,L1L^1L1范数经常作为表示非零元素数目的替代函数。
L1范数是指向量中各个元素绝对值之和,也有个美称叫“稀疏规则算子”(Lasso regularization)。L1可实现稀疏,参数稀疏的好处为:
- 可解释性强
- 特征选择
L2L^2L2范数
L2范数称为欧几里得范数,表示从原点出发到向量x确定的点的欧几里得距离。平方L2范数也经常用来衡量向量的大小,可以简单地通过xTxx^TxxTx计算。平方L2范数在数学上和计算上逗比L2范数本身方便。平方L2范数的对x中每个元素的导数只取决于对应的元素,而L2范数对每个元素的导数和整个向量相关。但是平方L2范数在原点附近增长十分缓慢。某些情况下,并不适用。
L∞L^\inftyL∞范数
当p=∞\infty∞时,也就是L∞L^{\infty}L∞范数,它主要被用来度量向量元素的最大值,与L0一样,通常情况下表示为 :
∣∣x∣∣∞=maxi∣x∣i||x||_\infty = \max_i|x|_i∣∣x∣∣∞=imax∣x∣i
矩阵范数
1-范数
∣∣A∣∣1=maxj∑im∣ai,j∣||A||_1=\max_j{\sum_i}^m|a_{i,j}|∣∣A∣∣1=jmaxi∑m∣ai,j∣
列和范数,即所有矩阵列向量绝对值之和的最大值。
2-范数
∣∣A∣∣2=λ1||A||_2=\sqrt{\lambda_1}∣∣A∣∣2=λ1
λ\lambdaλ为ATAA^TAATA的最大特征值
∞−范数\infty - 范数∞−范数
∣∣A∣∣∞=maxi∑j=1N∣ai,j∣||A||_{\infty}=\max_i{\sum_{j=1}}^N|a_{i,j}|∣∣A∣∣∞=imaxj=1∑N∣ai,j∣
F-范数
∣∣A∣∣F=(∑i∑j∣ai,j∣2)1/2||A||_F= (\sum_i\sum_j|a_{i,j}|^2)^{1/2}∣∣A∣∣F=(i∑j∑∣ai,j∣2)1/2