KL距离(Kullback-Leibler Divergence)

本文详细介绍了KL距离的概念,它是衡量两个概率分布差异的工具,也称为Kullback-Leibler差异或相对熵。文章通过实例计算展示了如何使用KL距离评估分布间的差异,并指出其非对称性和非满足三角不等式的特性。

KL距离,是Kullback-Leibler差异(Kullback-Leibler Divergence)的简称,也叫做相对熵(Relative Entropy)。它衡量的是相同事件空间里的两个概率分布的差异情况。并不是一种距离度量方式,其物理意义是:在相同事件空间里,概率分布P(x)对应的每个事件,若用概率分布 Q(x)编码时,平均每个基本事件(符号)编码长度增加了多少比特。我们用D(P||Q)表示KL距离,计算公式如下:
(1) D ( P ∣ ∣ Q ) = ∑ x ∈ X P ( x ) l o g P ( x ) Q ( x ) D(P||Q)=\sum_{x\in X} P(x)log\frac{P(x)}{Q(x)} \tag{1} D(PQ)=xXP(x)logQ(x)P(x)(1)
由公式(1)可以知道:

  1. 当P(x)=Q(x)时,D(P||Q)=0,即其相对熵为零。
  2. 当P(x)和Q(x)相似度越高时,KL距离越小
  3. D(P||Q)非负(非负性)
  4. 不满足对称性,即D(P||Q)≠D(Q||P)
  5. 不满足三角不等式

下面我们举例来解释一下:
以下列出了三个概率分布,已知真实事件的概率分布为f,如下表达式(2)它只有两种状态(0或1),剩下的两个分布是对f的拟合,如下表达式(3)和(4),求他们与真实分布f的差异。
(2) f ( 0 ) = 1 2 , f ( 1 ) = 1 2 f(0)=\frac{1}{2},f(1)=\frac{1}{2}\tag{2} f(0)=21,f(1)=21(2)
(3) f 1 ∗ ( 0 ) = 1 3 , f 1 ∗ ( 1 ) = 2 3 f^*_1(0)=\frac{1}{3},f^*_1(1)=\frac{2}{3} \tag{3} f1(0)=31,f1(1)=32(3)
(4) f 2 ∗ ( 0 ) = 1 4 , f 2 ∗ ( 1 ) = 3 4 f^*_2(0)=\frac{1}{4},f^*_2(1)=\frac{3}{4} \tag{4} f2(0)=41,f2(1)=43(4)
通过计算我们可以得到:
(5) D ( f ∣ ∣ f 1 ∗ ) = ∑ x ∈ X f ( x ) l o g f ( x ) f 1 ∗ ( x ) = f ( 0 ) l o g f ( 0 ) f 1 ∗ ( 0 ) + f ( 1 ) l o g f ( 1 ) f 1 ∗ ( 1 ) = 1 2 l o g 1 2 1 3 + 1 2 l o g 1 2 2 3 = 1 2 l o g 9 8 \tag{5} D(f||f^*_1) = \sum_{x\in X} f(x)log\frac{f(x)}{f^*_1(x)} = f(0)log\frac{f(0)}{f^*_1(0)}+ f(1)log\frac{f(1)}{f^*_1(1)}\\ = \frac{1}{2}log\frac{\frac{1}{2}}{\frac{1}{3}}+ \frac{1}{2}log\frac{\frac{1}{2}}{\frac{2}{3}} = \frac{1}{2}log\frac{9}{8} D(ff1)=xXf(x)logf1(x)f(x)=f(0)logf1(0)f(0)+f(1)logf1(1)f(1)=21log3121+21log3221=21log89(5)
(6) D ( f ∣ ∣ f 2 ∗ ) = ∑ x ∈ X f ( x ) l o g f ( x ) f 2 ∗ ( x ) = f ( 0 ) l o g f ( 0 ) f 2 ∗ ( 0 ) + f ( 1 ) l o g f ( 1 ) f 2 ∗ ( 1 ) = 1 2 l o g 1 2 1 4 + 1 2 l o g 1 2 3 4 = 1 2 l o g 4 3 \tag{6} D(f||f^*_2) = \sum_{x\in X} f(x)log\frac{f(x)}{f^*_2(x)} = f(0)log\frac{f(0)}{f^*_2(0)}+ f(1)log\frac{f(1)}{f^*_2(1)}\\ = \frac{1}{2}log\frac{\frac{1}{2}}{\frac{1}{4}}+ \frac{1}{2}log\frac{\frac{1}{2}}{\frac{3}{4}} = \frac{1}{2}log\frac{4}{3} D(ff2)=xXf(x)logf2(x)f(x)=f(0)logf2(0)f(0)+f(1)logf2(1)f(1)=21log4121+21log4321=21log34(6)
由(5)和(6)的计算我们可以知道,较真实数据分布相比,我们拟合的分布平均编码长度增加了,同时第(3)种分布较第(4)种分布的KL距离更小,说明第(3)种分布更接近真实分布。

为了证明其不满足对称性,我们做如下计算:
(7) D ( f 2 ∗ ∣ ∣ f ) = ∑ x ∈ X f 2 ∗ ( x ) l o g f 2 ∗ ( x ) f ( x ) = f 2 ∗ ( 0 ) l o g f 2 ∗ ( 0 ) f ( 0 ) + f 2 ∗ ( 1 ) l o g f 2 ∗ ( 1 ) f ( 1 ) = 1 4 l o g 1 4 1 2 + 3 4 l o g 3 4 1 2 = 1 4 l o g 1 2 + 3 4 l o g 3 2 = 1 4 l o g 27 16 ≠ 1 2 l o g 4 3 \tag{7} D(f^*_2||f) = \sum_{x\in X} f^*_2(x)log\frac{f^*_2(x)}{f(x)} = f^*_2(0)log\frac{f^*_2(0)}{f(0)}+ f^*_2(1)log\frac{f^*_2(1)}{f(1)}\\ = \frac{1}{4}log\frac{\frac{1}{4}}{\frac{1}{2}}+ \frac{3}{4}log\frac{\frac{3}{4}}{\frac{1}{2}} = \frac{1}{4}log\frac{1}{2}+ \frac{3}{4}log\frac{3}{2} = \frac{1}{4}log\frac{27}{16}≠\frac{1}{2}log\frac{4}{3} D(f2f)=xXf2(x)logf(x)f2(x)=f2(0)logf(0)f2(0)+f2(1)logf(1)f2(1)=41log2141+43log2143=41log21+43log23=41log1627̸=21log34(7)

由计算(7)可以知道,KL距离不满足对称性。

KL距离的几个用途:

  1. 衡量两个概率分布的差异。

  2. 衡量利用概率分布Q 拟合概率分布P 时的能量损耗,也就是说拟合以后丢失了多少的信息。

  3. 衡量两个概率分布的相似度,在运动捕捉里面可以衡量未添加标签的运动与已添加标签的运动,进而进行运动的分类。

参考博客:
https://blog.csdn.net/scw1023/article/details/59109922

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值