2015年6月27日星期六

[读书]吴军:《数学之美》

本书是Google的技术大牛之一吴军写的科普文章,在于阐发Google所采用的技术的数学原理。Google的技术高端,但所采用的数学原来当然是很基础的,而本书的题目也在于体现那些看似简单的数学原理是如何精妙地在当代计算机技术中发扬光大的,深入浅出,是一本非常好的数学(当然其实更像是统计学)的科普读物。

下面是我写的一篇帮助统计学零基础的读者理解这本书的梗概:

零基础看懂《数学之美》

严格地说,《数学之美》的书名应该是《数学应用之美》、《统计学之美》或者《信息论之美》,可能跟大多数读者看到书名的第一印象并不一样。如果真的希望体验通常意义上的“数学之美”,非常推荐李毓佩(初级)或者马丁·加德纳(中级)的相关著作。

《数学之美》大多数内容所基于的理工科理论基础其实并不难,但正如霍金的打趣:在书中每增加一个公式,就要吓走一半的潜在读者。书里公式太多不免让人望而生畏,那么,《数学之美》美在哪里?它讲的是什么?

OK,打个不太严格的比喻:假定一个老外,不懂中文,被任命为北京大学图书馆的管理员,他要怎么管理这个图书馆的庞大图书群?而且,不单单是图书,还包括音频、视频、图片等等所有非常规意义上的信息?(第1章)

常规意义上,我们会这么解决问题:让这个老外,先开始学中文,然后再学图书分类,等到他中文和图书学的功底都很扎实了,这两个大问题解决了,就可以管理图书馆了。事实上,计算机开始处理互联网的信息,一开始也是走这条路,一直到Yahoo时代,都是如此。

但是,这样的模式分别对应了两个毛病:第一,语言(这里是中文)体系本身是没有严格标准的,譬如“北京大学”算一个词还是两个词?第二,图书分类的界限在逐渐模糊。譬如“地缘政治学”算地理学还是政治学?“经济史”算经济还是历史?

这个要管理北大图书馆的老外也发现了这个问题,麻烦大了,而且他自己学习的速度肯定跟不上图书馆更新换代的速度。怎么办呢?万幸的是,他手头有计算机和数学工具,所以他不再谋求看懂每一本书,决定换一个思路:他从信息论的角度来理解图书馆的所有信息:图书馆的所有馆藏都是信息的发出者(信源),通过文字、音频、视频等各种编码(信道),最后由他做出解读(信宿)。(第2章)

信息就是各种要素的组合,理解了这一点,就不难理解:这个老外把所有的信息都视为基本要素的概率乘积,出现得越多(概率越大)的句子就越合理。这个概率乘积也不是乱乘,而是前一个词决定了后一个词出现的频率高低(譬如,我读“书”的概率合理高于我读“米饭”),这就是所谓的马尔可夫链(第3、5章)。另外,老外对中文的分词也不是靠语法学来定义的,而是靠图书馆里的所有馆藏书籍来决定的:大多数人怎么说,我就怎么认为。大多数人如果认为“北京大学”是一个词,那我也跟着认为这是一个词(第4章)。从统计学出发,老外把处理图书馆馆藏的工作变成了“找相关信息”的方法(第6章),然后顺便介绍了自然语言处理泰斗贾里尼克(第7章)和马库斯(第22章)的八卦。

之后,本书开始谈布尔代数(第8章),这可以说是现代计算机学和逻辑学的基础,用1和0两个状态就能描述所有的逻辑事件。那么,管理图书馆的老外能用来做什么?当读者来借书的时候,不可能临时去检索所有的图书馆书籍。好,老外想了个办法:他预先扫描了所有书籍,按照所有的汉字/词给每本书标号,编了一个新的表,譬如“北京大学”出现就叫1,没有就是0。这个表是一个很长的字符串,比如0100100……表示第2本、第5本……出现了“北京大学”这个词。一旦读者来借阅和“北京大学”相关的书,他就能马上知道去找表示第2本、第5本……书。如果读者还有其他的条件(比如同时包括“清华大学”),那么根据他编出的表和布尔代数的规则,就能迅速筛出符合条件的书。

