常见距离指标(Distance Metrics)
在机器学习、数据挖掘和统计分析中,距离(Distance)或相似度(Similarity)用于衡量两个对象之间的差异程度。根据比较对象的不同,常见距离指标通常可以分为两类:
- 点之间的距离(Point-to-Point Distance)
- 分布之间的距离(Distribution Distance)
一、点之间的距离(Point Distance)
设两个向量:
表示两个样本在 $n$ 维空间中的位置。
1 闵可夫斯基距离(Minkowski Distance)
闵可夫斯基距离是一类广义距离度量,很多常见距离都是它的特殊情况。
其中:
- $p$ 为距离阶数
- $x_i, y_i$ 为向量在第 $i$ 维的值
特殊情况
曼哈顿距离(Manhattan Distance)
当 $p=1$ 时:
表示在网格路径中的最短距离。
欧氏距离(Euclidean Distance)
当 $p=2$ 时:
这是最常见的距离度量。
切比雪夫距离(Chebyshev Distance)
当 $p \to \infty$ 时:
表示各维度差值的最大值。
2 余弦距离(Cosine Distance)
余弦距离用于衡量两个向量之间的方向差异。
余弦相似度
取值范围:
- $1$:方向完全相同
- $0$:正交
- $-1$:方向完全相反
余弦距离
常用于:
- 文本相似度
- 向量检索
- embedding 相似度计算
3 马氏距离(Mahalanobis Distance)
马氏距离考虑了数据特征之间的协方差关系。
其中:
- $S$ 为数据协方差矩阵
- $S^{-1}$ 为协方差矩阵的逆
- $(x-y)^T$ 为转置
特点:
- 能够消除不同特征尺度影响
- 考虑特征相关性
- 常用于异常检测
二、分布之间的距离(Distribution Distance)
当比较对象为概率分布时,需要使用分布距离。
设两个离散概率分布:
1 KL 散度(Kullback-Leibler Divergence)
KL 散度用于衡量一个概率分布相对于另一个分布的信息损失。
连续形式:
性质:
- 非对称
- 取值范围
常见应用:
- 变分推断
- VAE
- 分布匹配
2 JS 散度(Jensen-Shannon Divergence)
JS 散度是 KL 散度的对称版本。
定义:
其中:
性质:
- 对称
- 有界
应用:
- GAN
- 分布相似度度量
3 Wasserstein 距离(Earth Mover Distance)
Wasserstein 距离衡量将一个分布变换为另一个分布所需的最小代价。
直观理解:
将概率分布看作一堆“土”,
Wasserstein 距离表示把这堆土搬运为另一堆所需的最小工作量。
数学定义:
其中:
- $\Pi(P,Q)$ 为所有联合分布集合
- $\gamma(x,y)$ 为运输方案
应用:
- WGAN
- 分布学习
- 生成模型训练
三、常见距离总结
| 类型 | 距离 | 特点 |
|---|---|---|
| 点距离 | Minkowski | 广义距离 |
| 点距离 | Euclidean | 最常用 |
| 点距离 | Cosine | 衡量方向 |
| 点距离 | Mahalanobis | 考虑协方差 |
| 分布距离 | KL Divergence | 信息差异 |
| 分布距离 | JS Divergence | 对称KL |
| 分布距离 | Wasserstein | 分布运输距离 |