KL Divergence 详解

警告
本文最后更新于 2023-09-03,文中内容可能已过时。

假设给定事件 xx, 则我们有以下定义:

  1. Probability: 取值 0~1

p(x) q(x)p (x) 或 q (x)

  1. Information: p(x)p(x) 取对数,加符号得正值 I(p)=logp(x)I(p)=-\log p(x) 概率越高,包含的信息小,因为事件越来越确定。相反,概率越低,包含的信息越多,因为事件具有很大的不确定性。

  2. (Shannon) Entropy (信息熵):

p(x)p(x) I(x)I(x) 平均 H(p)=ExP[I(p)] =p(x)I(p) =p(x)logp(x) \begin{aligned} H(p)& =\mathbb{E}_{x\sim P}[I(p)] \ &=\sum p(x)I(p) \ &=-\sum p(x)\log p(x) \end{aligned} 熵是信息的平均,直观上,Shannon 熵是信息在同一分布下的平均。

KL 散度来源于信息论,信息论的目的是以信息含量来度量数据。信息论的核心概念是信息熵 (Entropy),使用 H 来表示。概率论中概率分布所含的信息量同样可以使用信息熵来度量。

Note
对于任意概率事件,由于其概率 p(x)0p(x) \geq 0p(x)0p(x) \leq 0, 因此 H(p)0H(p) \geq 0.
  1. Cross-Entropy: p(x)p(x) I(q)I(q) 平均: H(p,q)=ExP[I(q)] =p(x)I(q) =p(x)logq(x) \begin{aligned} H(p,q)& =\mathbb{E}_{x\sim P}[I(q)] \ &=\sum p(x)I(q) \ &=-\sum p(x)\log q(x) \end{aligned} 熵是信息的平均,直观上,交叉熵是信息在不同分布下的平均。

  2. KL divergence(Relative entropy/Information gain): DKL(pq)=H(p,q)H(p) =p(x)logq(x)+p(x)logp(x) =p(x)logq(x)p(x) =p(x)logp(x)q(x) \begin{aligned} D_{KL}(p||q)& =H(p,q)-H(p) \ &=-\sum p(x)\log q(x)+\sum p(x)\log p(x) \ &=-\sum p(x)\log\frac{q(x)}{p(x)} \ &=\sum p(x)\log\frac{p(x)}{q(x)} \end{aligned}

    • 相对熵 = 交叉熵 - shannon 熵
    • 非对称 DKL(pq)DKL(qp)D_{KL}(p||q)\neq D_{KL}(q||p),亦不满足三角不等式,故不是距离。
    • DKL(pq)D_{KL}(p||q) pp 相对于 qq,值非负,取零若 p=qp=q。从公式上看,就是拿 qq 替代 pp 后熵的变化。
    • KL=KullbackLeiblerKL = Kullback-Leibler

所谓 KL 散度,是指当某分布 q (x) 被用于近似 p (x) 时的信息损失。

