码迷,mamicode.com
首页 > 其他好文 > 详细

KL散度&互信息

时间:2020-01-16 01:09:59      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:但我   block   mat   rac   blog   detail   证明   建模   并且   

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的推导

KL散度&互信息

标签:但我   block   mat   rac   blog   detail   证明   建模   并且   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!