ELBO 与 KL散度

浅谈KL散度

一、第一种理解  

相对熵(relative entropy)又称为KL散度(Kullback–Leibler divergence,简称KLD),信息散度(information divergence),信息增益(information gain)。

  KL散度是两个概率分布P和Q差别的非对称性的度量。

KL散度是用来度量使用基于Q的编码来编码来自P的样本平均所需的额外的比特个数。 典型情况下,P表示数据的真实分布,Q表示数据的理论分布,模型分布,或P的近似分布。

根据shannon的信息论,给定一个字符集的概率分布,我们可以设计一种编码,使得表示该字符集组成的字符串平均需要的比特数最少。假设这个字符集是X,对x∈X,其出现概率为P(x),那么其最优编码平均需要的比特数等于这个字符集的熵:

  H(X)=∑x∈XP(x)log[1/P(x)]

  在同样的字符集上,假设存在另一个概率分布Q(X)。如果用概率分布P(X)的最优编码(即字符x的编码长度等于log[1/P(x)]),来为符合分布Q(X)的字符编码,那么表示这些字符就会比理想情况多用一些比特数。KL-divergence就是用来衡量这种情况下平均每个字符多用的比特数,因此可以用来衡量两个分布的距离。即:

  DKL(Q||P)=∑x∈XQ(x)[log(1/P(x))] - ∑x∈XQ(x)[log[1/Q(x)]]=∑x∈XQ(x)log[Q(x)/P(x)]

  由于-log(u)是凸函数,因此有下面的不等式

  DKL(Q||P) = -∑x∈XQ(x)log[P(x)/Q(x)] = E[-logP(x)/Q(x)] ≥ -logE[P(x)/Q(x)] = -  log∑x∈XQ(x)P(x)/Q(x) = 0

  即KL-divergence始终是大于等于0的。当且仅当两分布相同时,KL-divergence等于0。

  ===========================

  举一个实际的例子吧:比如有四个类别,一个方法A得到四个类别的概率分别是0.1,0.2,0.3,0.4。另一种方法B(或者说是事实情况)是得到四个类别的概率分别是0.4,0.3,0.2,0.1,那么这两个分布的KL-Distance(A,B)=0.1*log(0.1/0.4)+0.2*log(0.2/0.3)+0.3*log(0.3/0.2)+0.4*log(0.4/0.1)

  这个里面有正的,有负的,可以证明KL-Distance()>=0.

  从上面可以看出, KL散度是不对称的。即KL-Distance(A,B)!=KL-Distance(B,A)

  KL散度是不对称的,当然,如果希望把它变对称,

  Ds(p1, p2) = [D(p1, p2) + D(p2, p1)] / 2.

二、第二种理解

  今天开始来讲相对熵,我们知道信息熵反应了一个系统的有序化程度,一个系统越是有序,那么它的信息熵就越低,反之就越高。下面是熵的定义

如果一个随机变量的可能取值为,对应的概率为,则随机变量的熵定义为

  有了信息熵的定义,接下来开始学习相对熵。

  1. 相对熵的认识

相对熵又称互熵,交叉熵,鉴别信息,Kullback熵,Kullback-Leible散度(即KL散度)等。设

取值的两个概率概率分布,则的相对熵为

在一定程度上,熵可以度量两个随机变量的距离。KL散度是两个概率分布P和Q差别的非对称性的度量。KL散度是

用来度量使用基于Q的编码来编码来自P的样本平均所需的额外的位元数。 典型情况下,P表示数据的真实分布,Q

表示数据的理论分布,模型分布,或P的近似分布。

2. 相对熵的性质

相对熵(KL散度)有两个主要的性质。如下

(1)尽管KL散度从直观上是个度量或距离函数,但它并不是一个真正的度量或者距离,因为它不具有对称性,即

(2)相对熵的值为非负值,即

在证明之前,需要认识一个重要的不等式,叫做吉布斯不等式。内容如下

3. 相对熵的应用

相对熵可以衡量两个随机分布之间的距离,当两个随机分布相同时,它们的相对熵为零,当两个随机分布的差别增

大时,它们的相对熵也会增大。所以相对熵(KL散度)可以用于比较文本的相似度,先统计出词的频率,然后计算

KL散度就行了。另外,在多指标系统评估中,指标权重分配是一个重点和难点,通过相对熵可以处理。

4.交叉熵与相对熵



参考:http://www.cnblogs.com/hxsyl/p/4910218.html

https://www.zhihu.com/question/41252833


ELBO(证据下界)

网上关于ELBO的内容较少,主要常出现在变分推断当中。

例如在用EM处理LDA主题模型时,

看看文档数据的对数似然函数 如下,为了简化表示,用 代替 ,用来表示 对于变分分布 的期望。

其中,从第(5)式到第(6)式用到了Jensen不等式:

一般把第(7)式记为:

由于 是我们的对数似然的一个下界(第6式),所以这个L一般称为ELBO(Evidence Lower BOund)。那么这个ELBO和我们需要优化的的KL散度有什么关系呢?注意到:

在(10)式中,由于对数似然部分和我们的KL散度无关,可以看做常量,因此我们希望最小化KL散度等价于最大化ELBO。那么我们的变分推断最终等价的转化为要求ELBO的最大值。现在我们开始关注于极大化ELBO并求出极值对应的变分参数λ,?,γ。



参考文献:https://zhuanlan.zhihu.com/p/29932017

原文地址:https://www.cnblogs.com/yifdu25/p/8278986.html

时间: 2024-07-30 17:23:17

ELBO 与 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)#

【机器学习基础】熵、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,现在我们

交叉熵与KL散度

参考:https://blog.csdn.net/b1055077005/article/details/100152102 (文中所有公式均来自该bolg,侵删) 信息奠基人香农(Shannon)认为“信息是用来消除随机不确定性的东西”,我们需要寻找一个量来衡量信息的有用程度.首先要先明确,这里的信息都指的是正确信息. 一件越不可能的事发生了,对其他人的用处就越大.比如:我的cvpr被拒稿了.这是一个极大概率事件,所以我跟你说的话,你会感觉:这还用你说?也就是说这句话对你没啥用. 但是如果我说