《数学之美》读书笔记

如果我早点看到这本书,当年学高数、现代、离散、概率时就会更认真些,也说不定因此去搞人工智能而不是搞前端了。

以下的总结更侧重概念和定性的了解,我个人不太喜欢数学公式(不多实践也记不住),真用的时候再查吧~

进入正题~

第一章 文字和语言 vs 数字和信息

数字、文字和自然语言一样,都是信息的载体。从最简单的人们之间的交谈来说,说话人就是信息源,TA所要传递的信息被编码成声波(另一种信息),通过空气这一信道传到接受者的耳朵,再经过一系列复杂的生理过程被解码为信息。文字和数字也是最原始的编码。

想表达更多的信息量,可以增加文字的数量。但因为人类的记忆力有限,一味增加数量不可取。于是概念的第一次概括和归类就开始了,也就有了多义字。这便是“聚类”。要想解决多义字的歧义,可以依赖上下文。

进位制的出现表明人类已经懂得“编码”,从象形文字到拼音文字的飞跃表明人类懂得了抽象。许多文明的文字,常用字简单,生僻字长,这也符合最短编码原理。

由于书写用具的简陋和短缺,文言文出现了。它实际上是对信息的压缩。犹太人为了保证《圣经》的传抄没有错误,发明了校验码。

字母到词的构词法是词的编码规则,语法是语言的编码和解码规则。但前者是有限而封闭的集合,语言是无限而开放的集合,前者可以有完备的编解码规则,而后者不具备这个特性。

记住“罗塞塔石碑”。

第二章 自然语言处理 从规则到统计

早期的自然语言处理陷入了误区————试图概括自然语言文法规则,来使计算机理解人类的语言。很久人们才搞明白,通过规则和统计总结得到的文法规则显然更好用。

第三章 统计语言模型

一个句子是否合理,看它的可能性大小如何。一个句子由一串有序词组成,该句子出现的概率等于每一个词出现的概率相乘。

马尔科夫假设是一种偷懒但有效的假设——任意一个词出现的概率只与它前面的词有关。对应的统计语言模型为二元模型。当然也有三元、四元等高阶语言模型,它们更精确但更耗资源。

第四章 谈谈分词

查字典+最长匹配的方法能解决七八成的分词问题,但从概率来判断的统计语言模型更为优越。

不同的场景下应该选择不同的分词颗粒度。机器翻译选大些的,网页搜索选小些的。可以让一个分词器支持不同层次的词的划分,这需要基本词表和复合词表。

第五章 隐含马尔科夫模型

隐含马尔可夫模型是连接自然语言处理和通信的桥梁。

第六章 信息的度量和作用

信息量可以用比特来度量。变量的不确定越大,熵也就越大,为了搞清问题所需的信息量也越大。

汉语在所有语言中冗余度是相对小的,通俗地说它比较简洁。

互信息用于度量两个随机事件“相关性”。

第七章 贾里尼克和现代语言处理

向伟大的科学家致敬!

第八章 简单之美——布尔代数和搜索引擎

搜索引擎做的事:下载、索引、排序。下载和索引由爬虫来做,排序由网页排名技术和关键词权重来做。

索引是一张表,表的每一行对应一个关键词,后面跟着一组包含该关键词的文献序号。

庞大的索引可以分为多份,还可以建立常用和非常用索引。

第九章 图论和网络爬虫

网络就是一个图。遍历图的算法有深度优先搜索(DFS)和广度优先搜索(BFS)。人们使用“散列表”来记录网页是否下载过。

搜索引擎主要使用BFS(先爬每个网站的主页),但也结合使用DFS来减少DNS查询。目前脚本语言生成的网页比较难爬取信息。

第十章 Google的民主表决式网页排名技术

Google之前的网页排名是通过使用目录分类或分析锚文本的方式实现的。Google的技术其实是这样的公式——某网页的排名等于指向它的其它网页的权重之和。具体的数学实现是二维矩阵相乘再迭代。

第十一章 如何确定网页和查询的相关性

网页和用户搜索的相关性等于单文本词频乘词语权重再求和(TF-IDF)。停止词的权重为零。

第十二章 有限状态机和动态规划 地图与本地搜索的核心技术

识别地址可以通过基于概率的有限状态机来实现。导航通过动态规划实现。

第十三章 Google AK-47的设计者 阿米特·辛格博士

再次向伟大的科学家致敬!

第十四章 余弦定理和新闻的分类

一篇新闻里出现的实词的TF-IDF按词汇表顺序排列,得到一个向量。两篇新闻是否相近,可以求两向量的夹角。对于大量新闻的分类,可以通过自底向上不断合并的方法。

大数据计算时,存储向量的长度、只考虑向量的非零元素、删除虚词、位置加权都是降低算法复杂度、提高分类准确度的好办法。

