如果度量信息量的多少?漫谈“熵”

信息量与熵

从概率论上看,熵为随机变量不确定性的度量。从信息论上看,熵为信息的度量。实质上,两者是等价的。数学上可以看作是随机变量分布函数的泛函,具体为随机变量的分布函数的倒数的对数的均值。一致概率密度函数$p(x)$,其熵为,

这是连续形式,离散形式如下,

就这么简单的公式,可以做到:

  • 不确定性的度量(对事情的无知程度)

  • 信息量的度量(从无知到完全认知的量)

分析一下,两者是等价的。因此有,

也就是说,我们可以使用不确定性的度量来计算信息量的大小。

假设有序列$1,\dots,n$,其排序一共有$n!$种,每一种排列$x$的概率为$p(x) = \frac{1}{n!}$,因此该序列的不确定性的度量可以用熵求得,

根据Stirling’s approximation),有,

于是有,

把乱序的序列排序成有序,即把信息量从$O(n \log n)$变为0。反过来,把有序变为无序,需要$O(n \log n)$次操作(每次操作一个元素)。如果每次操作都改变所有元素的位置,那么需要$\log n$次操作。

这里称$\log \frac{1}{p(x)}$为pointwise熵,用来度量点信息量。例如词袋模型中,字$c \in V$的概率为$p_{c}$(当然也可以是更高粒度的原始,如词、句子),那么可以认为c所包含的信息量为,

因此可以知道,词袋中词频越大的词,其包含的信息量越小。根据熵的定义,整个词表的平均信息量为,

熵的计算还可以推广到多元概率分布,推广到多个变量,联合熵,以两个随机变量为例,

类似地,可以推广到n元情况。

那么熵的计算公式如何导出?一般来说,数学中的公理都是非常简洁,如果直接把熵作为公理那就勉强了,它一定能从其他基本原则中推导出来。就像欧几里得几何,从基本公理出发导出整个几何大夏。这里可以参考维基百科或者《信息论基础》这本书。

条件熵

机器学习中,最大熵原理会涉及到熵的概念。在深度学习中也会出现该概念。基于熵建立起来的概念还有相对熵、互信息。有趣的是,热力学上的熵和信息论中的熵极为相似。熵的现实意义是,不太可能发生的事情发生了,要比一件非常可能发生的事情提供更多的信息。类似地,条件熵则为条件概率分布的熵的数学期望。
熵具有凹性,这个数学性质可用运用于优化。根据这个性质,可以做很多推论,如两个等熵的系统,混合后熵变大。

$p(x,y)$在引入(或者说知道)$p(x)$后,分布变为$p(y|x)$,不确定性减少了$H[p(x)]$,因此不确定性变为,

因此,条件熵容易导出,

如果有观察数据$\tilde{p}(x)$,容易计算条件熵

如果有经验分布$\tilde{p}(x,y)$​,容易计算经验条件熵

互信息

在知道知识Y(事件Y)的情况下,随机变量X的不确定度的减少量,又称为信息增益。通常用来度量一个随机变量包含其他随机变量的信息量。互信息具有对称,因此有,

类似地还有信息增益比的概念,和信息增益的差别是前者使用比值而不是差值。在决策树中,C4.5算法就是采用信息增益比来划分特征空间。

交叉熵

交叉熵,

容易计算,

相对熵

KL散度(相对熵),

度量两个概率分布之间距离的一种方法,是互信息的推广。在统计学中,相对熵是似然比的对数的期望。在机器学习中,相对熵也称为KL散度。在Minkowski距离、Mahalanobis距离、Wasserstein距离中我们谈到,KL散度不满足距离度量的第二点,即对称性$D_{\text{KL}}(P\parallel Q) \ne D_{\text{KL}}(Q\parallel P)$。

事实上,根据相对熵的定义,并不具有对称性,不满足距离的三角不等式,因此它不是严格的空间距离度量(参考范数的性质)。具体的数学表达及其数学性质参考《信息论基础》或维基百科。

在概率模型中,衡量真实条件分布和模型预测条件分布的差异会用到相对熵。相对熵具有凸性,这个数学性质可用运用于优化。

总结

本文介绍熵、条件熵、互信息、相对熵等基本概念。

转载请包括本文地址:https://allenwind.github.io/blog/6699
更多文章请参考:https://allenwind.github.io/blog/archives/