# 信息和信息熵

# 感受信息

有一个随机变量 XX , 它的每一个实现可以看做是一个消息 倘若XX的取值是连续的,那么这个XX就包含了无穷的信息。但是处理问题的时候往往利用 离散的值来方便处理,因此

X={xkk=0,±1,,±K}X=\left\{x_{k} | k=0,\pm 1, \ldots, \pm K\right\}

这样这里的采样值xkx_k就是离散的数,总共可以分成(2K+1)(2K+1)个等级,两个相邻等级有个距离δx\delta x

那么事件 X=xkX = x_k 发生的概率

pk=P(X=xk)p_k = P(X = x_k)

并且有

0pk1andk=KKpk=10 \leq p_{k} \leq 1 \quad \text { and } \quad \sum_{k=-K}^{K} p_{k}=1

如果说事件 X=xkX = x_k 发生的概率为 pk=1p_k = 1, 根据上面的求和为1可以推断出,当iki \neq kpi=0p_i = 0都是成立的。因为所有概率只和为0,而 pk=1p_k = 1 就已经占满了。

在这种情况下,事件 X=xkX = x_k 发生对我们毫无 “惊喜” 可言, 因为我们知道它肯定会发生。对比另外一种情况,如果说事件 X=xkX = x_k 发生的概率为 pkp_k 很小,例如接近于0。 那么事件 X=xkX = x_k 发生对我们来说就是一个很大的 “惊喜”。 说到这里就是想给大家 一种感觉: 越“不确定”,越“不可能”的事件发生越能够给我们带来更大的“惊喜”, “信息”。

举例

小学食堂吃饭的故事, 或者其他的故事。

接下来,我们尝试用一种更严谨的方式去描述刚刚的那种感觉, 我们是不是可以根据刚刚的描述,去想象一张图。就像下面这这样:

👆上面的这幅图,有下面👇这些性质:

  • 横坐标表示一个事件发生的概率,因为是概率所以取值的范围一定不会在[0,1][0,1]之外;
  • 纵坐标表示的是这个事件发生后得到的信息的大小, 因为是大小所以取值一定不会在[0,+][0,+\infty]之外;
  • 这是一个递减的函数,也就是说概率越低的事件发生了后我们会得到更多的信息

对信息有了感性的认识后,我们就可以很容易地理解信息的定义了。我们说, 当观察到概率为pkp_k的事件X=xkX = x_k发生后,我们获取到的信息定义成:

I(xk)=log(1pk)=logpkI\left(x_{k}\right)=\log \left(\frac{1}{p_{k}}\right)=-\log p_{k}

有一点需要提醒大家的是,这里对数log\log的底是可以随意取的,当底取ee时,信息的基本单位叫做 nats; 当底取2时,信息的基本单位叫做 bits; 没错,这个 bit 就是计算机内存中的那个存储单位--

把刚才我们已经知道的性质再用数学语言重新描述一下:

  1. I(xk)=0forpk=1I\left(x_{k}\right)=0 \quad \text { for } \quad p_{k}=1。 当一个事件发生的可能性是100%,那么这个事件发生,带给我们的信息为0, 因为我们早就知道这个事件会发生。
  2. I(xk)0for0pk1I\left(x_{k}\right) \geq 0 \quad \text {\ for \ } \quad 0 \leq p_{k} \leq 1。 简单来理解可以,信息的大小不能为负。但是嗨可以这样去理解这个不等式,即:一个事件的发生要没不提供信息,要么提供一些信息,而不会使得信息减少。
  3. I(xk)>I(xi)forpk<piI\left(x_{k}\right)>I\left(x_{i}\right) \quad \text { for } \quad p_{k} < p_{i}。 显然,这里描述的是,越不可能发生的事发生了,那么这个事件发生带来的信息量越大。

# 信息熵

信息量的大小I(xk)I(x_k)是一个随机变量,对应的概率是pkp_k. 我们可以计算出2K+12K + 1I(xk)I(x_k)的平均取值,记为:

H(X)=E[I(xk)]=k=KKpkI(xk)=k=KKpklogpk\begin{aligned} H(X) &=\mathbb{E}\left[I\left(x_{k}\right)\right] =\sum_{k=-K}^{K} p_{k} I\left(x_{k}\right) =-\sum_{k=-K}^{K} p_{k} \log p_{k} \end{aligned}

我们把这个值 H(X)H(X) 叫做随机变量XX熵(entropy)熵反映了每条消息包含的平均信息量。(?)

注意

H(X)H(X)里面的XX并不是函数的参数,而仅仅是一个随机变量的符号罢了。进一步来说,H(X)H(X)XX分布的泛函。H(X)H(X)的大小与随机变量的取值没有任何的关系,仅仅和随机变量取值对应的概率(Probabilities)有关系。