第十五章 矩阵运算和文本处理中的两个分类问题

分类还可以通过奇异值分解的方法实现。一个大矩阵可以分为三个小矩阵,存储量和计算量减少三个数量级。但这种分类方法略显粗糙。

第十六章 信息指纹及其应用

信息指纹,可以简单理解为将一段信息(文字、图片等)随机地映射成一个二进制数字。它能减少散列表的内存需求量,也具有不可逆性。

信息指纹也用于判断集合是否相同(反盗版、反垃圾邮件等)。

第十七章 由电视剧《暗算》想到的 谈谈密码学的数学原理

好的密码,它的加密函数应该很难推算。目前大部分算法都是找几个大素数做一些乘除和乘方运算。

密码学的最高境界是,无论敌方获取多少密文,也无法消除己方情报系统的不确定性。说到底还是信息论。

第十八章 闪光的不一定是金子 谈谈搜索引擎反作弊问题和搜索结果的权威性问题

反作弊的本质是消除通信中的噪声干扰。基本思路有两条:从信息源出发,加强编码的抗干扰能力;从传输来看,过滤掉噪音,还原信息。

作弊者的卖链接的网站有大量的出链,这和正常网站不同。可以用余弦定理计算这些网站之间的余弦距离。另外作弊网站之间经常互相链接,形成节点之间都两两连接的图。可以使用图论的方法搜寻这些图。

计算权威度要经过五个步骤。一,对网页里的句子进行句法分析,找出主题短语和对信息源的描述。二,利用互信息,找到主题短语和信息源的相关性。三,对近义的主题短语聚类。四,对一个网站中的网页聚类,因为权威网站下的子域未必权威。到这步可得到一个权威性的关联矩阵。五,使用民主表决技术得出最终结果。

第十九章 谈谈数学模型的重要性

其实托勒密对天文学做出了重大贡献,包括球坐标、黄道、弧度制,

一个正确的数学模型应该在形式上是简单的。
它可能不如一个精雕细琢的错误模型来得准确,但如果大方向是对的,就应该坚持。
大量准确的数据对研发很重要。
正确的模型也可能受噪音干扰。不应用凑合的修正方法来弥补,而应该找到噪音的根源。

第二十章 不要把鸡蛋放到一个篮子里 谈谈最大熵模型

最大熵模型就是要保留全部的不确定性,将风险降到最小。最大熵原理指出,对一个随机事件的概率分布进行预测时,预测应当满足全部已知的条件,对未知的情况不要做任何主观假设(比如不该假设一颗未知的骰子灌铅)。

第二十一章 拼音输入法的数学原理

对汉字的编码分为两部分,对拼音的编码和消除歧义性(一音多字)的编码。

第一代的双拼过分强调前者而忽视后者,第二代输入法则忽视了找到键记忆键的时间和成本。最后胜出的拼音输入法虽然击键数多,但有三个优点——不需要专门学习;输入自然不会中断思维;编码长而有冗余度,容错性高。

根据前文的香农第一定理,运用信息熵的相关知识可以推出一个汉字的最小击键数。利用上下文可以减小击键数,可以通过词库或语言模型来做到。也可以针对每一位用户建立个性化的语言模型。

拼音转汉字的本质其实是寻找最短路径,和地图导航原理相通。

第二十二章 自然语言处理的教父马库斯和他的优秀弟子们

继续向伟大的科学家致敬!

第二十三章 布隆过滤器

散列表快速准确但耗费存储空间。可以考虑使用布隆过滤器。它实际上使用信息指纹来实现比较。有误判的可能,常见的补救方法是建立白名单。

第二十四章 马尔可夫链的扩展 贝叶斯网络

贝叶斯网络是一个加权有向图,是马尔可夫链的扩展。它克服了马尔科夫链那种机械的线性的约束,把任何有关联的事件统一到它的框架下面。它在文本分类、概念抽取、生物统计、图像处理、决策支持系统和博弈论中都有广泛应用。

第二十五章 条件随机场、文法分析及其他

在以前,文法分析采用建树的方法,自顶向下或自底向上。但如果某一步走岔路,回溯的过程会极大地增加计算复杂度。所以该方法没有实用性。

后来拉纳帕提采用给句子括括号然后迭代的方法再加上最大熵原型部分解决了问题。但这种方法对于“不太好的”、有语法错误的句子不适用。

条件随机场对于句子的浅层分析(找出句子中主要词组和它们对应关系)十分适用。它的本质是一种特殊的概率图模型。它在模型识别、机器学习、生物统计、预防犯罪等方面都有很成功的应用。

第二十六章 维特比和他的维特比算法

维特比算法是一种动态规划算法,原理和地图导航类似。