数学之美
序章
- 正如爱因斯坦说:从希腊哲学到现代物理学整个科学史中,不断有人力图把表面上极为复杂的自然现象归结为几个简单的基本概念和关系。
- 简单性和模块化是软件工程的基石,分布式和容错性是互联网的生命。
第一章:文字和语言vs数字和信息
- 在香农博士提出的信息论之后,数学和语言才开始有了交集。
- 我们无法记住所有的文字,通过聚类使得同个文字具有多个意思,但是也带来了歧义,而通过上下文,大多数情况下能去除歧义。
- 文字不是信息的载体,而非信息本身。使用其他载体也能存储同样意义的信息。
- 罗塞塔石碑上面记载着埃及历史,由商博良破译,之所以能流传得益于冗余
- 玛雅文明是20进制,所以他们的一个世纪是四百年,称作太阳纪。
- 数字的发展来源于需求,只有当拥有财产超过现有的数字需要的时候,数字就变大了。
- 阿拉伯数字是由古印度人发明的。
- 通讯时,信道较宽,信息不必压缩就能直接传递,如果信道很窄,消息传递前就要尽可能压缩,送达之后再解压缩。古代的平时讲话和古文(非常简洁)
- 犹太人抄写圣经时,就有用到校验码的思想。校验每一行每一页是否与原文相同。
第二章:从规则到统计
-
达特茅斯会议里面虽然有最优秀的it工程师,但是一个月的碰撞并没有使计算机对自然语言处理有什么实际性的进步。因为他们研究的方向是鸟飞派,就是说看看鸟是这么飞的,然后来造出飞机。
-
事实上,自然语言识别靠的是数学的统计。
-
如果是基于词法分析的话则需要对一句话进行主谓宾分词,归纳,再分析。
-
一句简单的语句就需要设计大量的文法,并且分析过程还得需要针对每一种文法去分析。书写文法规则。有些文法规则还会冲突。与时俱进,想想都很恐怖。
-
在70年代,基于规则的词法分析走到了尽头,至于基于语义去分析更是寸步难行。因为一个词拥有多种语义,结合上下文,有时候一些词的真正含义还需要依赖常识。
-
70年代之后,由弗里德里克·贾里尼克和他领导的华生实验室,采用了基于统计的方法,成功地提升了语音识别成功率。并诞生了统计语言学。
-
基于规则和基于统计的自然语言争执还持续了15年,期间支持基于统计的人越来越多,并且技术越来越成熟。
-
有的时候,错误的方向不管努力多远始终都得不到结果,迷途知返。
第三章:统计语言模型
- 自然语言从它产生开始,逐渐演变成一种上下文相关的信息表达和传递的方式,因此为了让计算机处理自然语言,就需要为这种上下文相关的特性建立数学模型。
- 过去基于规则的语言模型,是试图通过判断文字序列是否符合文法,含义是否正确,事实证明,这条路是行不通的。
- 而贾里尼克的出发点非常简单,一个句子是否合理,就看它的词汇排序的可能性大小。如果一句话是合理的,那他的词汇必然是以一种特定顺序来排列的,一个词跟他的上下文同时出现的概率高,则那个词就应该跟上下文关联起来。
- 但是一个句子特别长,那算概率的可能性就会特别多,无法估算,这时候马尔科夫假设就很有用了,假设任意一个词出现的概率,只同它前面的n个词有关,偷懒但是有效果。
- 假设一个词的出现只跟上一个词有关叫二元模型:P(S) = P(w1) * P(W2|W1) * P(W3|W2) ···P(Wn|Wn-1),同理 还有N元模型。
- 如何判断P(W2|W1) ,从语料库中,找到W1的次数,然后找到W2与W1相邻的次数,相除,如果语料库足够大,根据大数定理,相对频率就等于概率。特别简单,导致这个理论提出的时候,很多人都不信这个有用。
- 实际中二元模型还是太简单了,普遍是三元模型,谷歌的罗塞塔翻译系统和语音搜索系统用到了四元模型。为什么不用更多呢,因为模型从1到2,从2到3效果提升明显,但是从3到4就开始不明显了,但是资源的耗费却增加飞快。
- 虽然模型简单,但是有些细节还需要关注,比如出现次数相同或者是没有出现过的组合,又或者W1和W2只出现了一次,那概率是否就是100%了。涉及到数据可靠性的问题。
- 解决数据可靠性,最直接的方法是增加数据量。但是不管怎么增加,只能减少,无法消灭上述问题,而利用古德-图灵估计,将一部分的概率给没有看到 的事件,而这一部分的概率,则由不可信的统计去折扣。
- 语料的选取与模型应用的领域要结合。
网友评论