隐含马尔可夫模型是一个数学模型,它被认为是解决大多数天然语言处理问题最为快速、有效的方法。它成功的解决了复杂的语音识别、机器翻译等问题。算法
人类信息交流的发展贯穿了人类的进化和文明的全过程。而天然语言是人类交流信息的工具,语言和通讯的联系是自然的。通讯的本质就是一个编解码和传输的过程。当天然语言处理的问题回归到通讯系统中的解码问题时,不少问题都迎刃而解了。框架
所谓语音识别,就是听话的人去猜想说话者要表达的意思。这就像通讯中,根据接收端收到的信号去分析、理解、还原发送端传送过来的信息。咱们平时在说话时,脑子就是一个信息源,声带、空气,就像电线和光缆般的信道。听众的耳朵就是接收器,而听到的声音就是传送过来的信号。根据声学信号来推测说话者的意思,就是语音识别。几乎全部的天然语言处理问题均可以等价成通讯的解码问题。工具
隐含马尔可夫模型并非19世纪俄罗斯数学家马尔可夫发明的,而是美国数学家鲍姆等人在20世纪六七十年代发表的一系列论文中提出的,隐含马尔可夫模型的训练方法(鲍姆-韦尔奇算法)也是以他的名字命名的。人工智能
要介绍隐含马尔可夫模型,还要从马尔可夫链提及。到了19世纪,几率论的发展从对(相对静态的)随机变量的研究发展到对随机变量的时间序列,即随机过程(动态的)的研究。这在哲学的意义上,是人类认识的一个飞跃。可是,随机过程要比随机变量复杂得多。由于随机过程可能有多个纬度的不肯定性。spa
马尔可夫为了简化问题,提出了一种简化的假设,即随机过程当中各个状态的几率分布,只与它的前一个状态有关。好比,对于天气预报,硬性假定今天的气温只与昨天有关而和前天无关。固然这种假设未必适合全部的应用,可是至少对之前不少很差解决的问题给出了近似解。这个假设后来被命名为马尔可夫假设,而符合这个假设的随机过程则称为马尔可夫过程,也称为马尔可夫链。翻译
隐含马尔可夫模型是马尔可夫链的一个扩展:任一时刻t的状态是不可见的。因此观察者无法经过观察到一个状态序列s来推测转移几率等参数。可是,隐含马尔可夫模型在每一个时刻t会输出一个符号o,并且o和s有关且仅和s有关。这个被称为独立输出假设。鲍姆把这种模型称为“隐含”马尔可夫模型。orm
隐含马尔可夫模型成功的应用最先是语音识别。20世纪70年代,卡内基-梅隆大学毕业的贝克夫妇,提出用隐含马尔可夫模型来识别语音,语音识别的错误率相比人工智能和模式匹配等方法下降三分之二。20世纪80年代末,李开复博士坚持采用隐含马尔可夫模型的框架,成功开发了世界上第一个大词汇量连续语音识别系统Sphinx。接下来,隐含马尔可夫模型陆续成功地应用于机器翻译、拼写纠错、手写体识别、图像处理、基因序列分析等不少IT领域,近20年来,它还普遍应用于股票预测和投资。开发