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\) 对称。