KL Divergence(KL 散度)

COUNT BAYESIE
在概率论和统计学中,我们经常用一个简单的近似分布来代替观测数据或复杂的分布.KL散度帮助我们衡量当我们选择一个简单近似的分布来代替复杂的数据或复杂的分布的时候有多少信息损失了.

一个例子

假设我们是太空科学家并在参观一个遥远的新星球,我们发现了一些蠕虫,我们想要研究他们.我们发现这些蠕虫都有10个牙齿,但是由于某些原因牙齿会进行脱落,从而导致每个蠕虫最后的牙齿个数各不相同.通过收集一系列数据,我们得到了每个蠕虫牙齿数量的经验概率分布:

现在我们需要将信息发回地球,但是这些信息量是很大,我们的花费也是巨大的.我们希望将这些数据减少到一个简单的模型,这样我们只需要发回1或2个参数即可.(这样我们就不需要发送那么多数值,只需要发回概率分布的参数即可)

均匀分布

我们首先使用均匀分布来表示牙齿的分布.
有11种可能的值,每个的概率都是$\frac{1}{11}$. 概率分布图像如下:

二项分布

下面我们再使用二项分布.我们需要估计二项分布的概率参数.我们知道如果我们有$n$次实验,每次的概率为$p$,那么我们的期望$E(x) = n \cdot p$ .这里我们的$n=10$,期望就是数据的均值,假设是5.7(给你对应每个牙齿数的蠕虫数是可以计算出来的).那么根据$E(x) = n \cdot p$ 可以得到$p = 0.57$,所以我们可以得到二项分布的图像.(根据公式 $C(n,k) p^k(1-p)^{n-k}$

哪个更好?

通过比较上述两个分布和我们原始数据发现,没有一个分布是可以完美契合我们的数据的,但是哪一个会更好呢?

有很多种误差度量的方法,但是我们原始的目的是要最小化我们需要发送的信息量.这两个分布都将我们的问题简化成了两个参数,牙齿数和概率.最好的方式是看哪个分布保留了原始数据最多的信息,这就是KL散度的作用.

KL散度

分布的熵

KL散度的来源是信息熵.信息论的原始目标是量化数据中的信量.在信息论中最重要的度量是,用$H$来表示.概率分布的熵定义如下:

如果我们使用$log_2$来计算,我们可以将熵解释为我们编码信息所需要的最少比特.
但是熵并没有告诉我们实现这种压缩的最优编码方案.熵的关键是只需要知道我们所需要的比特的理论下限,我们就可以精确的量化我们数据中有多少信息.现在我们可以量化它,我们也想量化当我们用一个参数化的近似值来代替我们观察到的分布时有多少信息丢失了.

KL散度测量信息丢失

KL散度只是熵的稍微修改.我们加入了我们的近似分布$q$,而不是值有概率分布$p$.

本质上我们在KL散度中看到是原始概率分布与近似概率分布之间对数差的期望值.如果我们还使用$log_2$,那么我们可以看成是有多少信息我们希望去丢失.上式等价下式:

更常见的公式:

根据KL散度我们可以计算当我们用一个近似分布时有多少信息丢失了

分布比较

现在我们就可以通过计算KL散度来比较上面两个分布哪一个更优了.
均匀分布:

二项分布:

我们可以看出使用二项分布的信息丢失是大于使用均匀分布的,所以如果我们需要选择一个分布去近似我们的原始数据我们应该选择均匀分布而不是二项分布了.

KL散度不是距离

需要注意的是我们并不能将KL散度看成是度量两个分布之间的距离,因为KL散度是不对称的.即:

使用KL散度进行优化

当我们选择二项分布的值时,我们通过使用与我们的数据匹配的期望值来选择概率参数。 但由于我们正在优化以最大限度地减少信息丢失,因此这可能不是选择参数的最佳方式。 我们可以通过查看KL Divergence在我们更改此参数值时的变化方式来仔细检查我们的工作。 以下是这些值如何一起变化的图表:

可以看出我们对二项分布的估计就是使KL散度最小的估计.


-------------本文结束感谢您的阅读-------------


本文标题:KL Divergence(KL 散度)

文章作者:Statusrank

CSDN博客欢迎来访!

发布时间:2018年12月29日 - 21:12

最后更新:2019年01月03日 - 15:01

原始链接:https://statusrank.xyz/articles/63484af.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

万水千山总是情,就给五毛行不行!