KL divergence

KL 散度简介,未完待续。。。

KL散度全称是Kullback-Leibler divergence,在信息学中也被称为相对熵(Relative

Entropy)。在信息学的角度KL散度通常被用来度量两个随机变量的距离,从概率论角度,KL散度通常被用来描述两个概率分布(概率密度函数)的差异性。在机器学习中,KL散度也很常见,尤其在VAE和GAN中,KL散度是非常常见的中间角色。

  1. KL散度的定义

    KL散度既然定义为相对熵,那就自然有个顺序,也就是谁相对于谁,这个顺序是不能颠倒的(KL散度不满足交换性,不对称),所以概率分布Q相对于概率分布P的KL散度定义为:
    离散形式:

    • $D_{KL}(Q||P) = \sum_xQ(x)log(\frac{Q(x)}{P(x)})$

    连续形式:

    • $D{KL}(Q||P)=\int {-\infty}^{\infty}p(x)ln\frac{p(x)}{q(x)}dx$

热力学熵和信息学熵的比较

  • 形式完全一样($S=-\sum_ip_ilnp_i)$),都是描述一个系统所需的信息量

  1. KL散度性质

    • KL散度不满足交换性: $KL(P|Q)\ne KL(Q|P)$
    • KL不满足三角不等式(KL看做P分布和Q分布的距离,和传统的欧式距离不一样)
    • KL散度非负性: $KL(Q|P)\gt0$, 当且仅当$Q=P, KL(Q|P)=0$
  2. KL散度的常见用法

    KL散度的定义是两个概率分布的差异性,所以在概率模型的推断中经常用到: 假设某个变量z的后验概率分布是P(z|D), D是观测样本,我们的目标是要对后验概率进行推断。因为这个后验概率实际是不知道的,所以假设知道他的概率是Q(z),我们的目标转化为我们假设的Q(z)和真是的P(z|D)尽量相近,这个相近的程度,我们就可以用KL散度来描述。

    下面根据KL散度公式将其展开:

    $KL(Q|P) = \sum_z Q(z)log\frac{Q(z)}{P(z|D)}$

    $=\sum_z Q(z)log\frac{Q(z)}{\frac{P(z,D)}{P(D)}}$

    $=\sum_z Q(z)log\frac{Q(z)}{P(z,D)}{P(D)}$

    $KL(Q|P) = \sum_z Q(z)log\frac{Q(z)}{P(z,D)} + log{P(D)} logP(D)$

    $= KL(Q|P) - \sum_zQ(z)log\frac{Q(z)}{P(z,D)}$

    $= KL(Q|P) + L(Q)$

    $L(Q)= -\sum_zQ(z)log\frac{Q(z)}{P(z,D)} =\sum_zQ(z)logP(z,D) - \sum_zQ(z)logQ(z)$

    其中L(Q)常被称为变分自由能,因为$KL(Q|P)\gt0$, L(Q)称为P(D)的下界。

  3. KL散度的非对称性研究

    前面我们知道,KL散度不满足对称性。

    在实际中,有一个总结性的规律: 用KL(Q|P)做优化,是希望P(x)为0的地方,Q(x)也要为0,其实就是log想避免出现无穷大。反之,用KL(P|Q)做优化,要避免P(x)不为0,而Q(x)用0区你和的情况。

  4. 证明$D_{KL}(P||Q)\geq 0$.

    首先考虑Jensen不等式,对于凸函数f,如果在其定义域C上任意取两点$x_1, x_2, 0\leq t \leq 1$, 则$tf(x_1) + (1-t)f(x_2) \ge f(tx_1 + (1-t)x_2)$

    推广到一般形式 泛化形式:

    • $f (\sum_{i=1}^M\lambda_i xi) \le \sum{i=1}^M\lambda_i f(x_i)$

    $KL(p||q) =\int p(x){-ln[\frac{q(x)}{p(x)}]}dx \ge -ln[\int p(x)\frac{q(x)}{p(x)}dx] = -ln[\int q(x)dx] = 0$

    这里,当且仅当q(x) = p(x),等号才成立。

  5. 最小化KL散度等于最大化似然函数。

    假设我们要对位置分布 p(x) 建模,可以试着使用一些参数分布$q(x|\theta)$来近似p(x)。$q(x|\theta)$可由参数$\theta$控制(比如用多元高斯分布来近似,于是可以通过最小化p(x)和$q(x|\theta)$之间关于$\theta$的KL散度来确定$\theta$。

    如果已经观察到了服从p(x)分布的有限数量的训练集${xn}, n=1,2,3…N$,那么关于p(x)的期望就可以通过这些点的有限加和求出期望$E(f) \approx \frac{1}{N} \sum{n=1}^Nf(x_n)$。

    $KL(p||q)\approx\frac{1}{N}\sum_{n=1}^N [-lnq(x_n | \theta) + lnp(x_n)]$

    上面公式仅第一项与$\theta$有关,第一项是使用训练集数据估计的分布$q(x|\theta)$下的$\theta$的负对数似然函数,因此最小化KL散度等价于最大化似然函数。

  6. KL散度和其他量关系

    • 自信息与KL散度
      • $I{m}=D{KL}(\delta{im}||{p_i})$
    • 互信息与KL散度

      • $I(X;Y)=D_{KL}(P(X,Y)||P(X)P(Y))$

        ​ =$EX{D{KL}(P(Y|X)||P(Y))}$

        ​ =$EY{D{KL}(P(X|Y)||P(Y))}$

    • 条件熵与KL散度
    • 交叉熵与KL散度
      • $H(p,q)=Ep[-logq]=H(p)+D{KL}(p||q)$
  7. KL散度,JS散度,Wasserstein距离

    • KL散度
    • JS散度: 对称,取值介于0~1之间,如果完全没有重叠的时候,KL没有意义,而JS是一个常数
      • $JS(P1||P2) =\frac 1 2 KL(P_1||\frac {P_1+P_2} {2}) + \frac 1 2 KL(P_2||\frac {P_1+P_2} {2})$
    • Wasserstein距离(Earth Mover Distance, 地动距离, 推土机距离)
      • $W(P_1, P2) = inf{\gamma \sim \Pi(P_1,P2)} E{(x,y)\sim \gamma}[||x - y||]$
      • $\Pi(P_1,P_2)$是$P_1$和$P2$分布组合起来的所有可能的联合分布的几核,对于每一个可能的联合分布$\gamma$,可以从中采样 $(x,y) \sim \gamma$得到一个样本x和y,并计算出这对样本的距离||x-y||,所以可以计算该联合分布$\gamma$ 下,样本对距离的期望值$E{(x,y) \sim \gamma} [||x-y||]$. 在所有可能的联合分布中能够对这个期望值取到的下界就是Wasserstein距离。
      • 直观上可以吧$E_{(x,y) \sim \gamma} [||x-y||]$看做是$\gamma$在这个路径规划下吧土堆P1挪到P2所需要的消耗。而Wasserstein距离就是最有路径规划下的最小消耗。所以Wesserstein距离又叫做 Earth-Mover距离.
      • W距离相比KL散度和JS散度的优势在于: 及时两个分布的支撑集没有重叠或者重叠非常少,其仍能反应两个分布的远近,而JS散度可能是个常数值,而KL散度可能没有意义。

未完待续。。。

人艰不拆,生活不易