D(pq)=xXp(x)logp(x)q(x) D(p||q)=\sum_{x\in X}p(x)\log\frac{p(x)}{q(x)} 也就是说,q (x) 能在多大程度上表达 p (x) 所包含的信息,KL 散度越大,表达效果越差。

  1. 非对称性 DKL(pq)DKL(qp)=(p(x)+q(x))logp(x)q(x) D_{KL}(p||q)-D_{KL}(q||p)=\sum\left(p(x)+q(x)\right)\log\frac{p(x)}{q(x)} 易知,当 p(x)q(x)p(x) \neq q(x) 时,上式不为 0。故,DKL(pq)D_{KL}(p||q) DKL(qp)D_{KL}(q||p) 非对称,是不同的。(此部分侧重于说明它们不是不同的)

  2. 非负性 DKL(pq)=p(x)logq(x)p(x)logp(x)q(x)p(x)=log1=0 \begin{aligned} -D_{KL}(p||q)& =\sum p(x)\log\frac{q(x)}{p(x)} \cr &\leq\log\sum p(x)\frac{q(x)}{p(x)} \cr &=\log1 \cr &=0 \end{aligned} 其中,不等式部分使用了 Jensen’s inequality

  3. 凹性 DKL[λp1(x)+(1λ)p2(x)λq1(x)+(1λ)q2(x)]=[λp1(x)+(1λ)p2(x)]log[λp1(x)+(1λ)p2(x)][λq1(x)+(1λ)q2(x)][λp1(x)logλp1(x)λq1(x)+(1λ)p2(x)log(1λ)p2(x)(1λ)q2(x)]=λp1(x)logp1(x)q1(x)+(1λ)p2(x)logp2(x)q2(x)=λDKL[p1(x)q1(x)]+(1λ)DKL[p2(x)q2(x)] \begin{aligned} &D_{KL}[\lambda p_1(x)+(1-\lambda)p_2(x)||\lambda q_1(x)+(1-\lambda)q_2(x)] \cr &=\sum\left[\lambda p_1(x)+(1-\lambda)p_2(x)\right]\log\frac{[\lambda p_1(x)+(1-\lambda)p_2(x)]}{[\lambda q_1(x)+(1-\lambda)q_2(x)]} \cr &\leq\sum\left[\lambda p_1(x)\log\frac{\lambda p_1(x)}{\lambda q_1(x)}+(1-\lambda)p_2(x)\log\frac{(1-\lambda)p_2(x)}{(1-\lambda)q_2(x)}\right] \cr &=\lambda\sum p_1(x)\log\frac{p_1(x)}{q_1(x)}+(1-\lambda)\sum p_2(x)\log\frac{p_2(x)}{q_2(x)} \cr &=\lambda D_{KL}[p_1(x)||q_1(x)]+(1-\lambda)D_{KL}[p_2(x)||q_2(x)] \end{aligned}

其中,不等式部分用到了 log sum inequality

为了方便说明,我们基于定义在某个空间 XX 上的分布 PP QQ 来重写一下 KL, 如下所示: DKL(PQ)=ExP[logP(X)Q(X)] D_{KL}(P||Q)=\mathbb{E}_{x\sim P}[\log\frac{P(X)}{Q(X)}]

假设,PP 为真实的分布函数,我们想要用带参数 θ\theta 的分布函数 QQ,即 QθQ_{\theta} ,去近似。也就是说,通过选取参数 θ\theta, 让 QθQ_{\theta}PP 在某种意义上具有相似性。下面,我们分别将选取正向 KL 和反向 KL 做为目标函数进行说明。为了方便,我们假设 PP 为双峰分布,QθQ_{\theta} 为正太分布,故 θ\theta 包含均值和方差两个参数。

/posts/kldivergence/images/1.webp

  1. 最小化正向 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)Q_{\theta}(X) 概率也要高

所以我们有下图 mean-seeking 的结果

/posts/kldivergence/images/2.webp

(你也可以从信息 / 熵的角度去理解,道理是一样的)

  1. 最小化反向 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} $$

此时,我们需要选取参数 θ\theta,让平均在 Qθ(X)Q_{\theta}(X) 上的 logP(X)\log P(X) 似然函数最大;同时,让 Shannon 熵 H(Qθ(X))H(Q_{\theta}(X)) 也比较大,即约束 Qθ(X)Q_{\theta}(X) 不要过于集中。总的来看,我们有:

平均 Qθ(X)Q_{\theta}(X) 各个峰太,Qθ(X)Q_{\theta}(X) 概率高的地方,P(X)P(X) 概率也要高,但 Qθ(X)Q_{\theta}(X) 不能过于集中

可以想象,如果没有 H[Qθ(X)]H[Q_{\theta}(X)] 的约束,可能会调整 θ\theta,让 Qθ(X)Q_{\theta}(X) 集中于 P(X)P(X) 最大的地方,得到的值也会比较大。所以,H[Qθ(X)]H[Q_{\theta}(X)] 起到了一个正则化(regularization)的效果。

所以我们有下图 mode-seeking 的结果:

/posts/kldivergence/images/3.webp

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

/posts/kldivergence/images/4.webp

正向和反向最小化 此部分代码来自参考文献 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 进阶

Buy me a coffee~
Jian YE 支付宝支付宝
微信
0%