信息熵(香农熵),相对熵(KL散度), 交叉熵 三者的对比以及 吉布斯不等式
各种各样信息科学中,无论是通信还是大数据处理,各种“熵”是非常重要的,因为它可以度量随机变量不确定度,量化信息量的大小。
- 信息熵(香农熵)
首先复习一下信息熵(香农熵),辅助我们对相对熵和交叉熵的理解。
对于一个随机变量,其可能的取值分别为,对应概率为,于是的信息熵为:
- 相对熵(KL散度)
如果我们对于同一个随机变量有两个单独的概率分布 和 ,我们可以使用KL散度(Kullback-Leibler(KL)divergence)来衡量这两个分布的差异:
在离散型变量的情况下,KL散度衡量的是,当我们使用一种被设计成能够使得概率分布产生的消息的长度最小的编码,发送包含由概率分布产生的符号的消息时,所需要的额外信息量
说实话这很难让人真正理解,甚至因为相对熵的不对称性,很容易让人把和搞混。所以对上面公式变形得到我们熟悉的形式:
当且仅当码元序列的概率分布和信源分布相同时,平均码元长度等于信源信息量。再回头看信息熵的定义:,它也代表了最理想状态下的编码方法,即对于概率发生的事件,使用码元长度为的码元序列去代替它。
但是大多数情况下没法找到那么理想的编码方式,我们只能用接近分布的分布来对信源进行编码,所以对于概率发生的事件,近似使用码元长度为的码元序列去代替它。这时可能会发生在随机变量取较小概率的值时,我们使用较短的码元序列去表示,或是随机变量取较大概率的值时,我们使用较长的码元序列去表示,这就违背了让码元期望尽可能小的初衷,造成了码元的浪费。
具体到公式中,当信源取时概率为,此时使用分布Q来对信源进行编码的码长为,而使用分布的理想编码的码长为,对两者之差求期望既得相对熵。
然后附上吉布斯不等式:
KL散度有很多有用的性质,最重要的是它是非负的。KL散度为0当且仅当和
在离散型变量的情况下是相同的分布,或者在连续型变量的情况下是‘‘几乎处处’’相同的。因为 KL
散度是非负的并且衡量的是两个分布之间的差异,它经常被用作分布之间的某种距离。然而,它并不是真的距离因为它不是对称的:对于某些和,。这种非对称性意味着选择
还是影响很大。更多细节可以看图。
KL散度是不对称的。假设我们有一个分布,并且希望用另一个分布来近似它。
我们可以选择最小化或最小化。为了说明每种选择的效果,我们令是两个高斯分布的混合,令为单个高斯分布。选择使用KL散度的哪个方向是取决于问题的。一些应用需要这个近似分布在真实分布放置高概率的所有地方都放置高概率,而其他应用需要这个近似分布在真实分布放置低概率的所有地方都很少放置高概率。KL散度方向的选择反映了对于每种应用,优先考虑哪一种选择。(左)最小化的效果。在这种情况下,我们选择一个使得它在具有高概率的地方具有高概率。当具有多个峰时,选择将这些峰模糊到一起,以便将高概率质量放到所有峰上。(右)最小化的效果。在这种情况下,我们选择一个使得它在具有低概率的地方具有低概率。当具有多个峰并且这些峰间隔很宽时,如该图所示,最小化KL散度会选择单个峰,以避免将概率质量放置在的多个峰之间的低概率区域中。这里,我们说明当被选择成强调左边峰时的结果。我们也可以通过选择右边峰来得到 KL
散度相同的值。如果这些峰没有被足够强的低概率区域分离,那么 KL 散度的这个方向仍然可能选择模糊这些峰。
上面的例子如果去用编码的角度来想,会更容易理解。
- 交叉熵
一个和KL散度密切联系的量是交叉熵(cross-entropy):,它和 KL 散度很像但是缺少左边一项:
仍然结合相对熵的例子,如果说相对熵是“编码后多余出来的码元长度(信息量)”,那么交叉熵就是“编码之后的平均码长”。对于一般通信中信源编码,我们的目的是让交叉熵(平均码长)尽量低,于是让编码后的分布与信号原本分布尽可能接近;而在机器学习或神经网络中交叉熵作为损失函数,我们的目的是则让输出和标注值分布尽可能相同,所以让交叉熵尽量低。这么想起来可以说非常有意思了。