Math Concepts in Coding

Euclidean Distance

欧几里得距离(Euclidean Distance)用于衡量多维空间中两点之间的“直线”距离

1. 数学定义

在 $n$ 维欧几里得空间中,点 $P = (p_1, p_2, \dots, p_n)$ 与点 $Q = (q_1, q_2, \dots, q_n)$ 之间的欧式距离公式为:$$d(P, Q) = \sqrt{\sum_{i=1}^n (q_i - p_i)^2}$$

2. 与 $L^2$ 范数的关系

在向量空间中,若将点 $P$ 到原点 $O$ 的距离看作向量 $\mathbf{p}$ 的长度,则点 $P$ 和原点之间的欧式距离等同于该向量的 $L^2$ 范数($L^2$ Norm)$$\Vert\mathbf{p}\Vert_2 = \sqrt{\sum_{i=1}^n p_i^2}$$ 因此,两点 $P, Q$ 之间的欧式距离也可以表示为向量差的范数:$$d(P, Q) = |\mathbf{q} - \mathbf{p}|_2$$

  • 范数(Norm) 本质上就是向量 “模长” 这一概念的推广,在低维空间(如二维或三维),我们习惯称之为长度;当进入高维空间(如 VLA 模型中成千上万维的特征向量)时,我们使用“范数”这个术语来定义这种“大小“

3. Python 实现参考

1
2
3
4
5
6
7
8
9
10
11
12
13
import numpy as np

# 定义两个 n 维向量
p = np.array([1, 2, 3])
q = np.array([4, 5, 6])

# 方法 1: 使用公式
dist = np.sqrt(np.sum(np.square(q - p)))

# 方法 2: 使用线性代数库 (推荐)
dist = np.linalg.norm(q - p)

print(f"欧式距离: {dist}")