外观
Bhattacharyya 距离
Bhattacharyya Distance
评估两个概率分布之间的相似性有时相当有用。例如,假设我们有一个带标签的数据集。通过分析标签的分布,我们可以在构建统计模型之前对它的分布提出假设。

我们在前面关于广义线性模型(GLM)的章节中也看过这一点。

虽然视觉检查常常有帮助,但这种方法相当主观,可能引出误导性的结论。
因此,了解一些定量度量也很重要。Bhattacharyya 距离就是这样一个可靠的度量。它量化两个概率分布之间的相似性。其核心思想是近似两个分布之间的重叠程度,以此衡量所考虑的两个分布之间的“接近度”。
Bhattacharyya 距离的度量方式如下:

对于两个离散概率分布

对于两个连续概率分布(把求和换成积分):
它的有效性从下图可以一目了然。

这里我们有一个观测分布(蓝色)。接下来,我们度量它与以下分布的距离:
- 高斯分布 → 0.19。
- Gamma 分布 → 0.03。
较大的 Bhattacharyya 距离意味着重叠更少,或者说更不相似。由此我们可以得出结论:观测分布更接近 Gamma 分布。
这一结果也与视觉检查相吻合。
现在,许多人常把 KL 散度和 Bhattacharyya 距离搞混。实际上,两者都是用来衡量两个分布之间“相似性”的定量度量。但它们对“相似性”的理解截然不同。KL 散度背后的核心思想是评估:用一个分布去近似另一个分布时,会损失多少信息。

损失的信息越多,KL 散度越大,因而“相似性”越低。此外,用 P 近似 Q 与用 Q 近似 P 可能并不相同。这使得 KL 散度在本质上是不对称的。

再说 Bhattacharyya 距离,它度量的是两个分布之间的重叠。
这种“重叠”常被理解为所考虑的两个分布之间接近度(或距离)的度量。因此,Bhattacharyya 距离主要作为一种距离度量,就像欧氏距离那样。

作为距离度量,它在本质上是对称的。我们也可以从距离公式验证这一点:

就像我们用欧氏距离求两点之间的距离一样,我们可以用 Bhattacharyya 距离求两个分布之间的距离。
但如果我们打算度量用一个分布近似另一个分布时损失的信息量,KL 散度更合适。事实上,KL 散度有时也在机器学习算法(如 t-SNE)中充当损失函数。
- 假设我们有一个观测分布(P),想用另一个更简单的分布 Q 来近似它。
- 于是,我们可以定义一个更简单的参数化分布 Q。
- 接下来,我们可以用 KL 散度度量用 Q 近似 P 所损失的信息。
- 由于我们想最小化信息损失,可以把 KL 散度作为目标函数。
- 最后,我们可以用梯度下降来确定 Q 的参数,使 KL 散度最小化。Bhattacharyya 距离有许多应用,不仅在机器学习中,还在许多其他领域。例如:
- 利用这个距离,当距离较小时,我们可以把复杂分布简化为简单分布。
- 在图像处理中,Bhattacharyya 距离常用于图像匹配。通过比较图像的颜色或纹理分布,它能帮助识别相似的对象或场景等。唯一的小提醒是 Bhattacharyya 距离不满足三角不等式,这一点需要留意。