KL散度&互信息

KL散度&互信息

KL散度(KL divergence)

假设我们是一组正在广袤无垠的太空中进行研究的科学家。我们发现了一些太空蠕虫,这些太空蠕虫的牙齿数量各不相同。现在我们需要将这些信息发回地球。但从太空向地球发送信息的成本很高,所以我们需要用尽量少的数据表达这些信息。我们有个好方法:我们不发送单个数值,而是绘制一张图表,其中 X 轴表示所观察到的不同牙齿数量(0,1,2…),Y 轴是看到的太空蠕虫具有 x 颗牙齿的概率(即具有 x 颗牙齿的蠕虫数量/蠕虫总数量)。这样,我们就将观察结果转换成了分布。

发送分布比发送每只蠕虫的信息更高效。但我们还能进一步压缩数据大小。我们可以用一个已知的分布来表示这个分布(比如均匀分布、二项分布、正态分布)。举个例子,假如我们用均匀分布来表示真实分布,我们只需要发送两段数据就能恢复真实数据;均匀概率和蠕虫数量。但我们怎样才能知道哪种分布能更好地解释真实分布呢?这就是 KL 散度的用武之地。

直观解释:KL 散度是一种衡量两个分布(比如两条线)之间的匹配程度的方法。

对于某个未知的分布\(p(x)\),我们用\(q(x)\)进行建模并且传递信息,为了衡量这两个分布是否匹配,我们用附加信息量的期望表示。附加信息量在这里结尾处有介绍
\[
\begin{align}
KL(p||q)&= -\int p(x)\ln q(x)\, dx-\left (-\int p(x)\ln p(x)\,dx\right)\nonumber \&= -\int p(x)\ln \left(\frac{q(x)}{p(x)}\right)\nonumber
\end{align}
\]
KL散度又称相对熵,表示用\(q(x)\)去表示\(p(x)\)时需要的附加信息量。

KL散度的性质

KL散度不是一个对称量,即:\(KL(p||q) \neq KL(q||p)\)。

并且\(KL(p||q) \geq 0\),并且只在两个分布相同时值可以取0。证明:

对于凸函数\(f(x)\),有Jensen不等式:
\[
f(\sum_{i=1}^M\lambda_i x_i) \leq \sum_{i=1}^M\lambda_if(x_i), \mathrm{ s.t.}\lambda_i \geq 0\, and \sum_i\lambda_i =1
\]
若把\(\lambda_i\)看作取值\(x_i\)的概率,那么我们可以写成:
\[
f(E(x)) \leq E(f(x))
\]
对于连续变量:
\[
f\left(\int xp(x)\, dx\right)\leq \int f(x)p(x)\,dx
\]
延伸一下:
\[
f(E[\xi(x)]) \leq E[f(\xi(x))]
\]
那么由于\(-\ln x\)是凸函数,\(\xi(x)=\frac{q(x)}{p(x)}\):
\[
\begin{align}
KL&=-\int p(x)\ln \left(\frac{q(x)}{p(x)}\right)\nonumber \& \geq -\ln \left( \int \xi(x) q(x)\,dx \right)\nonumber \&=-\ln \left( \int q(x)\,dx \right) = 0\nonumber
\end{align}
\]
并且由于\(-\ln x\)是严格凸函数,只有在\(q(x)=p(x)\)时等号成立。

数据压缩和密度估计有某种隐含的关系。对于某一分布\(p(x)\),如果我们知道真实的分布,那么我们可以给出最有效率的数据压缩并进行传输。若我们使用了其他的分布进行信息传输,那么一定会损失编码效率,传输效率降低,并且要额外传输的信息量至少为两者之间的KL散度。

在实际训练中,我们并不能得知真实的分布,所以只能用有限的数据加和得到其期望,此时KL散度近似为:
\[
KL(p||q) \simeq \frac{1}{N} \sum_{n=1}^N (-\ln q(x_n|\theta) +\ln p(x_n))
\]
公式右侧第二项与\(\theta\)无关,第一项为其负对数似然函数。由此可见最小化KL散度就是最大化似然函数。

互信息(mutual information)

对于\(p(x,y)\),给出两个变量组成的数据集。若两变量相互独立,那么\(p(x,y)=p(x)p(y)\)。若两变量不独立,那么我们要考察联合概率分布和边缘概率分布的KL散度,以判断两者是否接近独立。

我们称之为互信息:
\[
\begin{align}
I(x,y) &= KL[p(x,y)||p(x)p(y)] \nonumber \&= -\iint p(x,y)\frac{p(x)p(y)}{p(x,y)}\,dx\,dy \geq 0
\nonumber
\end{align}
\]
当两分布互相独立时等号成立。

根据条件熵的公式:
\[
H(y|x) = -\iint p(x,y)\ln p(y|x)\,dy\,dx
\]
可以得到:
\[
I(x,y)=H(x)-H(x|y)
\]
即:互信息可以表示知道\(y\)后,\(x\)的不确定行的减小程度。也可以理解成为了表示\(x\),如果我们已经传输了\(y\),那么我们已经传输的信息量为\(I(x,y)\)。

参考

直观解读KL散度的数学概念

PRML书中公式(1.118)KL散度恒大于等于 0的推导

原文地址:https://www.cnblogs.com/LvBaiYang/p/12199218.html

时间: 2024-10-15 16:14:46

KL散度&互信息的相关文章