是时候来体会一下信息熵了。多年前,在四川的一个小乡村里面,住着三位小学生: 张小花, 田二狗 和 许小明。 小时候的他们, 一读书就想放假,一放假不到几天又想念起学校的美好 时光。 而那是一个漫长的寒假。 我们的小花同学,从来都是别人家的孩子,成绩优异,性格开朗,特别招喜欢。在家呆了快一个月了,她多么想回到学校去啊。 二狗同学,成绩一般, 寒假在家钓鱼,四处鬼混,觉得在哪里都是耍,对想不想回学校这件事完全不在乎。 小明同学比较特殊,成绩不拔尖,平时也不出来玩,听说有些特殊才能,大家对他不是很了解。

假设我们有一个随机变量X={10,5,0,5,10}X = \{-10, -5, 0, 5, 10\}表示小学生对提前返校这件事的 赞成程度。数值越大表示越赞成。根据我们的三位小学生的背景,我们假设下面三幅图A,B,C分别对应了小花,二狗和小明的分布:

从上面的图可以看出:

  1. 小花肯定会赞成提前开学,因为当P(X=10)=1P(X=10) = 1;
  2. 二狗对提前开学这件事多半是佛系的,在家耍高兴了可能就不想回学校,也有可能玩腻了想回学校。因此我们看到二狗的分布是关于X=0X=0对称的。
  3. 由于我们对小明这个人一无所知,因此我们也就不知道他想不想要提前开学。因此我们就只好认为每一种可能的取值的概率是一样的。

对于这三个不同的分布,我们分别计算出对应的熵。在这里你可以停下来利用计算器算一算。

看看你算对了吗?

在计算的过程中你是否体会到了熵的大小和随机变量的取值没有任何关系呢? 下面是计算的结果:

通过计算我们发现: 小花,二狗,小明对应随机变量XX的熵 分别为 0 bits, 2.19 bits, 2.32 bits。 我们不禁要问:这些值代表什么呢? 可以这样去解释:

对小花来说,她是100%赞成提前开校的。因此知道她的评分(即她随机变量XX的实现),我们得不到任何信息。因为我们早就知道她的选择了。

我们再来看小明,他对应的熵是最大的。为什么会是这样呢? 因为我们对小明一无所知,因此知道他的评分,仿佛揭开了一层神秘的面纱。会让我们更加了解小明。因此他的随机变量XX对应的熵是最大的。

最后再来说我们的张二狗同学,他的随机变量的熵是介于小花,小明之间的。这也可以解释了,我们对二狗本来有些了解,但是这么久不见,他的选择我们也不能够确定。因此是 介于两者之间。

于是我们可以看到 熵H(X)H(X)是被约束在下面这个区间的:

0H(X)log(2K+1)0 \leq H(X) \leq \log (2 K+1)

这里的2K+12K+1表示了随机变量XX可取值的总数,例如 上面的例子里面这个数是5。

注意

  1. H(X)=0H(X)=0 当且仅当XX的分布中只有一个概率值为1,其他概率值全部为0时成立。这个熵的下界对应 no uncertainty, 即毫无疑问。
  2. H(X)=log(2K+1)H(X)=\log (2 K+1) 当且仅当XX的分布中的每个概率都相等时成立。这个熵的上界对应 maximum uncertainty, 即一无所知。
  3. 随机变量XX可取值的个数2K+12K + 1决定了最大的熵是多大。个数越多,上限越大。

从熵的角度,或许我们可以解释为什么小孩的学习能力非常强。一方面,儿时的他们对于世界一无所知,因此得到任何一个消息, 都能够让他们获得信息。另一方面, 小孩每天都在体验各种各样的事,这相当于使得上面的2K+12K+1变得非常大,因此他们获得信息的上限变得很大。综合这两方面的原因,就可以解释为什么小孩子学习能力强。

反过来看成年人。一方面,成年人最引以为傲的是他们的经验,他们对世界有一定的认识。虽然他们也无时无刻不在接收消息, 例如从电视,微博,公众号等等平台。成年人往往会根据经验筛选出自己需要的部分, 因此获得的信息并不多。另一方面,多数人成年后往往有家庭和固定的工作,每天从事的活动都比较单调,往往就是上班,睡觉,运动等。因此获得信息的上限log(2K+1)\log (2 K+1)也被拉低了。 这样或许也就解释了,为什么周围老是听到很多90后在向我说“我觉得我已经快学不动了”。

突然发现,信息论能够一定程度上解释我们的生活。这点真是太神奇了。你觉得呢?