警告
本文最后更新于 2023-09-03,文中内容可能已过时。
假设给定事件 x, 则我们有以下定义:
- Probability:
取值 0~1
p(x) 或 q(x)
Information:
对p(x) 取对数,加符号得正值
I(p)=−logp(x)
概率越高,包含的信息小,因为事件越来越确定。相反,概率越低,包含的信息越多,因为事件具有很大的不确定性。
(Shannon) Entropy (信息熵):
p(x) 对I(x) 平均
H(p)=Ex∼P[I(p)] =∑p(x)I(p) =−∑p(x)logp(x)
熵是信息的平均,直观上,Shannon 熵是信息在同一分布下的平均。
KL 散度来源于信息论,信息论的目的是以信息含量来度量数据。信息论的核心概念是信息熵 (Entropy),使用 H 来表示。概率论中概率分布所含的信息量同样可以使用信息熵来度量。
Note
对于任意概率事件,由于其概率
p(x)≥0 且
p(x)≤0, 因此
H(p)≥0.
Cross-Entropy:
p(x) 对I(q) 平均:
H(p,q)=Ex∼P[I(q)] =∑p(x)I(q) =−∑p(x)logq(x)
熵是信息的平均,直观上,交叉熵是信息在不同分布下的平均。
KL divergence(Relative entropy/Information gain):
DKL(p∣∣q)=H(p,q)−H(p) =−∑p(x)logq(x)+∑p(x)logp(x) =−∑p(x)logp(x)q(x) =∑p(x)logq(x)p(x)
- 相对熵 = 交叉熵 - shannon 熵
- 非对称DKL(p∣∣q)=DKL(q∣∣p),亦不满足三角不等式,故不是距离。
- DKL(p∣∣q) 为p 相对于q,值非负,取零若p=q。从公式上看,就是拿q 替代p 后熵的变化。
- KL=Kullback−Leibler
所谓 KL 散度,是指当某分布 q (x) 被用于近似 p (x) 时的信息损失。
D(p∣∣q)=x∈X∑p(x)logq(x)p(x)
也就是说,q (x) 能在多大程度上表达 p (x) 所包含的信息,KL 散度越大,表达效果越差。
非对称性
DKL(p∣∣q)−DKL(q∣∣p)=∑(p(x)+q(x))logq(x)p(x)
易知,当p(x)=q(x) 时,上式不为 0。故,DKL(p∣∣q) 和DKL(q∣∣p) 非对称,是不同的。(此部分侧重于说明它们不是不同的)
非负性
−DKL(p∣∣q)=∑p(x)logp(x)q(x)≤log∑p(x)p(x)q(x)=log1=0
其中,不等式部分使用了 Jensen’s inequality
凹性
DKL[λp1(x)+(1−λ)p2(x)∣∣λq1(x)+(1−λ)q2(x)]=∑[λp1(x)+(1−λ)p2(x)]log[λq1(x)+(1−λ)q2(x)][λp1(x)+(1−λ)p2(x)]≤∑[λp1(x)logλq1(x)λp1(x)+(1−λ)p2(x)log(1−λ)q2(x)(1−λ)p2(x)]=λ∑p1(x)logq1(x)p1(x)+(1−λ)∑p2(x)logq2(x)p2(x)=λDKL[p1(x)∣∣q1(x)]+(1−λ)DKL[p2(x)∣∣q2(x)]
其中,不等式部分用到了 log sum inequality
为了方便说明,我们基于定义在某个空间X 上的分布P 和Q 来重写一下 KL, 如下所示:
DKL(P∣∣Q)=Ex∼P[logQ(X)P(X)]
假设,P 为真实的分布函数,我们想要用带参数 θ 的分布函数 Q,即 Qθ ,去近似。也就是说,通过选取参数θ, 让 Qθ 和 P 在某种意义上具有相似性。下面,我们分别将选取正向 KL 和反向 KL 做为目标函数进行说明。为了方便,我们假设 P 为双峰分布,Qθ 为正太分布,故 θ 包含均值和方差两个参数。

- 最小化正向 KL 目标函数
目标函数如下:
$$
\begin{aligned}
&\arg\min_{\theta}D_{KL}(P||Q_{\theta}) \cr
&=\arg\min_\theta\mathbb{E}{x\sim P}[\log\frac{P(X)}{Q(X)}] \cr
&=\arg\min\theta\mathbb{E}{x\sim P}[-\log Q\theta(X)]-H[P(X)] \cr
&=\arg\min_\theta\mathbb{E}{x\sim P}[-\log Q\theta(X)] \cr
&=\arg\max_\theta\mathbb{E}{x\sim P}[\log Q\theta(X)]
\end{aligned}
$$
从此处可以看出最小化正向 KL 目标函数,其实是等价于通过 $Q_{\theta}$ 进行最大似然估计。也就是说,数据 $x$ 由 $P$ 产生,基于这些数据,我们选取 $\theta$ 让平均在 $P (X)$ 上的 $\log Q_{\theta}(X)$ 似然函数最大,即:
平均 P (X) 各个峰太,P (X) 概率高的地方,Qθ(X) 概率也要高
所以我们有下图 mean-seeking 的结果

(你也可以从信息 / 熵的角度去理解,道理是一样的)
- 最小化反向 KL 目标函数
目标函数如下:
$$
\begin{aligned}
&\arg\min_{\theta}D_{KL}(Q_{\theta}||P) \cr
&=\arg\min_\theta\mathbb{E}{x\sim Q\theta}[\log\frac{Q_\theta}{P(X)}] \cr
&=\arg\min_\theta\mathbb{E}{x\sim Q\theta}[-\log P(X)]-H[Q_\theta(X)] \cr
&=\arg\max_\theta\mathbb{E}{x\sim Q\theta}\left[\log P(X)\right]+H[Q_\theta(X)]
\end{aligned}
$$
此时,我们需要选取参数 θ,让平均在 Qθ(X) 上的 logP(X) 似然函数最大;同时,让 Shannon 熵 H(Qθ(X))
也比较大,即约束 Qθ(X) 不要过于集中。总的来看,我们有:
平均 Qθ(X) 各个峰太,Qθ(X) 概率高的地方,P(X) 概率也要高,但 Qθ(X) 不能过于集中
可以想象,如果没有 H[Qθ(X)] 的约束,可能会调整 θ,让 Qθ(X) 集中于 P(X) 最大的地方,得到的值也会比较大。所以,H[Qθ(X)] 起到了一个正则化(regularization)的效果。
所以我们有下图 mode-seeking 的结果:

正向最小化和反向最小化放在一起对比:

正向和反向最小化 此部分代码来自参考文献 3,但在调用 logsumexp 时,有点问题,故做了一个微小改动,代码放在微信公众号 MoData 文章最后,如果感兴趣,点击此处。
相关参考资料
[1]. Cover, T. M., and J. A. Thomas. “Elements of Information Theory,(2nd edn, 2006).” DOI: https://doi. org/10.1002 X 47174882 (2006).
[2]. https://dibyaghosh.com/blog/probability/kldivergence.html
[3]. https://www.tuananhle.co.uk/notes/r
ref:
[1]. KL-Divergence 详解
[2]. https://www.zhihu.com/tardis/zm/art/95687720?source_id=1005
[3]. http://hanj.cs.illinois.edu/cs412/bk3/KL-divergence.pdf
[4]. KL 进阶