为什么要引入范数?
我们都知道,函数与几何图形往往是有对应的关系,这个很好想象,特别是在三维以下的空间内,函数是几何图像的数学概括,而几何图像是函数的高度形象化。
但当函数与几何超出三维空间时,就难以获得较好的想象,于是就有了映射的概念,进而引入范数的概念。
当我们有了范数的概念的后,我们就可以引出两个向量的距离的定义,这个向量可以是任意维数的。通过距离的定义,进而我们可以讨论逼近程度,从而讨论收敛性、求极限。
计算机领域用的比较多的就是迭代过程中收敛性质的判断,一般迭代前后步骤的差值的范数表示其大小,常用的是二范数,差值越小表示越逼近实际值,可以认为达到要求的精度,收敛。
总的来说,范数存在的意义是为了实现比较距离。比如,在一维实数集合中,我们随便取两个点4和9,我们知道9比4大,但是到了二维实数空间中,取两个点(1,0)和(3,4),这个时候我们就没办法比较它们之间的大小,因为它们不是可以比较的实数,于是我们引入范数这个概念,把我们的(1,0)和(3,4)通过范数分别映射到实数1 和 5 ,这样我们就比较这两个点了。所以你可以看到,范数它其实是一个函数,它把不能比较的向量转换成可以比较的实数。
向量的范数
在数学上,对于向量范数的定义,就是只要满足以下三条性质的函数,我们就可以称为它为范数。
(条件1的
↔
\leftrightarrow
↔ 的意思就是当且仅当的意思)
所以,范数的是一个宽泛的概念,有很多种,但是我们一般只会用到常用的范数,接下来我们介绍常用的向量范数。
向量的0-范数
∥
x
∥
0
=
∑
i
=
1
k
∣
x
i
∣
0
\|x\|_0=\sum_{i=1}^k|x_i|^0
∥x∥0=i=1∑k∣xi∣0
意义:非0元素个数
评价:L0范数表示向量中非零元素的个数。L0范数的这个属性,使其非常适用于机器学习中的稀疏编码。在特征选择中,通过最小化L0范数来寻找最少最优的稀疏特征项。但是,L0范数的最小化问题是NP难问题。而L1范数是L0范数的最优凸近似,它比L0范数要更容易求解。因此,优化过程将会被转换为更高维的范数(例如L1范数)问题。
向量的1-范数
∥
X
∥
1
=
∑
i
=
1
n
∣
x
i
∣
\|X\|_1=\sum_{i=1}^n{|x_i|}
∥X∥1=i=1∑n∣xi∣
意义:各个元素的绝对值之和
向量的2-范数 ( l 2 − n o r m l_2-norm l2−norm)
∥
X
∥
2
=
(
∑
i
=
1
n
x
i
2
)
1
2
\|X\|_2=(\sum_{i=1}^{n}{x_i^2})^{\frac{1}{2}}
∥X∥2=(i=1∑nxi2)21
意义:每个元素平方和再平方根
评价:L2范数是最常用的范数了,我们用的最多的度量距离欧氏距离就是一种L2范数。在回归里面,有人把加了L2范数项的回归c称为“岭回归”(Ridge Regression),有人也叫它“权值衰减(weight decay)”。它被广泛的应用在解决机器学习里面的过拟问题合。
为什么L2范数可以防止过拟合?回答这个问题之前,我们得先看看L2范数实际上是什么。
L2范数是指向量各元素的平方和然后求平方根。我们让L2范数的规则项最小,可以使得的每个元素都很小,都接近于0,但与L1范数不同,它不会让它等于0,而是接近于0,这是有很大的区别的。而越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象。为什么越小的参数说明模型越简单?因为当限制了参数很小,实际上就限制了多项式某些分量的影响很小,这样就相当于减少参数个数。
向量的p-范数
∥
X
∥
p
=
(
∑
i
=
1
n
∣
x
i
∣
p
)
1
p
W
h
e
r
e
p
≥
1
\|X\|_p=(\sum_{i=1}^n{|x_i|^p})^\frac{1}{p}\\ Where \quad p\ge1
∥X∥p=(i=1∑n∣xi∣p)p1Wherep≥1
意义:每个元素p次方和再p次方根
向量的无穷范数
∥
X
∥
∞
=
max
1
≤
i
≤
n
∣
x
i
∣
\|X\|_\infty=\max_{1\le i\le n}|x_i|
∥X∥∞=1≤i≤nmax∣xi∣
意义:向量的p-范数的p取无限大即为向量的无穷范数
矩阵的范数
跟向量的范数定义类似,只不过矩阵的范数的性质比向量的范数性质多了一条相容性。
我们直接引出矩阵的范数定义:
矩阵的1-范数(列模)
∥
A
∥
1
=
max
j
∑
i
=
1
m
∣
a
i
,
j
∣
\|A\|_1=\max_j\sum_{i=1}^m|a_{i,j}|
∥A∥1=jmaxi=1∑m∣ai,j∣
意义:矩阵的列向量的和的最大值
矩阵的2-范数(谱模)
∥
A
∥
2
=
λ
max
(
A
T
A
)
=
λ
1
W
h
e
r
e
λ
1
i
s
t
h
e
m
a
x
i
m
u
m
e
i
g
e
n
v
a
l
u
e
o
f
A
T
A
\|A\|_2=\sqrt{\lambda_{\max}(A^TA)}=\sqrt \lambda_1 \\ Where \quad \lambda_1 \; is\; the\; maximum\; eigenvalue\; of A^TA
∥A∥2=λmax(ATA)=λ1Whereλ1isthemaximumeigenvalueofATA
意义:
A
T
A
A^TA
ATA矩阵的最大特征值的开平方
特征值相当于是两个维度的压缩,相当于是从矩阵的维度里面找到最大的, A T A A^TA ATA很重要我们线代老师提了一嘴,我给忘记了。
——梁子
矩阵的 ∞ \infty ∞范数(行模)
∥
A
∥
∞
=
max
i
∑
j
=
1
i
∣
a
i
,
j
∣
\|A\|_{\infty}=\max_i\sum_{j=1}^i|a_{i,j}|
∥A∥∞=imaxj=1∑i∣ai,j∣
意义:矩阵的行向量的和的最大值
矩阵的F-范数
∥ A ∥ F = ( ∑ i = 1 m ∑ j = 1 n ∣ a i , j ∣ 2 ) 1 2 \|A\|_F=(\sum_{i=1}^m\sum_{j=1}^n|a_{i,j}|^2)^{\frac{1}{2}} ∥A∥F=(i=1∑mj=1∑n∣ai,j∣2)21
也可以描述为:
∣ ∣ A ∣ ∣ F = T r ( A A T ) ||A||_F=\sqrt{Tr(AA^T)} ∣∣A∣∣F=Tr(AAT)
意义:Frobenius范数,即矩阵元素绝对值的平方和再开平方。感觉和向量的2范数类似