非负矩阵分解(1):准则函数及KL散度

作者:桂. 时间:2017-04-06  12:29:26 链接:http://www.cnblogs.com/xingshansi/p/6672908.html 声明:欢迎被转载,不过记得注明出处哦~ 前言 之前在梳理最小二乘的时候,矩阵方程有一类可以利用非负矩阵分解(Non-negative matrix factorization, NMF)的方法求解,经常见到别人提起这个算法,打算对此梳理一下.优化问题求解,最基本的是问题描述与准则函数的定义,紧接着才涉及准则函数的求解问题,本文为NMF

KL散度

1. 相对熵的认识 相对熵又称互熵,交叉熵,鉴别信息,Kullback熵,Kullback-Leible散度(即KL散度)等.设和 是取值的两个概率概率分布,则对的相对熵为 在一定程度上,熵可以度量两个随机变量的距离.KL散度是两个概率分布P和Q差别的非对称性的度量.KL散度是 用来度量使用基于Q的编码来编码来自P的样本平均所需的额外的位元数. 典型情况下,P表示数据的真实分布,Q 表示数据的理论分布,模型分布,或P的近似分布. 2. 相对熵的性质 相对熵(KL散度)有两个主要的性质.如下 (1

KL 散度,相对熵

找了一些文章,感觉这篇是最好的,转载自: 最好的解释链接 KL散度常用于衡量两个概率分布之间的距离.根据香农定理,对一个概率分布 P(X) 进行最优编码方案编码的平均编码长度为: 也就是说,如果对于概率分布 P(X) 的的编码为最优编码方案时: 现假设在同样的字符集上,存在另一个概率分布 Q(X) ,如果用概率分布 P(X) 的最优编码来为符合分布 Q(X) 的字符编码,因为 Q(x) 的最少编码数量应该不是 P(x) 的最优编码方案,除非两个分布一模一样.所以,此时表示这些字符就会比理想情况下

TensorFlow的初次使用+Python画3D图和计算KL散度

ython计算KL散度import numpy as np import scipy.stats x = [np.random.randint(1,11) for i in range(10)] print(x) print(np.sum(x)) px = x/np.sum(x)#归一化 print(px) y = [np.random.randint(1, 11) for i in range(10)] print(y) print(np.sum(y)) py = y / np.sum(y)#

ELBO 与 KL散度

浅谈KL散度 一.第一种理解 相对熵(relative entropy)又称为KL散度(Kullback–Leibler divergence,简称KLD),信息散度(information divergence),信息增益(information gain). KL散度是两个概率分布P和Q差别的非对称性的度量. KL散度是用来度量使用基于Q的编码来编码来自P的样本平均所需的额外的比特个数. 典型情况下,P表示数据的真实分布,Q表示数据的理论分布,模型分布,或P的近似分布. 根据shannon的

【机器学习基础】熵、KL散度、交叉熵

熵(entropy).KL 散度(Kullback-Leibler (KL) divergence)和交叉熵(cross-entropy)在机器学习的很多地方会用到.比如在决策树模型使用信息增益来选择一个最佳的划分,使得熵下降最大:深度学习模型最后一层使用 softmax 激活函数后,我们也常使用交叉熵来计算两个分布的"距离".KL散度和交叉熵很像,都可以衡量两个分布之间的差异,相互之间可以转化. 1. 如何量化信息? 信息论是应用数学的一个分支,主要研究的是对一个信号包含信息的多少进

深度学习中交叉熵和KL散度和最大似然估计之间的关系

机器学习的面试题中经常会被问到交叉熵(cross entropy)和最大似然估计(MLE)或者KL散度有什么关系,查了一些资料发现优化这3个东西其实是等价的. 熵和交叉熵 提到交叉熵就需要了解下信息论中熵的定义.信息论认为: 确定的事件没有信息,随机事件包含最多的信息. 事件信息的定义为:\(I(x)=-log(P(x))\):而熵就是描述信息量:\(H(x)=E_{x\sim P}[I(x)]\),也就是\(H(x)=E_{x\sim P}[-log(P(x))]=-\Sigma_xP(x)l

【深度学习】K-L 散度

K-L 散度 K-L 散度 K-L 散度在信息系统中称为相对熵,可以用来量化两种概率分布 P 和 Q 之间的差异,它是非对称性的度量.在概率学和统计学上,我们经常会使用一种更简单的.近似的分布来替代观察数据或太复杂的分布.K-L散度能帮助我们度量使用一个分布来近似另一个分布时所损失的信息量.一般情况下,P 表示数据的真实分布,Q 表示数据的理论分布,估计的模型分布或者 P 的近似分布. K-L 散度定义 ? Note:KL 散度仅当概率 \(P\) 和 \(Q\) 各自总和均为1,且对于任何 \

K-L 散度

K-L散度度量信息损失 只需要稍加修改熵H的计算公式就能得到K-L散度的计算公式.设p为观察得到的概率分布,q为另一分布来近似p,则p.q的K-L散度为: entropy-p-q 显然,根据上面的公式,K-L散度其实是数据的原始分布p和近似分布q之间的对数差值的期望.如果继续用2为底的对数计算,则K-L散度值表示信息损失的二进制位数.下面公式以期望表达K-L散度: DKL1 一般,K-L散度以下面的书写方式更常见: DKL2 注:log a - log b = log (a/b) OK,现在我们