写在前面
本文仅是个人对于《数学之美》一书中的要点摘抄,或者说是读书笔记。本打算将书中包括延伸阅读在内的所有内容进行总结,但在读了第十三章关于阿米特·辛格博士的介绍后,觉得应该先解决80%的问题,再去解决其余的20%,于是决定跳过所有延伸阅读的内容,尽早可以变成博客,来得到其他人的批评和建议,以便于及时改正错误。最后,我只想说《数学之美》这本书是一本非常好的书,对于一些学界大师的介绍,让人能够从中收获到许多十分难得的观点和态度;而对复杂问题的解决方法,让人觉得巧妙但又似乎合情合理,这大概就是数学之美呐。
如果本文中有一句话能够激起你的兴趣,请一定要去读一下这本书。
非常感谢吴军老师愿意分享自己的知识与感悟。
第一章 文字和语言 vs 数字和信息
1.人类最早利用声音的通信与现在的通信模型相似,由说话人(信息源)发出声音(编码)经过空气等其他介质(信道)传播到另一个人(接收者),听到的人理解了声音所要表达的内容(解码),这就是整个通信的过程。
2.语言在人类对于新鲜事物的学习中逐步丰富,但是这对于人脑的记忆要求也在提高,高效记录信息的需求产生了,催生出了文字的出现。
3.中国的象形文字中,同一个符号可以表示与其象形义相近的多种含义,也可以通过符号的再创造来扩展字义;古埃及的象形文字中,读音相同的词可能会用同一个符号记录。这种概念的聚类,原理上与今天自然语言处理和机器学习的聚类有很大相似性。
4.文字中难免存在歧义性,消除文字歧义的办法就是利用上下文,具体模型会在后面的章节中描述。
5.不同文字之间的交流,就要通过翻译,从文字中提取信息。翻译可行的原因就在于文字是信息的载体,不同文字系统在记录信息的能力上是等价的。
6.很多翻译软件和服务叫做“罗塞塔”,是源于罗塞塔石碑的故事。罗塞塔石碑上面刻有三种语言,这样通过信息的冗余来保障信息的安全:如果能保留其中一种语言,那么其上的信息就不会丢失。这对于今天的信道编码有指导意义。此外,这种双语或多语的对照语料有助于翻译的发展。
7.中国和罗马都使用明确的单位来表示数字的不同量级,包括进位制的使用,都引入了编码的概念:用不同的数字符号代表不同的数字概念且使用了自己的解码规则(中国用乘法,罗马用加减法)。
8.从象形文字到拼音文字的转变是一大飞跃,体现了对信息的编码。其中常用字笔画少,生僻字笔画多,体现了信息论的最短编码原理。
9.为了防止出现传抄错误,《圣经》中加入了校验码。将每个希伯来字母对应一个数字,每行末尾添加该行字母对应数字的和,每列末尾也做同样的处理,还要在每一页添加校验码。
10.字母(中文的笔画)、文字和数字实际上是信息编码的不同单位。任何一种语言都是一种编码的方式,语言的语法规则是解编码的算法。
第二章 自然语言处理——从规则到统计
1.早期的自然语言处理企图用电脑模拟人脑,成果近乎为零。“让计算机做人类的工作,就要先使其拥有人类的智能。”这类错误的观点被称作“鸟飞派”,即要想如鸟一般飞上天空,就要研究生物学或是仿生学,而实际上人类飞上天穹与这两门学科关系不大。
2.自然语言处理的第二个阶段是基于数学模型和统计的方法。
3.对于自然语言的处理,分析语句和获取语义最初被放在首要位置。
4.由于语言学家们对于各种自然语言已经有了非常形式化的总结,因此科学家们企图利用已有的语法规则来进行自然语言处理。但这种处理方式的计算量非常大,无法对较复杂的语句进行处理,且文法规则的数量不足,需要有人进行文法规则的不断补充。另外,自然语言的文法与程序语言不同,是上下文有关文法,解析起来十分困难,等长的自然语言的分析计算量是程序语言的一万倍。
5.除句法分析外,基于规则的自然语言处理在语义处理中也遇瓶颈。因为自然语言中词的多义性严重依赖于上下文,很难用规则去描述。
6.基于规则的自然语言处理的失败,为基于统计的自然语言处理打开了大门。
第三章 统计语言模型
1.贾里尼克的统计模型的出发点:一个句子是否合理,可通过其出现的可能性大小进行判断。
2.将句子分割成一连串词,句子出现的可能性就是这些词同时出现的概率,可由条件概率和联合概率的关系求出。但是这样做的计算量太大,马尔可夫提出,每个词出现的概率仅与前一个词有关,这个假设称为马尔可夫假设。
3.要求出单个词出现的频率,就用单个词在语料库中出现的次数比语料库的总词数;要求出一对词在统计的文本中出现的频率,就用这对词前后相邻出现的次数比前一个词出现的次数。根据大数定理,当语料库的词量足够时,频率就等于概率。
第四章 谈谈中文分词
1.最容易想到的中文分词方法是“查字典”的办法,就是把句子从左到右扫描一遍,遇到字典中有的词就进行标注,一个句子要标注出尽可能少的词串。这种方法已能够处理较多的分词问题,但是对于一些词会出现问题,如“北京大学生”,应该分成“北京”+“大学生”,但用“查字典”的办法会分成“北京大学”+“生”。
2.郭进博士采用了统计语言模型方法,即将一个句子所有可能的分词情况列出,然后求各种分词情况下句子出现的概率,概率最大的分词情况即可作为最终的分词结果。
3.郭进博士的方法计算量比较大,因此将其看成是动态规划问题,利用维特比算法快速地找到最佳分词。
4.孙茂松教授解决了没有词典的情况下的分词问题,吴德凯教授较早将中文分词方法用于英文词组的分割,并且将英文词组和中文词在机器翻译时对应起来。
5.一般来讲,汉语分词的颗粒度应随应用的不同而不同。
6.汉语分词的方法也被应用到了英语处理中,因为在手写体识别中,词与词之间的空格就不是很清楚了。中文分词的方法可以帮助判别英语单词的边界。
第五章 隐含马尔可夫模型
1.几乎所有的自然语言处理问题都可以等价成通信的解码问题。
2.利用条件概率,可描述出在接收端的观测信号 已知前提下信号源所发送信息为 的概率。利用贝叶斯公式和隐含马尔可夫模型可以简化模型。
3.假设在一个随机过程中每一状态的出现仅与前一状态有关,例如一段话中每一个词的出现仅与前一个词有关,这一假设称为马尔可夫假设,符合这个假设的随机过程称为马尔可夫过程,又称马尔可夫链。
4.隐含马尔可夫模型是马尔可夫链的一个扩展,任一时刻t的状态 是不可见的(即不知道信息源所发送信息的内容)。因此无法直接采用已知的状态序列来推测转移概率。
5.独立输出假设:隐含马尔可夫模型在每个时刻t输出的符号 相关且仅相关于信号源在该时刻的输出 。
6.利用马尔可夫假设和独立输出假设可解决通信的解码问题。而很多自然语言处理问题和通信的解码问题等价,因此都可用隐含马尔可夫模型来解决。
7.隐含马尔可夫模型成功的应用最早是语音识别,后陆续成功应用于机器翻译、拼写纠错、手写体识别、图像处理、基因序列分析、股票预测和投资等。
第六章 信息的度量和作用
1.信息的信息量与其不确定性有直接的关系。
2.信息不确定性使用信息熵来衡量,熵计算:
3.几乎所有的自然语言处理、信息与信号处理的应用都是一个消除不确定性的过程。
4.网页搜索本质上是利用信息消除不确定性,通过关键词在大量的网页中找到最相关的几个网页。要提高搜索引擎的质量,就应该挖掘新的隐含的信息,比如网页自身的质量信息。还可以请求用户添加新的信息,如相关搜索。试图通过对关键词用公式或机器学习算法等方式提高搜索质量是不正确的,因为没有额外的信息引入,这样做效果很差。
5.信息的作用是消除不确定性。
第七章 贾里尼克和现代语言处理
本章以介绍弗里德里克·贾里尼克博士为主,让读者可以学习到大师的思维方法。以下仅为一些观点:
1.小学生和中学生的社会经验、生活能力以及所树立起的志向有益于一生,没有必要花太多的时间读书。
2.大学阶段的理解力会比之前强得多,中学阶段花很多时间学习的内容在大学用非常短的时间就可以读完,而一个学生在中小学阶段建立的一点点优势在大学很快会丧失殆尽。
3.学习是一个人一辈子的过程,因为兴趣而读书的学生读书的动力更强,表现会更好。
4.书本内容的获取可早可晚,但错过的成长阶段却无法补回来。
5.一个人要想在自己的领域做到世界一流,他的周围必须有非常多的一流人物。
*6.天时、地利、人和,在一件事情的成功中缺一不可。
7.相信别人都是很聪明的,不用告诉他们做什么,只需要告诉他们不要去做什么。
第八章 简单之美——布尔代数和搜索引擎的索引
1.二进制除了可以计数之外,还可以进行逻辑表达。
2.香农指出用布尔代数来实现开关电路,使得布尔代数成为数字电路的基础。
3.图书的索引由图书馆的索引卡片发展到了数据库查询,其背后的基本原理是基于布尔运算的。
4.简单的索引是通过将网页是否包含某一关键字用二进制数的一位来表示,比如01001,表示第二号和第五号网页包含该关键字,而要想实现多个关键字的查找,则将那些关键字的二进制数进行AND运算,便可从结果中找出满足要求的网页。
5.由于词汇表的巨大和网页数目的庞大,索引要通过分布式的方式存储到不同的服务器上。接受查询时,这些服务器同时并行处理用户请求,并把结果送到主服务器上进行合并处理,最后将结果返回给用户。
6.“(人们)发觉真理在形式上从来是简单的,而不是复杂和含混的。”——牛顿
第九章 图论和网络爬虫
1.中国公路网、互联网等均可抽象成图。
2.广度优先搜索和深度优先搜索是图的遍历的两种方式。
3.网络爬虫是利用图的遍历算法从一个页面出发通过页面内的超链接自动访问与之相连的网页的程序。
第十章 PageRank——Google的民主表决式网页排名技术
1.雅虎的创始人最早使用目录分类的方式让用户通过互联网检索信息,但计算机容量和速度的限制使其收录的网页太少,且只能对网页中常见内容相关的实际用词进行索引,效果很差。
2.PageRank的核心思想就是一个网页如果被其他很多网页所链接,说明它得到较多的认可,他在互联网上的排名就高。另外,越高排名的网页可以比其他网页在链接中的影响更大,即被较权威网页链接比被一般网页链接的网页排名更高,更值得信赖。
第十一章 如何确定网页和查询的相关性
1. 搜索时找到的网页可按照关键词在网页中出现的次数进行排序,但是这样做会导致内容较长的网页更占优势,因此引入“单文本词频”(Term Frequency,TF)的概念,即单个网页上关键词的出现频率。
2.在搜索过程中,不同关键字在整个关键词中所占的地位不同,例如以“原子能的应用”为关键词,三者的地位应当是“原子能”>“应用”>“的”,即一个词预测主题的能力越强,权重越大,而对于“是”、“和”、“中”、“的”等停止词,其权重应当为零。
3.一个关键词在越多的网页中出现,其权重应当越小,因为它对于所要查找的内容贡献较小,即使得到它,仍不确定所找的内容。
因此引入“逆文本频率指数”(Inverse Document Frequency,IDF)的概念,即log(全部网页数/关键词所在网页数)。
4.网页和查询相关性的计算为关键词词频的加权(逆文本频率指数)求和,即
5.以信息论的观点来看,IDF的概念就是一个特定条件下关键词的概率分布的交叉熵(Kullback-Leibler Divergence)。
第十二章 地图和本地搜索的最基本技术——有限状态机和动态规划
1.智能手机的定位和导航功能的三个关键技术:利用卫星定位,地址识别,最佳路径规划。
2.地址的识别和分析方法中,最有效的是有限状态机。
3.在对地址识别和分析时,要进行模糊匹配,并给出一个字符串为正确地址的可能性,基于概率的有限状态机和离散的马尔可夫链基本等效。
4.全球导航的关键算法是动态规划(Dynamic Programming)算法。
第十三章 Google AK-47的设计者——阿米特·辛格博士
本章以介绍阿米特·辛格博士为主,以下为部分观点:
1.好的算法应该像AK-47冲锋枪:简单、有效、可靠性好且易操作。
2.先帮助用户解决80%的问题,再慢慢解决剩下的20%问题,是工业界成功的秘诀之一。
3.选择简单方案可以较容易解释每一个步骤和方法背后的道理,出问题时便于查错,也容易找到今后改进的目标。
4.年轻人要不怕失败,大胆尝试。
第十四章 余弦定理和新闻的分类
1.设计一个N个词的词表,用一个N维向量来代表一篇新闻,统计该篇新闻中各词出现次数作为其特征向量各维的值。利用余弦定理可算出两个特征向量之间的夹角,夹角越小,两篇新闻的相似程度越高。
2.通过设置阈值来将所有相似程度高的新闻分成许多小类,再将这些小类作为一篇“新闻”,计算小类之间的相似程度,然后再合并,不断迭代,到一定程度时新闻的分类便完成了。
第十五章 矩阵运算和文本处理中的两个分类问题
1.将有N个关键词的M篇新闻的特征向量组合在一起可形成一个M*N的矩阵,但这个矩阵过于大,而且在新闻分类的时候会造成多次迭代,耗时非常长。利用矩阵运算中的奇异值分解的方法,可以解决这些问题。
2.奇异值分解(Singular Value Decomposition,SVD)可同时完成近义词分类和文章的分类,例如:
假设A为4*4的新闻矩阵,而A满足:
第一个矩阵是对词进行分类的一个结果,例子中表示的是四个词和两个语义类的相关性;
第二个矩阵表示关键词的语义类和文章的分类之间的相关性;
第三个矩阵是对文章的分类结果,例子中表示四篇文本和两个主题之间的相关性。
当矩阵非常大的时候,经过奇异值分解得到的矩阵大小会小很多,比如1000000*500000的矩阵,可分解成1000000*100、100*100、100*500000三个小矩阵,而三个小矩阵的大小总和比原来的矩阵小得多。
第十六章 信息指纹及其应用
1.信息指纹指一段信息对应于一个随机数,作为区别于其他信息的“指纹”。
2.伪随机数产生器算法(Pseudo-Random Number Generator, PRNG),作为一种产生信息指纹的算法,最早由冯·诺依曼提出,就是将一个数平方后掐头去尾取中间的几位,但这种做法产生的随机数很容易重复。现在常用梅森旋转算法。
3.信息指纹可用于网站的消重(防止爬虫重复爬取同一网页)、判定集合相同(如要求查询时用的词顺序改变,所查到内容仍要一致)、判定集合基本相同(如文章查重)等。
4.信息指纹的一个特征为不可逆性,即只能判断出谁和谁不一样,而不能确定地知道谁是谁,这在网络加密传输中很重要。
第十七章 由电视剧《暗算》所想到的——谈谈密码学的数学原理
1.凯撒大帝的密码,是将罗马文字相互间建立对应关系,也就是设计密码本,但这种方式形成的密码可以通过统计的方法进行破解。
2.为防止密码被解密者得到统计信息,可以将常用的词对应于多组密码。
3.好的密码应当做到不能根据已知的明文和密文的对应推断出新的密文的内容。
4.公开密钥的方法:
(1)找到两个很大的素数P和Q,求得乘积
N = P * Q,
M = (P-1)*(Q-1)
(2)取与M互素的整数E。
(3)找到整数D使之满足
E * D mod M = 1
那么E为用于加密的公钥,D为用于解密的私钥,N为公开的值
如对X进行加密,得到密码为Y,
原理:费马小定理
5.公开密钥的好处:
(1)使用简单。
(2)可靠。密文统计独立而均匀分布,无法根据已知明文和密文的对应来破译其他密文,除拥有私钥D的人之外,连加密者也无法解密。
(3)灵活。可以产生很多公钥E和私钥D给不同加密者。
6.不存在无法破解的密码,关键在于密码被破解所用的时间长短,即密码拥有多长时间的有效期。
第十八章 闪光的不一定是金子——谈谈搜索引擎反作弊问题
1.早期最常见的作弊方法是重复关键词来提高网页在搜索引擎中的排名。(比如重复内容,将重复内容以很小的字体配合网页的背景色出现在网页中不引人注意的地方)
2.搜索引擎作弊从本质上看就如同对搜索排序的信息加入噪音,因此反作弊首先就要增强排序算法的抗噪声能力,其次再去噪音。
3.对于作弊的网站,一般都要相互链接以提高排名,而在图论中,几个节点两两互相连接在一起称为一个Clique,图论中有专门发现Clique的方法,可直接应用于网页排名反作弊。
4.对于针对PageRank的买卖链接的问题,考虑对网站到其他网站的出链数目作为出链特征向量,找出那些出链特征向量余弦距离为1的网站,那么可判断这些网站均由一人所建,目的就是卖链接。进而对PageRank算法进行改进,使这种做法失效。
5.反作弊和恢复网站原排名的过程完全自动,不可加入个人好恶。
第十九章 谈谈数学模型的重要性
1.一个正确的数学模型应当在形式上是简单的。
2.一个正确的模型一开始可能还不如一个精雕细琢过的错误模型来的准确,但是,如果我们认定大方向是对的,就应该坚持下去。
3.大量准确的数据对研发很重要。
4.正确的模型也可能受噪声干扰,而显得不准确;这时不应该用一种凑合的修正方法来弥补它,而是要找到噪音的根源,这也许能通往重大的发现。
第二十章 不要把鸡蛋放到一个篮子里——谈谈最大熵模型
1.最大熵原理指出,对随机事件的概率分布进行预测时,要在满足全部已知的条件的前提下保留全部的不确定性,风险最小。
2.包括句法分析、语言模型、机器翻译还有证券交易等领域都可以采用最大熵模型。
3.最大熵模型在形式上非常简单,但是在实现上却非常复杂,计算量非常大。
4.最原始的最大熵模型的训练方法是一种称为通用迭代算法(Generalized Iterative Scaling,GIS)的迭代算法。
第二十一章 拼音输入法的数学原理
1.输入法输入汉字的快慢取决于对汉字编码的平均长度,即击键次数乘以寻找这个键所需要的时间。而单纯地减少编码长度未必可以提高输入速度,因为寻找一个键的时间可能变得更长。
2.拼音输入法被汉字用户最终接受的理由:
(1)无需专门学习;
(2)输入自然,不会中断思维;
(3)编码长,有信息冗余量,容错性好。
3.香农第一定理指出:对于一个信息,任何编码的长度都不小于它的信息熵。汉字的平均编码长度的最小值就是汉字的信息熵,任何输入法不可能突破信息熵给定的极限。
4.每一个拼音可以对应多个汉字,把一个拼音串对应的汉字按每个字所对应拼音在拼音串中的位置连起来,就是一张有向图。图中汉字为各个节点,前后汉字的条件概率的对数为边权值(取对数是为了将求路径上权值的乘积变成求和)。那么拼音串转汉字串的过程就是寻找汉字串最大可能匹配的过程,也就是在有向图中求最短路径。
第二十二章 自然语言处理的教父马库斯和他的优秀弟子们
本文以介绍米奇·马库斯教授和追求极致的迈克尔·柯林斯与追求简单的艾里克·布莱尔三人的学术和职业生涯为主。
个人觉得最有味道的部分是当吴军博士告诉一直喜欢被人追赶的布莱尔,微软(布莱尔所在公司)成了Google的追赶者,他俩的位置调了个儿时,布莱尔说有一件事吴军博士永远追不上他,
那就是他先有了第二个孩子。
第二十三章 布隆过滤器
1.计算机中的集合是用哈希表来存储的,好处是快速准确,坏处是耗费存储空间。
2.对一个很大的向量(如十六亿二进制位)全部清零,将要针对的网页的信息指纹用随机数产生器映射到几个自然数,再将这几个自然数位置的二进制全部设置为1,布隆过滤器就建成了。如果一个可疑的邮件地址的信息指纹用相同的随机数产生器对应到布隆过滤器的二进制位均为1,则可判定它在黑名单中。
3.布隆过滤器不会漏掉黑名单中的任何可疑地址,但存在极小的可能误判。布隆过滤器的好处在于快速、省空间,但有一定误识别率。补救的办法是在建立一个白名单,存储可能被误判的邮件地址。
第二十四章 马尔可夫链的扩展——贝叶斯网络
1.将马尔可夫链的结构自线性扩展为网状结构即成为贝叶斯网络,它是马尔可夫链的推广。由于不受链状结构的约束,贝叶斯网络可以更加准确地描述事件之间的相关性。
2.贝叶斯网络在图像处理、文字处理、支持决策、生物统计和博弈论等方面有很多应用。
第二十五章 条件随机场和句法分析
1.文法规则在选择时的原则:让被分析的句子的语法树概率达到最大。
2.当隐含马尔可夫模型中的观测值不仅与当时的状态有关,而是考虑与前后的状态都有关时,模型便扩展为条件随机场。但与贝叶斯网络的不同之处在于,贝叶斯网络是有向图,条件随机场是无向图。
3.条件随机场是非常灵活的用于预测的统计模型,在模式识别、机器学习和生物统计中有很成功的应用。
第二十六章 维特比和他的维特比算法
1.维特比算法是针对篱笆网络的有向图的最短路问题提出的,算法主要是动态规划内容,算出到每一层各点的最近距离,不断迭代,最终找出最短路。
2.扩频传输相对于固定频率传输的优点:
(1)抗干扰能力极强。因为频带宽,不能把所有的频带都干扰了。
(2)难以被截获。因为信号的能量非常低。
(3)利用宽带更充分。为防止固定频率的通信由于邻近频率的互相干扰,载波频率的频点不能分布太密集,而扩频通信的抗干扰能力强,分布不必太稀疏。
3.频分多址是对频率进行切分,每一路通信使用一个不同的频率。4.时分多址是将同一频带按时间分成很多份,每个人的通信数据在压缩后只占用频带传输的1/N时间。
第二十七章 再谈文本自动分类问题——期望最大化算法
1.期望最大化算法:在样本中随机挑选一些中心点位置,根据各点到中心点的距离进行分组,用每组中各点的位置求期望,作为组内新的中心点位置,然后重复之前的过程,直至收敛到目标状态为止。
第二十八章 逻辑回归和搜索广告
1.搜索广告发展:第一阶段是按照广告出价排名;第二阶段是结合出价和点击率来决定广告的投放;第三阶段是对全局的进一步优化,比如个性化投放等。
2.点击率预估的问题:
(1)新广告没有被点击的历史数据;
(2)一个查询对应的特定广告点击量过少;
(3)点击量与广告的摆放位置有关,另外还有其他噪音。
3.逻辑回归模型是将一个事件出现的概率适应到一条逻辑曲线上的指数模型。与其他指数模型(如最大熵模型)一样,他们的训练方法相似,都可采用通用迭代算法GIS和改进的迭代算法IIS来实现。
第二十九章 各个击破算法和Google云计算的基础
1.分治算法基本原理:将一个复杂的问题,分成若干个简单的子问题进行解决,再将子问题的结果进行合并,得到原有问题的解。
2.Google云计算中最重要的工具MapReduce,其原理就是分治——Map(分解并处理子问题)+ Reduce(合并子问题的解)