1.概要

在这篇文章中,将探讨一种比较两个概率分布的方法,称为Kullback-Leibler散度(通常简称为KL散度)。通常在概率和统计中,我们会用更简单的近似分布来代替观察到的数据或复杂的分布。KL散度帮助我们衡量在选择近似值时损失了多少信息。

2.公式

KL散度起源于信息论。信息论的主要目标是量化数据中有多少信息。信息论中最重要的指标称为熵,通常表示为H。概率分布的熵的定义是:

$$ H=-\sum_{i=0}^nlogp(x_i) $$

如果在我们的计算中我们使用log2,我们可以把熵解释为“我们编码信息所需要的最小比特数”。在这种情况下,根据我们的经验分布,信息将是每个牙齿计数的观察结果。根据我们观察到的数据,我们的概率分布的熵为3.12比特。比特的数目告诉我们,在单一情况下,我们平均需要多少比特来编码我们将观察到的牙齿数目。

熵没有告诉我们可以实现这种压缩的最佳编码方案。信息的最佳编码是一个非常有趣的主题,但对于理解KL散度而言不是必需的。熵的关键在于,只要知道所需位数的理论下限,我们就可以准确地量化数据中有多少信息。现在我们可以对此进行量化,当我们将观察到的分布替换为参数化的近似值时,我们丢失了多少信息。

使用KL散度测量丢失的信息

Kullback-Leibler散度只是对我们的熵公式的略微修改。不仅仅是有我们的概率分布p,还有上近似分布q。然后,我们查看每个log值的差异:

本质上,我们用KL散度看的是对原始分布中的数据概率与近似分布之间的对数差的期望。再说一次,如果我们考虑log2,我们可以将其解释为“我们预计有多少比特位的信息丢失”。我们可以根据期望重写公式:

利用KL散度,我们可以精确地计算出当我们近似一个分布与另一个分布时损失了多少信息。

3.注意:KL散度不是距离

将KL散度视为距离度量可能很诱人,但是我们不能使用KL散度来测量两个分布之间的距离。这是因为KL散度不是对称的。