如何实现可靠的通信?怎样做出更好的决策?浅谈信息论之美


【如何实现可靠的通信?怎样做出更好的决策?浅谈信息论之美】

如何实现可靠的通信?怎样做出更好的决策?浅谈信息论之美

文章插图

想象一下你的任务是去设计一个帮助联络太空站和地面指挥总部的通信系统 。该系统将发送和接收二进制编码的信息,也就是说 1 和 0 的序列 。在信息传播的过程中,有可能会受到其他无线电信号的干扰,以至于地面指挥部所收到的信息与原始信息并不完全相同 。在这种情况下,有没有可能设计出一种方案来实现可靠的通信呢?
一个简单的解决方案是增加冗余:每个比特发送若干次,比如说 5 次:

如何实现可靠的通信?怎样做出更好的决策?浅谈信息论之美

文章插图

如果地面控制中心收到 11101 的信息,他们就可以相当确定发出的是 11111 。虽然这个简单的系统可以起作用(在一定程度上),但我们可以看到它是非常浪费的:我们必须对原始信息中的每一个比特发送 4 个额外的比特 。因此,实际传播率只有 20% 。我们还能做得更好吗?
「这里似乎有一个困境:如果我们想要精确,我们必须降低传输速率 。」
这就是克劳德·香农在他 1948 年的论文《通信的数学理论》中解决的问题 。在书中,他证明了在噪声信道上进行可靠传输的信息速率是存在有一个极限的(香农极限) 。然而,在这个限度之下,我是用越来越小的误差来传输信息 。这个重要的结果告诉我们存在一种编码,它允许在给定的信道上实现任意精度,但它没有告诉我们如何构建它 。
更准确地说,假设信道正确发送一个比特的概率为 p,相应错误发送一个比特的概率为 1 - p,Shannon 证明了最优传输速率为:

如何实现可靠的通信?怎样做出更好的决策?浅谈信息论之美

文章插图

该图形围绕 p = 0.5 对称,最大值在 p = 0 和 p = 1 处 。p = 0 的情况很有趣,这时候信道有完美的噪声:它刚好将原始信息中的所有比特取反 。但如果我们知道了这一点,那么信息就很容易被破译了,我们只要把它们再取反回来就行了 。
这个公式通常用「信息熵(information entropy)」 来表述,这是香农设计的一种度量,可以被解释为与信道的“不确定性”或“惊奇”的水平 。

如何实现可靠的通信?怎样做出更好的决策?浅谈信息论之美

文章插图

我们可以看到,当 p = 1/2 时,信息熵的值最大,H(p)=1 。而当 p = 0 和 p = 1 时,熵最小 。
更普遍的是,给定一个随机信息 M,这个信息 M 可以采取 n 种不同的值,对应概率 p? ,i = 1,…,n,我们消息的熵定义为:

如何实现可靠的通信?怎样做出更好的决策?浅谈信息论之美

文章插图

关于“猜猜我是谁”游戏的例子让我们采取不同的方法 。假设你正在玩“猜猜我是谁?”(Guess Who?)

如何实现可靠的通信?怎样做出更好的决策?浅谈信息论之美

文章插图

游戏的规则很简单,具体玩法:
  1. 玩家各將一组24人物卡裝在游戏底板上,并让人物卡都站立 。
  2. 从自己的人物卡中各抽一名神秘人物(不要对方看到〕,此人物为自己的答案谜底 。
  3. 由年龄较小的人开始问对方问题,或来猜测对方到底所选取的哪个人物 。
  4. 问题的回答必须是"是"或"不是"、"有"或"没有" 。例如,"你选的人物是男的吗?"或者"这个人有戴帽子吗?" 。而回复必须诚实的 。
  5. 一旦猜错答案,就换对方来问问题或是猜答案 。
  6. 提问者通过一系列问题,逐步缩小猜测的角色范围,先猜对者胜出 。
如果想要玩转这个小游戏,就应该问自己:我应该按什么顺序提问才能最大限度地提高获胜几率?直觉而言,似乎首先要问的是大多数角色所拥有的特征,是这样吗?
《猜猜谁》的硬核玩家实际上是要用信息论的方法才能获得更佳成绩 。如果作为猜测者一方,所要提出好问题最好是能将余下角色一分为二的问题,也就是说,不管答案是“是”还是“否”,都要能将一半的角色丢弃 。这样也就能通过该问题获得最佳的信息量 。
但如果你不能将角色按他们的特征进行平均分为 2 组呢?为了回答这个问题,我们首先回顾一下熵的概念 。我们可以把一个问题作为一个变量 X 。这个变量有 p? 的概率可以将人群分为团体 x? 。例如,考虑一个关于角色眼睛颜色的问题:选择人物的眼睛是否是蓝色?考虑到这一点,问题的熵就变成: