从本质上来说,香农所定义的熵,是以一种倒排序的方式建立在数据流中每个符号出现概率的估算之上的。

总的来说,一个符号出现得越频繁,它对整个数据集包含的信息内容的贡献就会越少,这看起来似乎完全违背直觉。

钓鱼就是这样一个真实的例子。设想你坐在岸边草坪中的躺椅上,戴着漂亮的帽子,手拿卷筒和连杆,望着河面和鱼浮。每隔几分钟,你就会看一眼鱼浮,发现它并没有变化,但每隔一小时左右,就会有鱼咬钩,这才是你真正感兴趣的事情。也就是说,很长的时间里没有什么有用的信息,真正有用的信息偶尔才会出现。如果用0表示没有鱼,用1表示鱼上钩,那么你记录的信息里很容易出现这样的片段:0000000010000000001000000000001。

从统计上来说(从运动角度来说同样如此),我们感兴趣的是鱼在咬钩这样的事件,其他的都是冗余信息。

比喻就说到这里,下面来看一些数值的例子。下表展示了一些概率的集合(这里我们不关心实际的符号)以及这些集合相应的熵。

那么,应该如何理解这张表呢?

第一行中,第四个符号出现的概率最大,可以说占据了绝大多数的出现机会。换句话说,这个数据集主要是由其中的一个符号组成的,偶尔会有其他符号随机出现。由于这个数据流中的绝大多数内容是其中一个符号,这就意味着这个数据集中包含的总体信息很少,因此对应的熵值也很小。

再来看表中的最后一行,可以看到4个符号等可能地出现,因此它们对整个数据流内容的贡献相同。结果是这个数据集包含了更多的信息,因此需要用更多的二进制位来表示它。

举个类似的例子,打地鼠游戏之所以很有趣,是因为地鼠出现在每个洞的可能性相同,所以事先永远不会知道地鼠会从哪个洞里钻出来,这就使它比钓鱼有趣得多。