《数学之美》读书笔记(一):第1章~第5章

碎碎念:学信息论和语音信号处理的时候看了大半天课本也没看懂马尔可夫和隐马尔可夫到底是什么东西,考试也不考就直接跳过了,看了《数学之美》,没几页就看懂了马尔可夫,一本好书是多么重要啊。

第一章 文字和语言vs数字和信息
1.语言和数学的产生都是为了同一个目的——记录和传播信息。
2.文字按照意思来聚类,会带来一些歧义性。有了上下文,大多数情况下多义字的去处歧义都可以做到。
3.不同的文字系统在记录信息上的能力是等价的,文字只是信息的载体,而非信息本身。
4.信息的冗余是安全的保障。语言的数据,即语料,是从事机器翻译研究的基础。
5.在通信时,如果信道较宽,信息不必压缩就可以直接传递,而如果信道很窄,信息在传递前需要尽可能的压缩,然后在接收端进行解压缩。
6.词可以被认为是有限而且封闭的集合,而语言则是无限和开放的集合。

第二章 自然语言处理
1.任何一种语言都是一种编码的方式,而语言的语法规则则是编解码的算法。
2.图灵测试:让人和机器进行交流,如果人无法判断自己交流的对象是人还是机器,就说明这个机器有智能了。
3.自然语言处理:基于数学模型和统计的方法。
4.计算机高级程序语言都可以概括成上下文无关的文法,这是一个在算法上可以在多项式时间内解决的问题。
5.文法是比较复杂的上下文有关法,而程序语言是我们人为设计的,便于计算机解码的上下文无关文法。

第三章 统计语言模型
1.让计算机处理自然语言,一个基本的问题就是为自然语言这种上下文相关的特性建立数学模型。这个数学模型就是在自然语言处理中常说的统计语言模型。
2.一个句子是否合理,就看它的可能性大小如何,至于可能性就用概率来衡量。
3.词wn的出现概率取决于它前面的所有词。
4.马尔科夫假设:假设任意一个词wi出现的概率只同它前面的词wi-1有关。
(二元模型)
5.也可以假设一个词由前面的N-1个词决定,被称为N元模型。
6.要想让机器合成的答案读起来“通顺”,就必须采用语言模型了。
7.更普遍的假设是某个词和前面的若干个词有关。
8.使用语言模型需要知道模型中所有的条件概率,我们称之为模型的参数。
9.如何正确地训练一个语言模型:最直接的办法就是增加数据量。
10.如果用直接的比值计算概率,大部分条件概率依然是零。这种模型我们称之为“不平滑”。
11.训练统计语言模型的艺术就在于解决好统计样本不足时的概率估计问题。
12.古德-图灵估计原理:对于没有看见的事件,我们不能认为它发生的概率就是零,因此我们从概率的总量中,分配一个很小的比例给这些没有看见的事件。
13.Zipf定律:一般来说,出现一次的词的数量比出现两次的多,出现两次的比出现三次的多。
14.给未出现的词赋予了一个很小的非零值,同时下调了出现频率很低的词的概率。在实际的自然语言处理中,一般对出现次数超过某个阈值的词,频率不下调,只对出现次数低于这个阈值的词,频率才会下调,下调的频率总和给未出现的词。
15.对于频率超过一定阈值的词,它们的概率估计就是它们在语料库中的相对频度,对于频率小于这个阈值的词,它们的概率估计就小于它们的相对频率,出现次数越少的,折扣越多。对于未看见的词,也给予了一个比较小的概率。
16.卡茨退避法
17.用低阶语言模型和高阶模型进行线性插值来达到平滑的目的,这种方法称为删除差值。线性插值的效果比卡茨退避法略差,现在已经很少使用了。
18.在训练之前有时需要对训练数据进行预处理。

第四章 谈谈分词
1.最好的一种分词方法应该保证分完词后这个句子出现的概率最大。
2.穷举所有可能的分词方法并计算出每种可能下句子的概率,那么计算量是相当大的。可以看成是一个动态规划问题,并利用维特比算法快速地找到最佳分词。
3.在分词的同时,找到复合词的嵌套结构。
4.应用不同,汉语分词的颗粒度大小应该不同。在机器翻译中,颗粒度应该大一些。
5.识别手写体时,单词之间的空格就不清楚了。中文分词方法可以帮助判别英文单词的边界。
6.利用统计语言模型进行分词也不可能做到百分之百准确。因为统计语言模型很大程度上是依照“大众的想法”,或者“多数句子的用法”,而在特定情况下可能是错的。
7.当统计语言模型被广泛应用后,不同的分词器产生的结果的差异要远远小于不同人之间看法的差异。
8.人工分词产生不一致性的原因主要在于人们对词的颗粒度的认知问题。
10.在不同的应用中,会有一种颗粒度比另一种更好的情况。比如在机器翻译中,一般来讲,颗粒度大翻译效果好。在网页搜索中,小的颗粒度比大的颗粒度要好。
11.更好的做法是让一个分词器同时支持不同层次的词的切分。
首先需要一个基本词表和复合词表。基本词表包括无法再分的词,复合词表包含复合词以及它们有哪些基本词构成。接下来根据基本词表和复合词表各建立一个语言模型。然后根据基本词表和语言模型L1对句子进行分词,就得到了小颗粒度得到分词结果。这里面的字串是输入,词串是输出。最后,在此基础上,在用复合词表和语言模型L2进行第二次分词,这时输入的是基本词串,输出的是复合词串。词表和语言模型这两个数据库改变了,但是分词器(程序)本身和前面的完全相同。
12.分词的不一致性可以分为错误和颗粒度不一致两种。错误又分成两类,一类是越界错误,另一类是覆盖型错误。
13.数据挖掘一般是指从大量的数据中通过算法搜索隐藏于其中信息的过程。

