范数是具有“长度”概念的函数。在向量空间内,为所有的向量的赋予非零的增长度或者大小。不同的范数,所求的向量的长度或者大小是不同的。
举个例子,2维空间中,向量(3,4)的长度是5,那么5就是这个向量的一个范数的值,更确切的说,是欧式范数或者L2范数的值。
范数就是为了方便度量而定义出的一个概念,主要就是面对复杂空间和多维数组时,选取出一个统一的量化标准,以方便度量和比较。请务必记住,范数是人为定义的一种度量方法。
对于p-范数,如果
x=[
x
1
x_1
x1,
x
2
x_2
x2,…,
x
n
x_n
xn]^T
那么向量x的p-范数就是
∣
∣
x
∣
∣
p
||x||_p
∣∣x∣∣p=(
∣
x
1
∣
p
|x_1|^p
∣x1∣p+
∣
x
2
∣
p
|x_2|^p
∣x2∣p+
∣
x
3
∣
p
|x_3|^p
∣x3∣p+…+
∣
x
n
∣
p
|x_n|^p
∣xn∣p)^
1
p
\frac{1}{p}
p1
L1范数:所有元素绝对值的和。
∣
∣
x
∣
∣
1
||x||_1
∣∣x∣∣1=
∣
x
1
∣
|x_1|
∣x1∣+
∣
x
2
∣
|x_2|
∣x2∣+
∣
x
3
∣
|x_3|
∣x3∣+…+
∣
x
n
∣
|x_n|
∣xn∣
L2范数:所有元素平方和的开方。
∣
∣
x
∣
∣
2
||x||_2
∣∣x∣∣2=
∣
x
1
∣
2
+
∣
x
2
∣
2
+
∣
x
3
∣
2
+
.
.
.
+
∣
x
n
∣
2
\sqrt {|x_1|^2+|x_2|^2+|x_3|^2+...+|x_n|^2}
∣x1∣2+∣x2∣2+∣x3∣2+...+∣xn∣2
特别的,
L0范数:指向量中非零元素的个数。
无穷范数:指向量中所有元素的最大绝对值。
L2范数的好处是什么呢?这里也扯上两点:
1)学习理论的角度:
从学习理论的角度来说,L2范数可以防止过拟合,提升模型的泛化能力。
2)优化计算的角度:
从优化或者数值计算的角度来说,L2范数有助于处理 condition number不好的情况下矩阵求逆很困难的问题。(这个不明白)
L1范数与L2范数的区别
机器学习中L1 L2正则化项(范式,惩罚项)