信息熵 - 条件熵 - 交叉熵
信息社会, 我们在日常生活中一直谈论信息, 但是信息这个概念有些抽象. 有时候说信息多, 或者信息少, 但是很难说清楚到底是多少. 比如一本50多万字的中文书<史记>到底有多少信息量, 很难进行定量的表示. 直到1948年, 香农(Claude Shannon)提出了信息熵的概念, 才解决了信息度量问题.
信息熵
一条信息的信息量和它的不确定性有着直接关系. 举个例子, 一个有5个字的句子(你吃饭了吗?)和有17个字的句子(我刚在市中心的CBD内吃完, 吃的牛排.)包含的信息量正常情况下是不一样的, 包括17个字的句子所包含的信息量应该大于5个字的.
如何对信息进行量化呢? 再来举个例子, 2018年的世界杯, 大家都很关心谁是冠军. 假如我错过了看世界杯, 赛后问一个知道比赛结果的观众”哪只球队是冠军”? 他不愿意直接告诉我, 而是让我去猜, 并且猜一次收费1元. 那么我需要猜测多少次才能知道谁是冠军呢? 我可以把球队编为1-32号, 然后采用二分法进行猜测, 直至猜到结果. 这样我只需要五次就可以知道谁是冠军. 所以, 谁是世界杯冠军这条消息的信息量只值5元钱.
香农采用”比特(Bit)”来度量信息量. 上面的例子中, 这条消息的信息量是5比特. ($log_2^32 =5$) 世界杯每只球队的夺冠概率是不一致的, 我们在进行猜测时需要有侧重点的进行猜测, 因此”谁是世界杯冠军”的信息量比5比特少. 香农指出, 它的准确信息量应该是
$H=-(p_1 \cdot log p_1 + p_2 \cdot log p_2 + \cdots + p_{32} \cdot log p_{32} )$ 其中, $p_1, p_2, \cdots , p_{32}$分别是这32支球队夺冠的概率. 香农把$H$称之为信息熵(Entropy), 单位比特. 对于任意一个随机变量X(比如得冠军的球队), 它的熵为
$H(X) = - \sum _{x \in X} P(x) logP(x)$
变量的不确定性越大, 熵也就越大.
条件熵
假定X和Y是两个随机变量, X是我们需要了解的. 假定我们知道X的随机分布P(X), 那么也就知道了X的熵
$H(X) = -\sum _{x \in X} P(x) \cdot log P(x)$
现在假定我们还知道Y的一些情况, 包括它和X一起出现的概率(在数学上称之为联合概率分布), 以及在Y取不同值的前提下X的概率分布(在数学上称之为条件概率分布). 那么定义在Y条件下X的条件熵为
$H(X|Y) = - \sum _{x \in X, y\in Y} P(x,y) log P(x|y)$
交叉熵(相对熵) (Kullback-Leibler Divergence)
交叉熵可以用来衡量相关性, 它用来衡量两个取值为正数的函数的相似性, 定义如下
$KL(f(x) || g(x)) = \sum _{x\in X} f(x) \cdot log \frac{f(x)}{g(x)}$
我们不需要关注公式本身, 只需要记住下面三条结论就可以:
- 对于两个完全相同的函数, 它们的交叉熵为0.
- 交叉熵越大, 两个函数差异越大; 反之, 交叉熵越小, 两个函数差异越小.
- 对于概率分布或者概率密度函数, 如果取值均大于0, 交叉熵可以度量两个随机分布的差异性.