kl散度度量分布_熵(entropy)与KL散度及应用

1.自信息(I)

信息量的值与事件发生的概率有关系,概率越小信息越大。假设事件A发生的概率是

,则事件A的信息量为:

2.信息熵(H(X)):

定义:

3.联合熵(H(X,Y))

4.条件熵(H(Y|X))

可以证明:

5.互信息

在概率论和信息论中,两个随机变量的互信息或转移信息是变量间相互依赖性的量度。不同于相关系数,互信息并不局限于实值随机变量,它更加一般且决定着联合分布p 和分解的边缘分布的乘积p(X)p 的相似程度。互信息是点间互信息的期望值。互信息最常用的单位是bit。

kl散度度量分布_熵(entropy)与KL散度及应用_第1张图片

所以如上图所示:

6.交叉熵(Cross-Entropy)

假设有两个分布p,q ,则它们在给定样本集上的交叉熵定义如下:

7.KL散度(Kullback-Leibler Divergence)

7.1 意义

符号记为,

用来表示一个数据集的真实分布用一个近似概率分布表示时,信息的损耗程度。近似估计的概率分布和数据整体真实的概率分布的相似度,或者说差异程度,可以用 KL 散度来表示。

假设我们收集了来自另外一个星球蠕虫牙齿的样本经验分布如下:

kl散度度量分布_熵(entropy)与KL散度及应用_第2张图片

尽管这些数据很好,但我们还是有一些问题。我们离地球很远,将数据发送回国内很昂贵。我们要做的就是将这些数据简化为仅包含一个或两个参数的简单模型。一种选择是将蠕虫中的牙齿分布表示为均匀分布。我们知道有11个可能的值,我们可以分配{1,11}的均匀概率1/11应对所有这些可能性。

kl散度度量分布_熵(entropy)与KL散度及应用_第3张图片

显然,我们的数据不是均匀分布的,但是看起来也不像我们所知道的任何常见分布。我们可以尝试的另一种选择是使用二项分布对数据进行建模。在这种情况下,我们要做的就是估计二项分布的概率参数。期望值只是我们数据的平均值,我们将其设为5.7,因此我们对p的最佳估计值为0.57。这将使我们得到一个二项分布,如下所示:

kl散度度量分布_熵(entropy)与KL散度及应用_第4张图片

将我们的每个模型与原始数据进行比较,我们可以看出,没有一个是完美的匹配,但是哪个更好?

kl散度度量分布_熵(entropy)与KL散度及应用_第5张图片

现有许多错误度量标准,但是我们主要关注的是使我们必须发送的信息量最少。这两个模型都将我们的问题简化为两个参数,即齿数和概率(尽管我们实际上只需要齿数即可获得均匀分布)。最好的测试方法是询问哪个发行版保留了我们原始数据源中最多的信息。这就是Kullback-Leibler Divergence出现的地方。

现在我们可以继续计算两个近似分布的KL散度。对于均匀分布,我们发现:

对于我们的二项式近似:

如我们所见,使用二项式逼近所损失的信息大于使用均匀逼近所损失的信息。如果我们必须选择一个来表示我们的观测值,那么最好还是坚持使用均匀逼近法。

发散而不是距离,将KL散度视为距离度量可能很诱人,但是我们不能使用KL散度来测量两个分布之间的距离。原因是KL散度不对称。例如,如果我们将观察到的数据用作近似二项式分布的方式,则会得到非常不同的结果:

从直觉上讲,这是有道理的,因为在每种情况下我们都采用一种非常不同的近似形式。

7.2 使用KL散度优化

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

kl散度度量分布_熵(entropy)与KL散度及应用_第6张图片

如您所见,我们对二项式分布的估计(以点标记)是使KL散度最小的最佳估计。假设我们想创建一个临时分布来对数据建模。我们将数据分为两部分。 0-5颗牙齿的概率和6-10颗牙齿的概率。然后,我们将使用单个参数来指定总概率分布的百分比落在分布的右侧。例如,如果我们为参数选择1,则6-10的概率分别为0.2,0-5组中的所有事物的概率均为0。因此,基本上:

我们如何才能找到我们组合在一起的这个奇怪模型的最佳参数?我们需要做的就是像以前一样最大程度地减少KL差异:

kl散度度量分布_熵(entropy)与KL散度及应用_第7张图片

我们发现,当p = 0.47时,发现KL散度的最小值为0.338。最小KL散度的值应该看起来很熟悉:它几乎与我们从均匀分布中获得的值相同!当我们用pp的理想值绘制临时分布的值时,我们发现它几乎是均匀的:

kl散度度量分布_熵(entropy)与KL散度及应用_第8张图片

由于我们不使用临时分发来保存任何信息,因此最好使用更熟悉和更简单的模型。这里的关键点是,我们可以将KL散度作为目标函数来找到我们可以得出的任何近似分布的最优值。虽然这只是优化单个参数的示例,但我们可以轻松想象将这种方法扩展到具有许多参数的高维模型。

7.3 自动编码器(VAE)和贝叶斯方法(VBAYES)

在最一般的意义上,神经网络是函数近似器。这意味着您可以使用神经网络来学习各种复杂的功能。使神经网络学习的关键是使用目标函数,该函数可以告知网络运行状况。您可以通过最小化目标函数的损失来训练神经网络。如我们所见,我们可以使用KL散度来最小化近似分布时的信息损失量。将KL散度与神经网络相结合,可以使我们学习数据的非常复杂的近似分布。一种常见的解决方法称为“可变自动编码器”,它学习了近似数据集中信息的最佳方法。这是一个很棒的教程,深入探讨了构建变体自动编码器的细节。更一般的是变分贝叶斯方法领域。在其他文章中,我们看到了蒙特卡洛模拟能够有效解决一系列概率问题。尽管蒙特卡洛模拟可以帮助解决贝叶斯推理所需的许多难解积分,但即使这些方法在计算上也非常昂贵。包括变分自动编码器在内的变分贝叶斯方法使用KL发散来生成最佳近似分布,从而可以对非常困难的积分进行更有效的推断。要了解有关变分推理的更多信息,请查看Edward库中的python。

参考文献:

Kullback-Leibler Divergence Explained — Count Bayesie​www.countbayesie.com
kl散度度量分布_熵(entropy)与KL散度及应用_第9张图片

xue

你可能感兴趣的:(kl散度度量分布)