第五章 隐含马尔可夫模型
1.隐含马尔可夫模型的训练方法:鲍姆韦尔奇算法。
2.隐含马尔可夫模型是马尔可夫链的一个扩展:任一时刻t的状态st都是不可见的。所以观察者设法通过观察到一个状态序列s1,s2,s3,…sT来推测转移概率等参数。但是,隐含马尔可夫模型在每个时刻t都会输出一个符号ot,而且ot跟st相关且仅跟st相关。这个被称为独立输出假设。隐含马尔可夫模型的结构中,隐含的状态s1,s2,s3…是一个典型的马尔可夫链。
3.P(s1,s2,s3…) 语言模型,P(s1,s2,s3,…|o1,o2,o3…)在语音识别中被称为“声学模型”,在机器翻译中是“翻译模型”,在拼写校正中是“纠错模型”。
4.隐含马尔可夫模型的三个基本问题:

  • 给定一个模型,如何计算某个特定的输出序列的概率;
  • 给定一个模板和某个特定的输出序列,如何找到最可能产生这个输出的状态序列;
  • 给定足够量的观测数据,如何计算隐含马尔可夫模型的参数。

5.第一个问题对应的算法是Forward-Backward算法。第二个问题可以用著名的维特比算法解决。
6.在利用隐含马尔可夫模型解决实际问题中,需要事先知道从前一个状态st-1进入当前状态st的概率P(st|st-1),即转移概率,和每个状态st产生相应输出符号ot的概率P(ot|st),也成为生成概率。这些概率被称为隐含马尔可夫模型的参数,而计算或估计这些参数的过程称为模型的训练。
7.有监督的训练的前提是需要大量人工标注的数据,这个成本非常高。训练隐含马尔科夫模型更实用的方法是仅仅通过大量观测到的信号o1,o2,o3,…就能推算模型的参数P(st|st-1)和P(ot|st)的方法,这种方法被称为无监督的训练方法。主要使用的是鲍母韦尔奇算法。
8.两个不同的隐含马尔科夫模型可以产生同样的输出信号,因此,仅仅通过观察到的输出信号来倒推产生它的隐含马尔可夫模型可能会得到很多个合适的模型,但是总会是一个模型Mθ2比另一个Mθ1更有可能产生观测到的输出。其中θ2和θ1是隐含马尔可夫模型的参数。鲍母韦尔奇算法就是来寻找这个最后可能的模型Mθ。
9.鲍母韦尔奇算法的思想:首先找到一组能够产生输出序列O的模型参数。现在,有了这样一个初始模型,我们称之为Mθ0,需要在此基础上找到一个更好的模型。假定解决了第一个问题和第二个问题,不但可以算出这个模型产生O的概率P(O|Mθ0),而且能够找到这个模型产生O的所有可能的路径以及这些路径的概率。这些可能的路径,实际上记录了每个状态经历了多少次,到达了哪些状态,输出了哪些符号,因此可以将它们看成是“标注的训练数据”,根据有关公式计算出一组新的模型参数θ1,从Mθ0到Mθ1的过程称为一次迭代。可以证明P(O|Mθ1)>P(O|Mθ0).接下来,我们从Mθ1出发,可以找到一个更好的模型Mθ2,并且不断地找下去,直到模型的质量不再有明显提高为止。
10.鲍母韦尔奇算法的每一次迭代都是不断地估计新的模型参数,使得输出的概率(我们的目标函数)达到最大化,因此这个过程被称为期望值最大化,简称EM过程。EM过程保证算法一定能收敛到一个局部最优点,很遗憾它一般不能找到全局最优点。因此,在一些自然语言处理的应用,比如词性标注中,这种无监督的鲍母韦尔奇算法训练出的模型比有监督的训练得到的模型效果略差,因为前者未必能收敛到全局最优点。但如果目标函数是凸函数(比如信息熵),则只有一个最优点,在这种情况下EM过程可以找到最佳值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值