1. 信息熵
KL 散度,这是一个用来衡量两个概率分布的相似性的一个度量指标。
KL 散度,最早是从信息论里演化而来的,所以在介绍 KL 散度之前,我们要先介绍一下信息熵。信息熵的定义如下:
信息熵常被用来作为一个系统的信息含量的量化指标。p表示事件x发生的概率,信息熵其实反映的就是要表示一个概率分布,需要的平均信息量。
信息论之父克劳德·香农给出的信息熵的三个性质:
- 单调性,发生概率越高的事件,其携带的信息量越低;
- 非负性,信息熵可以看作为一种广度量,非负性是一种合理的必然;
- 累加性,即多随机事件同时发生存在的总不确定性的量度是可以表示为各事件不确定性的量度的和,这也是广度量的一种体现。
而上式(乘上一个常数C)是严格证明了满足上述三个条件的唯一表示。
理解
- 单调性,事件发生的概率越低,其发生时所能给出的信息量越大。举一个极端的例子,“太阳从西边升起”所携带的信息量就远大于“太阳从东边升起”,因为后者是一个万年不变的事实,不用特意述说大家都知道;而前者是一个相当不可能发生的事情,如果发生了,那代表了太多的可能性,可能太阳系有重大变故,可能物理法则发生了变化,等等。
- 累加性,对于两个相互独立的事件来说,其同时发生的概率,应该是两个变量做乘积,要等于两个变量函数值的和,那么这种函数形式应该是对数函数。
- 非负性,再考虑到概率都是小于等于1的,取对数之后小于0,考虑到信息熵的第二条性质非负性,所以需要在前边加上负号。
2. KL散度
在信息熵的基础上,我们定义 KL 散度为:
或者表示为:
D(p∣∣q) 表示的就是概率 q 与概率 p 之间的差异,散度越小,说明概率 q 与概率 p 之间越接近。