相对熵(relative entropy),又被称为Kullback-Leibler散度(Kullback-Leibler divergence)或信息散度(information divergence),是两个概率分布(probability distribution)间差异的非对称性度量 。在在信息理论中,相对熵等价于两个概率分布的信息熵(Shannon entropy)的差值。
定义
设 是随机变量 上的两个概率分布,则在离散和连续随机变量的情形下,相对熵的定义分别为 :
推导
在信息理论中,相对熵是用来度量使用基于 的编码来编码来自 的样本平均所需的额外的比特个数。典型情况下, 表示数据的真实分布, 表示数据的理论分布,模型分布,或 的近似分布。给定一个字符集的概率分布,我们可以设计一种编码,使得表示该字符集组成的字符串平均需要的比特数最少。假设这个字符集是 ,对 ,其出现概率为 ,那么其最优编码平均需要的比特数等于这个字符集的熵:
在同样的字符集上,假设存在另一个概率分布 ,如果用概率分布 的最优编码(即字符 的编码长度等于 ),来为符合分布 的字符编码,那么表示这些字符就会比理想情况多用一些比特数。相对熵就是用来衡量这种情况下平均每个字符多用的比特数,因此可以用来衡量两个分布的距离,即:
注意:
KL距离并不是严格的距离测量,因为不满足距离的三要素。
虽然KL被称为距离,但是其不满足距离定义的三个条件:1)非负性(满足)利用吉布斯不等式可以证明;
由于对数函数是凸函数(convex function),所以根据相对熵的定义有:
当P(x)=Q(x)时候,值为0
2)对称性(不满足);KL(P||Q)!=KL(Q||P) 计算实验可得
3)三角不等式(不满足)三角不等式指的是任意两边之和大于第三边,任意两边之差小于第三边,如下实例:
假如一个字符发射器,随机发出0和1两种字符,真实发出概率分布为A,但实际不知道A的具体分布。现在通过观察,得到概率分布B与C。各个分布的具体情况如下:
A(0)=1/2,A(1)=1/2
B(0)=1/4,B(1)=3/4
C(0)=1/8,C(1)=7/8
上面的三个概率分布,D(B||C)=1/4log2+3/4log(6/7)。可以得到:D(A||C) - (D(A||B)+ D(B||C)) >0(计算省略),这里验证了KL距离不满足三角不等式条件。
应用
相对熵可以衡量两个随机分布之间的距离,当两个随机分布相同时,它们的相对熵为零,当两个随机分布的差别增大时,它们的相对熵也会增大。所以相对熵可以用于比较文本的相似度,先统计出词的频率,然后计算相对熵。另外,在多指标系统评估中,指标权重分配是一个重点和难点,也通过相对熵可以处理
后续:JS散度(Jensen-Shannon),Wasserstein距离
JS散度度量了两个概率分布的相似度,基于KL散度的变体,解决了KL散度非对称的问题。一般地,JS散度是对称的,其取值是0到1之间。定义如下:
KL散度和JS散度度量的时候有一个问题:
如果两个分配P,Q离得很远,完全没有重叠的时候,那么KL散度值是没有意义的,而JS散度值是一个常数。这在学习算法中是比较致命的,这就意味这这一点的梯度为0。梯度消失了。
Wasserstein距离度量两个概率分布之间的距离,定义如下:
Wessertein距离相比KL散度和JS散度的优势在于:即使两个分布的支撑集没有重叠或者重叠非常少,仍然能反映两个分布的远近。而JS散度在此情况下是常量,KL散度可能无意义。