Skip to content

KL 散度

KL 散度(Kullback-Leibler divergence,简称 KLD),又有别称相对熵 (relative entropy),消息增益(information gain),消息散度(information divergence)等。

定义

对于两个定义在同一样本空间 \(\mathcal{X}\) 的离散概率分布 \(P\)\(Q\) ,KL 散度定义为

\[D_{\mathrm{KL}}(P||Q) = \sum_{x\in\mathcal{X}}P(x)\ln\frac{P(x)}{Q(x)}\]

对于连续分布,上式改为积分形式

\[D_{\mathrm{KL}}(P||Q) = \int_{\mathcal{X}}p(x)\ln\frac{p(x)}{q(x)}\]

这里的 \(p(x)\)\(q(x)\) 分别是分布 \(P\)\(Q\) 的概率密度函数。约定 \(0\ln(0/q) = 0\)\((p/0)\ln(p/0) = +\infty\) .

这里的对数一般是以 \(e\) 为底,单位是 nat ;若以 2 为底,单位就是 bit 。

性质

非负性

KL 散度的非负性等价于 Gibbs 不等式:

设有离散概率分布 \(P\)\(Q\) ,则有

\[D_{\mathrm{KL}}(P||Q) = \sum_{x\in\mathcal{X}}P(x)\ln\frac{P(x)}{Q(x)} \ge 0\]

当且仅当 \(P(x_i) = Q(x_i)\) 对下标 \(i=1,2,\cdots,n\) 都成立时,等号成立。

证明

要证 \(\sum_{x\in\mathcal{X}}P(x)\ln\dfrac{P(x)}{Q(x)} \ge 0\) ,即证 \(-\sum_{x\in\mathcal{X}}P(x)\ln\dfrac{Q(x)}{P(x)} \ge 0\) .

设使得 \(P(x) >0\)\(x\) 集合为 \(\mathcal{M}\) . 因为 \(P(x) =0\) 时,\(P(x)\ln\dfrac{P(x)}{Q(x)} = 0\) ,所以相当于要证明 \(\sum_{x\in\mathcal{M}}P(x)\ln\dfrac{Q(x)}{P(x)} \le 0\) .

\[\begin{aligned} \sum_{x\in\mathcal{M}}P(x)\ln\dfrac{Q(x)}{P(x)} &\le \sum_{x\in\mathcal{M}}P(x)\left[\frac{Q(x)}{P(x)}-1\right]\\ &=\sum_{x\in\mathcal{M}}Q(x)-\sum_{x\in\mathcal{M}}P(x)\\ &= \sum_{x\in\mathcal{M}}Q(x) - 1\\ & \le 0 \end{aligned}\]

接下来是等号取等条件。首先, \(\sum_{x\in\mathcal{M}}Q(x)-1 \le 0\) 的取等条件是 \(\sum_{x\in\mathcal{M}}Q(x) = 1\) ;其次,\(\sum_{x\in\mathcal{M}}P(x)\ln\dfrac{Q(x)}{P(x)} \le \sum_{x\in\mathcal{M}}P(x)\left[\dfrac{Q(x)}{P(x)}-1\right]\) 的取等条件是 \(\dfrac{Q(x)}{P(x)}=1, x\in\mathcal{M}\) . 当且仅当同时满足两取等条件时,等号成立。

翻译一下这两个取等条件。\(\sum_{x\in\mathcal{M}}Q(x) = 1\) 说明 \(Q(x)=0,x \notin \mathcal{M}\) . 注意到分布 \(P\) 也满足 \(P(x)=0,x\notin \mathcal{M}\) . 再考虑第二个取等条件 \(Q(x)=P(x), x\in\mathcal{M}\) ,从而得到统一的取等条件:

\[Q(x) = P(x), x\in\mathcal{X}\]

非对称性

KL 散度不是一个距离函数,它是非对称的,即

\[D_{KL}(P||Q) \neq D_{KL}(Q||P)\]

理解

KL 散度可以表示为

