KL散度(Kullback-Leibler Divergence)介绍及详细公式推导

KL散度简介

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


KL散度定义

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

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

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

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

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

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

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


KL散度的数学性质

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

正定性

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

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

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

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

不对称性

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

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

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


从不同角度解读KL散度

统计学意义上的KL散度:

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

信息论角度的KL散度:

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

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

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


连续随机变量的KL散度推导

服从一维高斯分布的随机变量KL散度

定义

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

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

KL散度推导

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

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

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

服从多元高斯分布的随机变量KL散度

定义

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

其中:

KL散度推导

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

第一部分:

同理,第二部分可写为:

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

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

因此:


附录

多元高斯分布下期望证明:

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

成立,需引入以下性质:

  • 矩阵的迹的性质:

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

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

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

      证明:

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

      证明:
      由于$x^{T}Ax$最终结果为标量,利用前述矩阵的迹的性质可有:

Gibbs不等式的证明

Gibbs不等式的内容如下:

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

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

Gibbs不等式等价于下式:

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

法一:

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

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

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

法二:

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

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

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

因此:

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

由此得证。


参考链接

--------- End. Thanks for Reading! ---------
坚持知识分享,多一份支持,多一份动力!