信息熵#
术语解释#
信息熵(Information Entropy) 是由信息论之父香农(Claude Shannon)于1948年提出的核心概念,用于定量地描述信息。它在机器学习中既是衡量系统不确定性的标尺,也是「构建决策树」、进行「模型蒸馏」和「评估模型性能」的关键工具。
信息熵用于度量一个概率分布所携带的信息量。香农指出,信息量的大小与事物的不确定性直接相关,信息量就等于不确定性的多少。 对于一个取值有限的离散型随机变量 $X$,其概率分布为 $P(X=x_i)=p_i$,则其熵 $H(X)$ 定义为:
$$ H(X)=-\sum_{i=1}^{n}{p_i \log p_i} $$当 $\log$ 以 2 为底时,单位为比特(Bit);以 $e$ 为底时,单位称为纳特(Nat)。它表示编码该信息所需的平均比特(或纳特)数的期望值。
出现动机#
关于如何定量地来描述信息,几千年来都没有人给出很好的解答。直到1948年,香农在他著名的论文《通信的数学原理》中提出了信息熵(Information Entropy)的概念,这才解决了信息的度量问题,并且还量化出信息的作用。
一条信息的信息量与其不确定性有着直接的关系。例如,要搞清楚一件非常不确定的事,就需要了解大量的信息。相反,如果已经对某件事了解较多,则不需要太多的信息就能把它搞清楚,所以从这个角度来看可以认为,信息量就等于不确定性的多少。
直观示例#
例如某次足球赛一共有16支球队参与,如果每支球队获胜的概率相等,即均为 $\frac{1}{16}$,那么“谁才是这场比赛最后获得的冠军?”这句话所包含的信息量就是
$$ H=-({{p}_{1}}\cdot \log {{p}_{1}}+{{p}_{2}}\cdot \log {{p}_{2}}+\cdots +{{p}_{16}}\cdot \log {{p}_{16}}) $$其中$\log$表示以2为底的对数,$p_1,p_2,...,p_{16}$分别是这16支球队夺冠的概率。由于此时假设的是16支球队夺冠概率相同,因此对应的信息熵就是4比特。 那此时的“4比特”又具有什么样的含义呢?相关内容可以参见文章「从信息熵到交叉熵再到 KL 散度:Cross Entropy 与 KL Divergence 的直观理解与机器学习应用」。
此时,假如每只球队获得的概率不等。为了方便计算,我们假设 ${p}_{1}={p}_{2}=\frac{9}{32}$, 余下14支球队获胜概率均相等为 $\frac{1}{32}$,那么“谁才是这场比赛最后获得的冠军?”这句话所包含的信息量就是 3.22。
更极端一点,假如 ${p}_{1}=\frac{17}{32}$,余下15支球队获胜概率均相等为 $\frac{1}{32}$,那么“谁才是这场比赛最后获得的冠军?”这句话所包含的信息量就是 2.83。
可以看出,越是确定性的事情,其对应的信息熵就偏小;越是不确定性的事情,其蕴含的信息量就大(信息熵就偏大),而且等概率时的信息熵最大。