范数的公式
机器学习中经常会看到这个词,按照自己的理解做一下总结,范数大可理解为距离的计算。范数是来衡量向量与原点的远近。下面是几个范数的计算公式,我们先看公式,不要惧怕公式,然后再解释公式的内在含义:
1-范数
2-范数
p-范数
+无穷-范数
-无穷-范数
由上面的数学表达式,我们可以归纳一下:除了两个无穷范数以外,剩下的范数都是一个规律,即n范数就是一堆数字的绝对值
n次方之和再开个n次方的根号;或者说,n范数就是一堆数字的绝对值
n次方之和的n次方根。这是从计算方法层面上的认知。
范数公式的理解
通过上面的观察可知,范数首先是一个函数。其次,范数表征了距离这个物理量,可以用于比较不同的向量。
例如:比较各个维度向量大小
在一维情况下,有两个数 3, 4 4>3
在二维情况下,有两个向量 (2,5),(3,4)比较这两个向量的大小,就是计算离原点的距离,这个距离可以表示向量的长度,根据长度进行比较。使用到的就是上面的2-范数公式计算,
2
2
+
5
2
\sqrt {2^2+5^2}
22+52=
29
\sqrt {29}
29,
3
2
+
4
2
\sqrt {3^2+4^2}
32+42=
25
\sqrt {25}
25,所以向量(2,5) > (3,4)
在三维情况下,有两个向量(3,4,5),(5,6,7)求距离,使用到的也是上面的2-范数
3
2
+
4
2
+
5
2
\sqrt {3^2+4^2+5^2}
32+42+52=
50
\sqrt {50}
50,
5
2
+
6
2
+
7
2
\sqrt {5^2+6^2+7^2}
52+62+72=
110
\sqrt {110}
110
在更多维的情况下,可能不能直观的通过画图来观察"距离",但实际的含义基本一致。
例如五维的计算比较
距离的计算相当于
所以,当我们想求一个向量的长度或者两点间的距离时,两个向量间的距离的计算,就是把原点替换成另外一个向量,用2-范数。
python库的使用
# 计算向量x的模
import numpy as np
x = np.array([3, 4, 5])
# norm函数默认就是求2-范数。
print(np.linalg.norm(x))
# 如果要指定其他的范式,需要显示的传入ord=2
print(np.linalg.norm(x, ord=2))