本文由 简悦 SimpRead 转码, 原文地址 hsinjhao.github.io

KL 散度简介 KL 散度的概念来源于概率论和信息论中。

[](#KL散度简介 "KL散度简介")KL 散度简介

KL 散度的概念来源于概率论和信息论中。KL 散度又被称为:相对熵、互熵、鉴别信息、Kullback熵、Kullback-Leible散度 (即 KL 散度的简写)。在机器学习、深度学习领域中,KL 散度被广泛运用于变分自编码器中 (Variational AutoEncoder, 简称 VAE)、EM 算法、GAN 网络中。

[](#KL散度定义 "KL散度定义")KL 散度定义

KL 散度的定义是建立在熵 (Entropy) 的基础上的。此处以离散随机变量为例,先给出熵的定义,再给定 KL 散度定义。

若一个离散随机变量 $\mathbf{X}$的可能取值为 $X=\{x_1,x_2,\cdots,x_n\}$,而对应的概率为 $p_i = p(X = x_i)$,则随机变量 $\mathbf{X}$的熵定义为:

$$H(X) = - \sum_{i=1}^{n} p(x_i) \log p(x_{i})$$

规定当 $p(x_i) = 0$时,$p(x_i) \log p(x_i) = 0$

若有两个随机变量 $\mathbf{P、Q}$,且其概率分布分别为 $p(x)、q(x)$,则 $p$相对 $q$的相对熵为:

$$D_{KL}(p||q) = \sum_{i=1}^{n}p(x) \log \frac{p(x)}{q(x)}$$

之所以称之为相对熵,是因为其可以通过两随机变量的交叉熵 (Cross-Entropy) 以及信息熵推导得到:
针对上述离散变量的概率分布 $p(x)、q(x)$而言,其交叉熵定义为:

$$\begin{aligned} H(p,q) = & \sum_{x}p(x) \log \frac{1}{q(x)} \\ = & - \sum_{x} p(x) \log q(x) \end{aligned}$$

在信息论中,交叉熵可认为是对预测分布 $q(x)$用真实分布 $p(x)$来进行编码时所需要的信息量大小。

因此,KL 散度或相对熵可通过下式得出:

$$\begin{aligned} D_{KL}(p||q) = & H(p,q)-H(p) \\ =& - \sum_{x} p(x) \log q(x) - \sum_{x}-p(x)\log p(x)\\ =& -\sum_{x} p(x) (\log q(x)-\log p(x))\\ =& -\sum_{x}p(x) \log \frac{q(x)}{p(x)} \end{aligned}$$

[](#KL散度的数学性质 "KL散度的数学性质")KL 散度的数学性质

KL 散度可以用来衡量两个分布之间的差异,其具有如下数学性质:

[](#正定性 "正定性")正定性

$$D_{KL}(p||q) \geq 0$$

可用 Gibbs 不等式直接得出。先给出 Gibbs 不等式的内容:

若$\sum_{i=1}^{n} p_i = \sum_{i=1}^{n} q_i = 1$, 且 $p_i,q_i \in(0,1]$, 则有:

$$-\sum_{i}^{n} p_i \log p_i \leq -\sum_{i}^{n} p_i \log q_i$$

当且仅当 $p_i=q_i \forall i$等号成立。

Gibbs 不等式的证明可见后文附录。

[](#不对称性 "不对称性")不对称性

KL 散度并不是一个真正的度量或者距离,因为它不具有对称性:

$$D(p \| q) \neq D(q \| p)$$

各种散度中,Jensen-Shannon divergence(JS 散度) 是对称的。

对 KL 散度不对称性的直观解释可见链接

[](#从不同角度解读KL散度 "从不同角度解读KL散度")从不同角度解读 KL 散度

[](#统计学意义上的KL散度 "统计学意义上的KL散度:")统计学意义上的 KL 散度:

在统计学意义上来说,KL 散度可以用来衡量两个分布之间的差异程度。若两者差异越小,KL 散度越小,反之亦反。当两分布一致时,其 KL 散度为 0。正是因为其可以衡量两个分布之间的差异,所以在 VAE、EM、GAN 中均有使用到 KL 散度。

[](#信息论角度的KL散度 "信息论角度的KL散度:")信息论角度的 KL 散度:

KL 散度在信息论中的专业术语为相对熵。其可理解为编码系统对信息进行编码时所需要的平均附加信息量。其中信息量的单位随着计算公式中 $log$运算的底数而变化。

  • log 底数为 2:单位为比特 (bit)
  • log 底数为e:单位为奈特 (nat)

若对从统计学角度直观解释 KL 散度感兴趣,可参阅以下文章:

[](#连续随机变量的KL散度推导 "连续随机变量的KL散度推导")连续随机变量的 KL 散度推导

[](#服从一维高斯分布的随机变量KL散度 "服从一维高斯分布的随机变量KL散度")服从一维高斯分布的随机变量 KL 散度

[](#定义 "定义")定义

假设 pq 均是服从 $N~(\mu_1,\sigma_1^2)$和 $N~(\mu_2,\sigma_2^2)$的随机变量的概率密度函数 (_probability density function_) ,则从 qp 的 KL 散度定义为:

$$\begin{aligned} D_{KL}(p||q)=& \int \left[\log(p(x)) - \log( q(x)) \right]p(x)\ dx \\ =& \int \left[ \ p(x)\log(p(x)) - p(x)\log(q(x)) \right ] \ dx \end{aligned}$$

已知正态分布的概率密度函数 (probability density function) 如下式:

$$\begin{aligned} p(x)=\frac{1}{\sqrt{2\pi}\sigma_1} \exp\left(-\frac{(x-\mu_1)^2}{2\sigma_1^2} \right) \\ q(x)=\frac{1}{\sqrt{2\pi}\sigma_2} \exp\left(-\frac{(x-\mu_2)^2}{2\sigma_2^2} \right) \end{aligned}$$

[](#KL散度推导 "KL散度推导")KL 散度推导

根据 $KL$散度公式可以将其分为两项进行计算,第一项$\int p(x)\log(p(x)) dx$计算如下:

$$\begin{aligned} \int p(x)\log(p(x)) dx =& \int p(x) \log \left[\frac{1}{\sqrt{2\pi}\sigma_1} exp\left(-\frac{(x-\mu_1)^2}{2\sigma_1^2} \right)\right ] dx \\ =& \int p(x) \left[ \log \frac{1}{\sqrt{2\pi}\sigma_1} + \log exp\left(-\frac{(x-\mu_1)^2}{2\sigma_1^2} \right) \right] dx \\ =& -\frac{1}{2}\log(2\pi\sigma_1^2) + \int p(x)\left(-\frac{(x-\mu_1)^2}{2\sigma_1^2} \right) dx \\ =& -\frac{1}{2}\log(2\pi\sigma_1^2) - \frac{\int p(x) x^2 dx - \int p(x) 2x\mu_1 dx + \int p(x) \mu_1^2 dx}{2 \sigma_1^2} \\ =& -\frac{1}{2}\log(2\pi\sigma_1^2) - \frac{(\mu_1^2+\sigma_1^2)\ - (2\mu_1\times\mu_1) \ + \mu_1^2}{2 \sigma_1^2} \\ =& - \frac{1}{2} \left[ 1+\log(2\pi \sigma_1^2) \right] \end{aligned}$$

第二项可以同第一项按照类似的方式进行展开化简,如下:

$$\begin{aligned} \int p(x)\log(q(x)) dx =& \int p(x) \log \left[\frac{1}{\sqrt{2\pi}\sigma_2} exp\left(-\frac{(x-\mu_2)^2}{2\sigma_2^2} \right)\right ] dx \\ =& \int p(x) \left[ \log \frac{1}{\sqrt{2\pi}\sigma_2} + \log exp\left(-\frac{(x-\mu_2)^2}{2\sigma_2^2} \right) \right] dx \\ =& -\frac{1}{2}\log(2\pi\sigma_2^2) + \int p(x)\left(-\frac{(x-\mu_2)^2}{2\sigma_2^2} \right) dx \\ =& -\frac{1}{2}\log(2\pi\sigma_2^2) - \frac{\int p(x) x^2 dx - \int p(x) 2x\mu_2 dx + \int p(x) \mu_2^2 dx}{2 \sigma_2^2} \\ =& -\frac{1}{2}\log(2\pi\sigma_2^2) - \frac{(\mu_1^2+\sigma_1^2)\ - (2\mu_2\times\mu_1) \ + \mu_2^2}{2 \sigma_2^2} \\ =& -\frac{1}{2}\log(2\pi\sigma_2^2) - \frac{\sigma_1^2\ + (\mu_1 -\mu_2)^2 }{2 \sigma_2^2} \end{aligned}$$

所以可以简化KL散度公式如下:

$$\begin{aligned} KL(p,q) =& \int \left[\ p(x)\log(p(x)) - p(x)\log(q(x))\right ]\ dx \\ =& - \frac{1}{2} \left[ 1+\log(2\pi \sigma_1^2) \right] - \left[-\frac{1}{2}\log(2\pi\sigma_2^2) - \frac{\sigma_1^2\ + (\mu_1 -\mu_2)^2 }{2 \sigma_2^2} \right] \\ =& \ \log \frac{\sigma_2}{\sigma_1} \ +\frac{\sigma_1^2\ + (\mu_1 -\mu_2)^2 }{2 \sigma_2^2} \ - \frac{1}{2} \end{aligned}$$

[](#服从多元高斯分布的随机变量KL散度 "服从多元高斯分布的随机变量KL散度")服从多元高斯分布的随机变量 KL 散度

[](#定义-1 "定义")定义

其定义与一元高斯分布假设下一致,只是 pq 服从的分布形式产生了改变:

$$\begin{aligned} p(x) & \sim N~(\mathbf{\mu_1},\Sigma_1^2) \\ &= {1 \over { { {(2\pi )}^{n/2} }{ {\left| \Sigma_{1} \right|}^{1/2} } } }\exp \left(- {1 \over 2}{(x - \mu_{1})^T}{\Sigma_{1} ^{ - 1} }(x - \mu_{1})\right ) \end{aligned}$$

$$\begin{aligned} q(x) & \sim N~(\mathbf{\mu_{2} },\Sigma_{2}^2) \\ &= {1 \over { { {(2\pi )}^{n/2} }{ {\left| \Sigma_{2} \right|}^{1/2} } } }\exp \left(- {1 \over 2}{(x - \mu_{2})^T}{\Sigma_{2} ^{ - 1} }(x - \mu_{2})\right ) \end{aligned}$$

其中:

$$\mu_{1},\mu_{2} \in \mathbb{R^{n\times 1} }$$

$$\Sigma_{1},\Sigma_{2} \in \mathbb{R^{n\times n} }$$

[](#KL散度推导-1 "KL散度推导")KL 散度推导

与一元高斯分布类似,可将 $D_{KL}(p||q)$分为两部分:

第一部分:

$$\begin{aligned} & \int p(x)\log(p(x)) dx\\ = & \int p(x) \log \left[\frac{1}{ {(2\pi)^{n/2} } | \Sigma_{1} | ^{1/2} } exp\left(- {1 \over 2}{(x - \mu_{1})^T}{\Sigma_{1} ^{ - 1} }(x - \mu_{1})\right )\right ] dx \\ = & \int p(x) \left[ \log \frac{1}{ {(2\pi)^{n/2} } | \Sigma_{1} | ^{1/2} } + \log exp\left(- {1 \over 2}{(x - \mu_{1})^T}{\Sigma_{1} ^{ - 1} }(x - \mu_{1})\right ) \right] dx \\ = & \log \frac{1}{ {(2\pi)^{n/2} } | \Sigma_1 | ^{1/2} } + \int p(x) \left(- {1 \over 2}{(x - \mu_{1})^T}{\Sigma_{1} ^{ - 1} }(x - \mu_{1})\right ) dx \\ = & \log \frac{1}{ {(2\pi)^{n/2} } | \Sigma_1 | ^{1/2} } + E_{p(x)}\left[- {1 \over 2}{(x - \mu_{1})^T}{\Sigma_{1} ^{ - 1} }(x - \mu_{1})\right] \\ = & \log \frac{1}{ {(2\pi)^{n/2} } | \Sigma_1 | ^{1/2} } - {1 \over 2} E_{p(x)}\left[{(x - \mu_{1})^T}{\Sigma_{1} ^{ - 1} }(x - \mu_{1})\right] \end{aligned}$$

同理,第二部分可写为:

$$\begin{aligned} \\ & \int p(x)\log(q(x)) dx\\ = & \log \frac{1}{ {(2\pi)^{n/2} } | \Sigma_{2} | ^{1/2} } - {1 \over 2} E_{p(x)}\left[{(x - \mu_{2})^T}{\Sigma_{2} ^{ - 1} }(x - \mu_{2})\right] \end{aligned}$$

因此可将服从多元高斯分布随机变量的 KL 散度写为:

$$\begin{aligned} D_{KL}(p||q) & = \int p(x)\log(p(x)) dx-\int p(x)\log(q(x)) dx \\ & = \log \frac{ {(2\pi)^{n/2} } | \Sigma_{2} | ^{1/2} }{ {(2\pi)^{n/2} } | \Sigma_1 | ^{1/2} } - {1 \over 2} E_{p(x)}\left[{(x - \mu_{1})^T}{\Sigma_{1} ^{ - 1} }(x - \mu_{1})\right] +{1 \over 2} E_{p(x)}\left[{(x - \mu_{2})^T}{\Sigma_{2} ^{ - 1} }(x - \mu_{2})\right] \\ & = \frac{1}{2}\log \frac{ | \Sigma_{2} | }{ {} | \Sigma_1 | } + \frac{1}{2}E_{p(x)}\left[{(x - \mu_{2})^T}{\Sigma_{2} ^{ - 1} }(x - \mu_{2}) - {(x - \mu_{1})^T}{\Sigma_{1} ^{ - 1} }(x - \mu_{1})\right] \end{aligned}$$

其中 $E_{p}(\cdot)$代表$\cdot$在概率密度函数 $p(x)$的期望。此处需引入涉及多元变量的期望矩阵化求解方法。具体证明见后续附录,此处直接给出多元正态分布下期望矩阵化的表示结果:

$$E\left( { {x^T}Ax} \right) = tr(A\Sigma ) + {\mu^T}A\mu$$

因此:

$$\begin{aligned} D_{KL}(p||q) & = \frac{1}{2}\log \frac{ | \Sigma_{2} | }{ {} | \Sigma_1 | } + \frac{1}{2}E_{p(x)}\left[{(x - \mu_{2})^T}{\Sigma_{2} ^{ - 1} }(x - \mu_{2}) - {(x - \mu_{1})^T}{\Sigma_{1} ^{ - 1} }(x - \mu_{1})\right]\\ & = \frac{1}{2}\log \frac{ | \Sigma_{2} | }{ {} | \Sigma_1 | } + \frac{1}{2}tr(\Sigma_{2}^{-1}\Sigma_{1}) + (\mu_{1}-\mu_{2})^{T}\Sigma_{2}^{-1}(\mu_{1}-\mu_{2})^{T} \\ &\qquad \qquad \qquad - \frac{1}{2}tr(\Sigma_{1}^{-1}\Sigma_{1}) + (\mu_{1}-\mu_{1})^{T}\Sigma_{2}^{-1}(\mu_{1}-\mu_{1})^{T} \\ & = \frac{1}{2}\log \frac{ | \Sigma_{2} | }{ {} | \Sigma_1 | } + \frac{1}{2}tr(\Sigma_{2}^{-1}\Sigma_{1}) + (\mu_{1}-\mu_{2})^{T}\Sigma_{2}^{-1}(\mu_{1}-\mu_{2})^{T} - \frac{1}{2} n \end{aligned}$$

[](#附录 "附录")附录

[](#多元高斯分布下期望证明: "多元高斯分布下期望证明:")多元高斯分布下期望证明:

为证明多元高斯分布下,下式:

$$E\left( {x^T Ax} \right) = tr(A\Sigma ) + {\mu^T}A\mu$$

成立,需引入以下性质:

  • 矩阵的迹的性质:
 

$$\begin{aligned} tr(\alpha A + \beta B) &= \alpha tr(A) + \beta tr(B)\\ tr(A) &= tr({A^T})\\ tr(AB) &= tr(BA)\\ &\Rightarrow tr(ABC) = tr(CAB) = tr(BCA) \end{aligned}$$

若$\lambda \in \mathbb{R^{n\times 1} }$,即$\lambda$为列向量时,则${\lambda ^T}A\lambda$为标量,存在以下性质:

$${\lambda ^T}A\lambda = tr({\lambda ^T}A\lambda ) = tr(A\lambda {\lambda ^T})$$

  • 多元高斯分布中均值$\mu$和方差$\Sigma$的性质:

    • $E\left[ {x{x^T} } \right] = \Sigma + \mu{\mu^T}$:

      证明:


 

$$\begin{aligned} \Sigma &= E[(x-\mu)(x-\mu)^{T}] \\ \because(A-B)^{T} = A^{T}-B^{T } \quad \therefore \quad &=E[(x-\mu)(x^{T}-\mu^{T })]\\ & = E[xx^{T} - x \mu^{T}-\mu x^{T}- \mu \mu^{T }] \\ \because x:随机变量 \quad \mu:const \quad \therefore \quad & = E(xx^{T}) - E(x)\mu^{T} - \mu E(x^{T}) - \mu \mu^{T}\\ & = E(xx^{T}) - \mu \mu^{T} \end{aligned}$$

*   $E\left( {x^T Ax} \right) = tr(A\Sigma ) + {\mu^T}A\mu$:
    
    证明:  
    由于 $x^{T}Ax$最终结果为标量,利用前述矩阵的迹的性质可有:
    

 

$$\begin{aligned} E\left( { {x^T}Ax} \right) & = E\left[ {tr({x^T}Ax)} \right] \\ & = E\left[ {tr(Ax{x^T})} \right] \\ & = tr\left[ {E\left( {Ax{x^T} } \right)} \right] \\ & = tr\left[ {AE\left( {x{x^T} } \right)} \right] \\ \because A = const \quad \therefore \quad & = tr\left[ {A(\Sigma + u{u^T})} \right] \\ \because E\left[ {x{x^T} } \right] = \Sigma + \mu{\mu^T} \quad \therefore \quad & = tr(A\Sigma ) + tr(A\mu{\mu^T}) \\ & = tr(A\Sigma ) + tr({\mu^T}A\mu) \\ \because {\mu^T}A\mu \in \mathbb{R} \quad \therefore \quad & = tr(A\Sigma ) + {\mu^T}A\mu \\ \end{aligned}$$

[](#Gibbs不等式的证明 "Gibbs不等式的证明")Gibbs 不等式的证明

Gibbs 不等式的内容如下:

若$\sum_{i=1}^{n} p_i = \sum_{i=1}^{n} q_i = 1$, 且 $p_i,q_i \in(0,1]$, 则有:

$$-\sum_{i}^{n} p_i \log p_i \leq -\sum_{i}^{n} p_i \log q_i$$

当且仅当 $p_i=q_i \forall i$等号成立。

Gibbs 不等式等价于下式:

$$0 \geq \sum_{i=1}^{n} p_{i} \log q_{i}-\sum_{i=1}^{n} p_{i} \log p_{i} = \sum_{i=1}^{n} p_{i} \log \frac{q_{i} }{p_{i} } = - D_{KL}(P \| Q)$$

以下证明$\sum_{i=1}^{n} p_{i} \log \left(q_{i} / p_{i}\right) \leq 0$:

[](#法一: "法一:")法一:

已知 $ln(x) \leq x-1$, 如下图所示:

与 x-1 的数学图像-w50")

ln(x) 与 x-1 的数学图像 - w50 与 x-1 的数学图像-w50")

由上图或者严格数学证明可知,当且仅当 $x=1$时 $ln(x) = x-1$,即等号成立。

[](#法二: "法二:")法二:

根据 Jensen 不等式在凸积分中的命题:

若 $g$是任意实值可测函数,$\phi$在 $g$的值域中是凸函数,则:

$$\phi \left ( \int_{-\infty}^{+\infty} g(x) f(x) dx\right ) \leq \int_{-\infty}^{+\infty} \phi (g(x)) f(x) dx$$

若 $g(x)=x$, 则上式可简化为一常用特例:

$$\phi \left ( \int_{-\infty}^{+\infty} x f(x) dx\right ) \leq \int_{-\infty}^{+\infty} \phi (x) f(x) dx$$

因此:

$$D_{K L}(p \| q)=-\int p(x) \log \frac{q(x)}{p(x)} d x \geq-\log \int q(x) d x=0$$

其中 $D_{K L}(p | q)$与 Jensen 不等式有以下对应关系:

$$\begin{aligned} & \phi(x) = log(x)\\ & f(x) = p(x) \end{aligned}$$

由此得证。

[](#参考链接 "参考链接")参考链接

本文由mdnice多平台发布


Chris_Yang
1 声望0 粉丝