在香农100周岁诞辰,我们聊聊信息论

 

有趣的是,香农的父亲克劳德与他的姓名完全相同,但是我们都称呼他为克劳德(雾...



(图片来自网络)

如果问历史上的4月30日有什么重大的事情发生的话,克劳德·艾尔伍德·香农的出生毫无疑问是答案之一。

克劳德·艾尔伍德·香农(Claude Elwood Shannon,1916年4月30日-2001年2月26日),密歇根大学学士,麻省理工学院博士,美国数学家、电子工程师和密码学家,被誉为信息论的创始人。(你就这样从维基百科上抄?)

那么今天,让我们聊聊信息论。(喂喂,转折太生硬了吧!)

假设一个研究原始社会学的外星人选择了人类作为毕业论文的课题,乘着飞船从缪星(或者随便什么星球)来到了我们的太阳系进行田野调查。

然而悲剧的是,由于当时来的仓促(因为地球太远,不快点就要延毕了),他带的存储设备太小了,而作为一只严格遵守学术伦理的缪星人,舍弃一部分资料,只挑选对他的论点有利的数据是不可接受的。于是他开始想办法怎么把数据带回去。

可惜缪星虽然比地球先进很多,通识教育却不怎么样。那个可怜的缪星大学生在数学和物理上的造诣和地球上的社会学大学生差不多——也许统计学学的比他们好一点,毕竟这在缪星的社会系,历史系甚至新闻系都是必修课。

他想到的第一个方法是这样的。首先他知道任何数据可以转化成一个很长的二进制字符串,就像这样:00101011010111110110111000101011……然后他可以找一根棒子,在上面刻下一个点。这个点怎么找呢?首先他看到第一个字符是0,于是这个点就在0到1/2之间,第二个字符也是0,于是这个字符就在0到1/4之间,第三个字符是1,于是这个点就在1/8到1/4之间……以此类推,每次都把上次得到的区间评分,如果字符是0就取前半段,字符是1就取后半段,最终可以找到一个足够小的区间,在这个区间刻上点就可以了。于是他找到一根1米长的铁棒(他的化学也不是很好,其实应该找金这种更加稳定的元素)开始尝试。可是分了30多次之后,他发现了现在一个区间比铁原子还要小,自然分不下去了。于是他找到了他在地球上的好朋友(田野调查如果不融入社会则什么都得不到),问他有没有一种不管放大多少倍都永远光滑的物质。“这里没有,半人马α星上的水滴可能可以。或者你可以到月球上找一种黑色石板,它长宽高的比例是1:3:9,非常容易辨别。”

“滚!”作为缪星的社会学大学生,他知道研究原始社会时要着重研究他们的科幻小说——这是一个热门话题,很容易发paper。

于是他开始尝试第二种方法。他发现地球上有很多压缩数据的方法,比如互联网上随处可以找到的winrarsetup.rar啦,在linux命令行输入tar zcvf OutFile.tar.gz InFile(或者sudo rm - rf /,正如那个地球朋友教他的)啦什么的,如果每次压缩都能减小一点体积的话,那么压缩足够多次就可以放进电脑了!于是他开始压缩数据,很快就发现在压缩了几次之后就不能再继续缩小了!他感到非常的愤怒和着急——因为再不赶回去的话就来不及写毕业论文了!这时他又想到了一种方法,利用无理数!虽然地球上的数学家没有证明圆周率是合取的,但是这在缪星似乎是常识(所以除非你在和缪星人说话,否则不要宣称圆周率是合取的!),也就是任何一串数字都可以在它的小数点第几位到第几位找到。比如说要找“9793”,我们就可以开始读圆周率:3.14159265358979323……啊,从第12位开始就可以了!所以我们就可以用12和4(长度)来代表9793。于是缪星人把他的数据转成十进制开始找相同的字符串。然而,读了好久好久也没有找到,后来他发现,即使找到了,要记录小数位数大小也远远大于他要带回的数据的大小。

真的要来不及了!最后,他只好向他的地球朋友解释了一切,并且询问有没有什么好方法。他的地球朋友——也是一位大学生并且饱受论文之苦——想了想说,你为什么不在这里写论文呢?这样你只要把论文带回去就可以了,答辩的时候可以叫他们来地球自己看嘛!

最终,那个缪星人成功的毕业了。

好了,现在我们来想想一个问题,什么是信息?

假设我现在在美国的的加利福尼亚,而你在上海或者其他中国的城市,你出于搭讪或者人道主义的关怀问我,现在你那里有没有下雨啊?这个问题可以用下了和没下回答。我回答你说,没下。于是你得到了一条信息。等等,你得到的到底是多少信息?你现在知道的当然不是“没下”这一令人一头雾水的短语,而是美国的加利福尼亚州(准确的说是伯克利)现在没有下雨这一事实,并不能推出其他地方有没有下雨,也不能推出明天加州会不会下雨。我只回答了“没下”,为什么你会得知“美国的加利福尼亚州伯克利现在没有下雨”这么长的句子?这就是涉及到编码的问题。本质上所有信息都可以写成二进制,但是它们在不同的解码下得出的意义(或者说,输入到不同的图灵机之后输出的结果)并不相同。更通俗的解释是,因为存在上下文,以及你对于汉语的理解。事实上我当然可以说,No,いいえ,0,甚至“下了”(如果我和你约定我说的全是反话),这并不妨碍你得到的信息——美国的加利福尼亚州现在有/没有下雨变成了美国的加利福尼亚州现在没有下雨。

那么你究竟得到了多少信息呢?你在问我之前,知道的信息是加州,现在。而在问过我之后,知道的是加州,现在,没下雨。我们来考虑一下加州和现在这两个词。你当然可以把加州替换成纽约或者山东德州,把现在替换成明天或者一万年前的今天,直觉告诉我们这包含的信息相同所以事实上每个时间和每个地点都可以问出是否下雨这一问题,所以所有的情况是时间个数和地点个数的乘积乘以2——下雨或没下。因此如果把信息定义为情况的个数显然不对——如果你知道加州现在没下雨,情况数就少了一半,然后你知道加州昨天也没下雨,情况数就又少了一半——得知了同样的信息,情况数却少的不一样多啊!怎么办呢,解决办法就是把信息定义为情况数的对数,更一般的,

其中Pk是k事件发生的概率。这样你每问一次我某时某地的天气,你得到的信息都是一样的。

让我们回到那个可怜的缪星人身上。假设缪星用的是和英语类似的语言,但是只有17个字符——我们用a到q来表示。于是很简单的,缪星用00000来表示a,00001表示b,00010表示c,00011表示d……01111表示p,10000表示q。但是这样就是最好的情况吗?显然有15种情况被浪费了,也就是从10000到11111。这时候,有人a和c从来不会连在一起用。那么我们就可以把后四个二进制数字表示a到p的字母,用00010010表示q。因为a和c从来不会连在一起,所以看到ac我们就可以理解成q。这样虽然q变长了,但是其他所有字母都少了一位,平均下来信息肯定简短了。但是这种简短的操作能否一直进行下去呢?缪星人已经告诉我们了:不行。事实上,如果一种信息包含了n种情况,那么就必须要log n的二进制字符来表示。比如一段话包含了100个缪星字母,假设没有“a和c从来不会连在一起用”这条规矩,就有17的100次方种情况,也就是这句话至少有100log17个二进制字符——又叫100log17比特,这已经比一开始的编码:每个字符5比特,也就是100log32小的多了。但是事实上不存在ac这种情况,所以真实的情况比17的100次方小,也就还不到100log17个比特了。这就是信息熵的一大意义——一段话最少需要多少字符来表示。

香农的另一大贡献就是从理论上证明了只要通信速率低于信道容量

其中P/N等于即信噪比,而W代表信道的带宽,就可以找到一种编码方式,使通信误差接近于0——所有的通信技术都是以此发展过来的,当然从理论到应用,很多科学家都付出了巨大的努力,比如女神级科学家兼艺术家海蒂·拉玛。

这一理论的证明很复杂,但是应用是常见的——当你的wifi信号不好的时候只是会导致传输速度下降,而不会下载到一堆错误文件就是它的功劳。

当然信息论在其他其他方面也有很多的应用。学过统计力学(作者统计力学要挂科了居然还在写这种东西)就会发现信息熵的定义和玻尔兹曼熵非常相似,事实上可以证明在温度T(开尔文)下要改变1bit的信息,耗费的能量至少是Tln2乘以玻尔兹曼常数,所以我们的计算机是永远会发烫的——当然现在计算机耗费的能量远大于此。

而到了量子的时代,信息论就有了更多神奇的意义。大家都知道薛定谔的猫这一著名悖论。一只猫被关在一个箱子里,还有一个可能会衰变的原子,一个盖格计数器,一把枪。在未加以观测的情况下,原子处于衰变/未衰变的叠加态,于是计数器处于接收到辐射/没有接收到的叠加态,于是枪处在发射/未发射的叠加态,于是——猫处在生/死叠加态。如果说观测才能导致波函数坍缩到一个确定的态上,那么只能说我们的观测(这也是一种好奇心!)杀了猫。

关于这一悖论的解释,有一种理论认为,波函数并不会是坍缩了,而是让我们也变成了看到猫活着/看到猫死了的叠加态而已。中学时代的我关于信息有一种朴素的直觉——如果没有特殊的限制,那么有几个方程就能解出几个未知数,有几个微分方程就能解出几个方程——总之,信息无故不会增多。事实上量子不可复制原理告诉我们波函数是不可复制的,也就是说在观察猫的时候并不是我们得到了猫的信息,而是和猫的信息融为一体。

在量子力学中信息论的另一大问题就是,香农的信息可以全部表现成一串有限长二进制字符,因此是可数的,也就是可以按照一定的顺序把所有的信息(同一种编码下)排起来。也就是说,不存在一种可以记录下无限的信息的方法(还记得缪星人的铁棒吗?),如果要让信息论处理一个无规律而又无限长的数字,就会出现问题(对于圆周率这种看似无限的数据,其实要随便找一个求圆周率的程序,比如泰勒展开再级数求和就可以“代表”它了,不会超过1kbit)。当然,对于我们可以测量到的数据,的确是可以转化成这样的有限长字符。然而,数学告诉我们不存在一种把所有实数按照顺序排列的方法。因此,不能被表示成有限长二进制字符串的数是存在的。如果要让我们的计算机识别这个数,我们只能截取前n位来计算,而不能把它完整的放到电脑里——是不是很像量子不可复制原理?然而,现实中究竟是否存在这种数呢?它和量子不可复制原理有关系吗?量子信息论又是什么呢?这个我们以后再谈。

为什么5月1号才发?因为香农是美国人啊,你看美国现在不还是4月30号嘛(逃


    关注 镇戎啥也不知道


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册