\[\begin{aligned} D_{KL}(P||Q)&=\mathbb{E}_{x\sim P}\left[\ln\frac{P(x)}{Q(x)}\right]\\ &= \sum_{x\in\mathcal{X}}P(x)[-\ln Q(x)]-\sum_{x\in\mathcal{X}}P(x)[-\ln P(x)] \end{aligned}\]
  • \(\sum_{x\in\mathcal{X}}P(x)[-\ln P(x)]\) 代表熵,即概率分布 \(P\) 的平均信息量,或者说编码一个服从 \(P\) 分布的样本所需的平均最优编码长度,单位为 nat;
  • \(\sum_{x\in\mathcal{X}}P(x)[-\ln Q(x)]\) 代表交叉熵,即把一个服从 \(P\) 分布的样本错误地按照 \(Q\) 分布进行编码时,所需的平均最优编码长度,单位为 nat .

因此,KL 散度就可以理解为,把一个服从 \(P\) 分布的样本错误地按照 \(Q\) 分布进行编码时,所“浪费”(冗余)的编码长度。“浪费”是因为我们没有按照 \(P\) 分布,而是按照 \(Q\) 分布进行编码。

综上所述,KL 散度实际是用“熵”这一概念,来描述两个分布的“距离”。

四、实例

正态分布间的 KL 散度

我们考虑两个一维正态分布 \(X\sim\mathcal{N}(\mu_1,\sigma_1^2)\)\(X\sim\mathcal{N}(\mu_2,\sigma_2^2)\) ,两分布的概率密度函数分别为:

\[p(x)=\frac{1}{\sqrt{2\pi}\sigma_1}e^{-\frac{(x-\mu_1)^2}{2\sigma_1^2}},q(x)=\frac{1}{\sqrt{2\pi}\sigma_2}e^{-\frac{(y-\mu_2)^2}{2\sigma_2^2}}\]

取对数,有

\[\ln p(x)=-\frac{(x-\mu_1)^2}{2\sigma_1^2}-\ln\left(\sqrt{2\pi}\sigma_1\right),\ln q(x)=-\frac{(x-\mu_2)^2}{2\sigma_2^2}-\ln\left(\sqrt{2\pi}\sigma_2\right)\]

从而有

\[\begin{aligned} \ln\frac{p(x)}{q(x)}&=\ln p(x)-\ln q(x)\\ &= -\frac{(x-\mu_1)^2}{2\sigma_1^2}-\ln\left(\sqrt{2\pi}\sigma_1\right)+\frac{(x-\mu_2)^2}{2\sigma_2^2}+\ln\left(\sqrt{2\pi}\sigma_2\right)\\ &= \frac{(x-\mu_2)^2}{2\sigma_2^2}-\frac{(x-\mu_1)^2}{2\sigma_1^2}+\ln\frac{\sigma_2}{\sigma_1} \end{aligned}\]

从而有

\[\begin{aligned} D_{\rm{KL}}(X||Y) &= \mathbb{E}_{x\sim p}\left[\ln \frac{p(x)}{q(x)}\right]\\ &= \ln\frac{\sigma_2}{\sigma_1}-\frac{1}{2\sigma_1^2}\mathbb{E}_{x\sim p}\left[(x-\mu_1)^2\right]+\frac{1}{2\sigma_2^2}\mathbb{E}_{x\sim p}\left[(x-\mu_2)^2\right]\\ &= \ln\frac{\sigma_2}{\sigma_1}-\frac{\sigma_1^2}{2\sigma_1^2}+\frac{1}{2\sigma_2^2}\mathbb{E}_{x\sim p}\left[(x-\mu_1)^2+(\mu_1-\mu_2)^2+2(\mu_1-\mu_2)(x-\mu_1)\right]\\ &= \ln\frac{\sigma_2}{\sigma_1}-\frac{1}{2}+\frac{\sigma_1^2+(\mu_1-\mu_2)^2}{2\sigma_2^2}\\ &= \frac{1}{2}\left[\ln\frac{\sigma_2^2}{\sigma_1^2}+\frac{\sigma_1^2}{\sigma_2^2}+\frac{(\mu_1-\mu_2)^2}{\sigma_2^2}-1\right] \end{aligned}\]

推导过程中,\(\mathbb{E}_{x\sim p}\left[2(\mu_1-\mu_2)(x-\mu_1)\right] = 0\) 是因为 \(x\) 的分布关于 \(\mu_1\) 对称。