那么老外是怎么找所有图书馆的书呢(第9章)?有两个办法:一个是从一本书开始,先扫一遍和它相关的所有书,然后再从其中一本开始,再扫一遍所有相关书籍,直到扫完图书馆的馆藏(广度优先);第二个是从一本书开始,先扫一本书,挑一本跟它最相关的,再从这本开始,再挑一个跟第二本最相关的,直到扫完图书馆(深度优先)。这两种方法各有利弊,好的搜索都是结合使用两种方法。

下一个要解决的问题:读者给出一个词(如“北京大学”),那么哪些书比较重要?应该放在优先的位置报给读者?老外想了个办法:被真实引用的次数越多,说明越重要(第10章)。有些口水词怎么办呢?比如读者就是要搜索“北京大学的”(第11章)?老外说:没关系,凡是这个词在所有文献里出现得越多,那么它的权重就越低。

除了文字资料之外,图书馆里也有地图、音频等非文字信息,老外把这些向量信息(有方向的)的处理归纳成了数学上的动态规划计算(第12章)。

第13章插播一节人民群众喜闻乐见的八卦故事,归纳一下:在计算机处理里,简单就是美。这个在后面的故事里也有体现和介绍(第19章“数学模型”的重要性)。

前面说的是老外用统计学来处理信息(代替了学习中文),但是还有篇头提到的另一个大问题没有解决:这个老外没有学图书馆学,那么他怎么把所有的书来分类呢?老办法,还是统计学:老外把所有的图书都按照关键词的有(1)无(0)重新编码,这样每本书就是一长串代码,只要两个代码之间的“统计距离”很接近,那么就认为这两本书属于同一类。这个统计距离是用余弦定理算出来的(第14、15章)。

另外,如果图书馆想买一本新书,有没有办法判定这本书是否已经在馆藏里以避免重复购买(第16章)?有的,如同人有指纹一样,老外给每本书都编了一个随机码作为信息指纹,这样就可以比较两本书之间的差异了,连学生交的抄袭论文都能抓出来。然后顺便介绍了一下密码学(第17章)。这个方法也可以用来挑出那些不符合条件的网络信息(比如喜欢发垃圾邮件的邮箱)(第23章)。

知道老外是怎么管理图书馆的,当然就会有人想作弊,因为北大图书馆能推荐给读者的书在外面还是很有噱头的,肯定有很多作者想按照这个老外的思路来通过作弊走捷径而不是改进自己的作品质量来提高自己的排名(第18章)。老外也想到这一点了,他虽然不懂中文,不过作弊都是有规律的,能挖得出来。

作为老外,有一个好处,那就是他对图书馆里所有的信息都没有主观偏见,保留所有的可能性(概率),这个叫做最大熵原理(第20章)。这在信息处理中非常重要。这个老外很勤奋,不但用统计学处理好了图书馆管理的问题,而且也顺便帮中国人解决了自己的问题:汉字的电脑输入(第21章)。

老外能处理好图书馆管理的工作并不是突然冒出来的,下面几章就介绍了他的统计学工具:贝叶斯方法(先观察到结果,然后去判断先验概率,第24章)、条件随机场(第25章),然后还有通信工程上的大牛、对CDMA技术做出重大贡献的维特比(第26章)。当然,其中少不了通信工程学上的最美丽科学家、外表看起来像花瓶但实际上可以说是CDMA技术奠基人的好莱坞女明星:海蒂·拉玛尔。后面重讲了一遍文本分类(第27章),但其实也只不过是多元统计里的聚类的应用;网页广告点击也是多元统计里逻辑回归的应用(第28章)。

最后一章就是前两年非常热火朝天的云计算(第29章),这个在工程相对复杂但在数学原理上比较简单,因为前面已经把各种遇到的问题转化为了数学计算(严格地说是矩阵运算),其实云计算也就是把大矩阵运算转化为了更加简单的几个矩阵之间乘积运算,相当于这个老外把自己的活儿分别分派给了几个人同时做,然后再把他们的结果合并起来。

全书完。结论:数学非常美。

2 条评论:

  1. 回复
    1. http://download.csdn.net/tag/%E6%95%B0%E5%AD%A6%E4%B9%8B%E7%BE%8E.pdf

      删除