【NLP】揭秘马尔可夫模型神秘面纱系列文章(五)

本文涉及的产品
NLP自然语言处理_高级版,每接口累计50万次
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_基础版,每接口每天50万次
简介: 向前向后算法解决隐马尔可夫模型机器学习问题 作者:白宁超 2016年7月12日14:28:10 摘要:最早接触马尔可夫模型的定义源于吴军先生《数学之美》一书,起初觉得深奥难懂且无什么用场。直到学习自然语言处理时,才真正使用到隐马尔可夫模型,并体会到此模型的妙用之处。

向前向后算法解决隐马尔可夫模型机器学习问题

作者:白宁超

2016年7月12日14:28:10

摘要:最早接触马尔可夫模型的定义源于吴军先生《数学之美》一书,起初觉得深奥难懂且无什么用场。直到学习自然语言处理时,才真正使用到隐马尔可夫模型,并体会到此模型的妙用之处。马尔可夫模型在处理序列分类时具体强大的功能,诸如解决:词类标注、语音识别、句子切分、字素音位转换、局部句法剖析、语块分析、命名实体识别、信息抽取等。另外广泛应用于自然科学、工程技术、生物科技、公用事业、信道编码等多个领域。本文写作思路如下:第一篇对马尔可夫个人简介和马尔科夫链的介绍;第二篇介绍马尔可夫链(显马尔可夫模型)和隐马尔可夫模型以及隐马尔可夫模型的三大问题(似然度、编码、参数学习);第三至五篇逐一介绍三大问题相关算法:(向前算法、维特比算法、向前向后算法);最后非常得益于冯志伟先生自然语言处理教程一书,冯老研究自然语言几十余载,在此领域别有建树。本文原创,转载注明出处向前向后算法解决隐马尔可夫模型机器学习问题  )

目录


【自然语言处理:马尔可夫模型(一)】:初识马尔可夫和马尔可夫链

【自然语言处理:马尔可夫模型(二)】:马尔可夫模型与隐马尔可夫模型

【自然语言处理:马尔可夫模型(三)】:向前算法解决隐马尔可夫模型似然度问题

【自然语言处理:马尔可夫模型(四)】:维特比算法解决隐马尔可夫模型解码问题(中文句法标注)

【自然语言处理:马尔可夫模型(五)】:向前向后算法解决隐马尔可夫模型机器学习问题

马尔可夫个人简介


安德烈·马尔可夫,俄罗斯人,物理-数学博士,圣彼得堡科学院院士,彼得堡数学学派的代表人物,以数论和概率论方面的工作著称,他的主要著作有《概率演算》等。1878年,荣获金质奖章,1905年被授予功勋教授称号。马尔可夫是彼得堡数学学派的代表人物。以数论和概率论方面的工作著称。他的主要著作有《概率演算》等。在数论方面,他研究了连分数和二次不定式理论 ,解决了许多难题 。在概率论中,他发展了矩阵法,扩大了大数律和中心极限定理的应用范围。马尔可夫最重要的工作是在1906~1912年间,提出并研究了一种能用数学分析方法研究自然过程的一般图式——马尔可夫链。同时开创了对一种无后效性的随机过程——马尔可夫过程的研究。马尔可夫经多次观察试验发现,一个系统的状态转换过程中第n次转换获得的状态常取决于前一次(第(n-1)次)试验的结果。马尔可夫进行深入研究后指出:对于一个系统,由一个状态转至另一个状态的转换过程中,存在着转移概率,并且这种转移概率可以依据其紧接的前一种状态推算出来,与该系统的原始状态和此次转移前的马尔可夫过程无关。马尔可夫链理论与方法在现代已经被广泛应用于自然科学、工程技术和公用事业中。

 1 向前向后算法概述


向前向后算法解决:问题3(学习问题):给定一个观察序列O和一个HMM中的状态集合,自动学习HMM的参数A和B。

此算法涉及机器学习,较为复杂,笔者不打算深入讲解,感兴趣的同学可以参考冯志伟《自然语言处理简明教程》P594—602,本文只是做为了解方面讲解。

鲍姆-韦尔奇算法(Baum-Welch algorithm):训练HMM的标准算法是向前向后算法,这是期望最大化算法或者叫鲍姆-韦尔奇算法,这个算法帮助我们训练HMM的转移概率B和发射概率A。

鲍姆-韦尔奇算法思路:

(1)    反复的估计所得的计数,从转移概率和观察概率的一个估计值开始,反复的使用这些估计概率来推出越来越好的概率。

(2)    对于一个观察,计算它向前概率,从而得到我们估计的概率。然后把这个估计的概率量,在对于这个向前概率有贡献的所有不同路径上进行分摊。

向后概率:向后概率记住 β是对于给定自动机 λ,在状态i和时刻t观察下一个时刻t+1到终点的观察概率,用公式表示如下:

 

计算向前概率相似的归纳法来计算向后概率:

2 向后归纳的步骤


 

3 计算在时刻t和状态j的向后概率:公式较多,采用笔记如下


 

4 算法推导过程:公式较多,笔记如下


 

 5 迭代向前向后算法核心:

 

6 参考文献


【1】统计自然语言处理基础  Christopher.Manning等 著    宛春法等 译

【2】自然语言处理简明教程  冯志伟 著

【3】数学之美  吴军 著

【4】Viterbi算法分析文章  王亚强

声明:关于此文各个篇章,本人采取梳理扼要,顺畅通明的写作手法。一则参照相关资料二则根据自己理解进行梳理。避免冗杂不清,每篇文章读者可理清核心知识,再找相关文献系统阅读。另外,要学会举一反三,不要死盯着定义或者某个例子不放。诸如:此文章例子冰淇淋数量(观察值)与天气冷热(隐藏值)例子,读者不免问道此有何用?我们将冰淇淋数量换成中文文本或者语音(观察序列),将天气冷热换成英文文本或者语音文字(隐藏序列)。把这个问题解决了不就是解决了文本翻译、语音识别、自然语言理解等等。解决了自然语言的识别和理解,再应用到现在机器人或者其他设备中,不就达到实用和联系现实生活的目的了?本文原创,转载注明出处向前向后算法解决隐马尔可夫模型机器学习问题 

http://www.cnblogs.com/baiboy
相关文章
|
机器学习/深度学习 自然语言处理 Java
|
机器学习/深度学习 自然语言处理 算法
一篇很好的参考文章:深度学习算法在自然语言处理中的一些心得
对于初涉深度学习的初学者,本文作者根据自己的学习经验,分享了自己的学习笔记,是一份很好的关于深度学习的学习参考
10878 0
|
自然语言处理 算法 语音技术
【NLP】揭秘马尔可夫模型神秘面纱系列文章(一)
初识马尔可夫和马尔可夫链 作者:白宁超 2016年7月10日20:34:20 摘要:最早接触马尔可夫模型的定义源于吴军先生《数学之美》一书,起初觉得深奥难懂且无什么用场。直到学习自然语言处理时,才真正使用到隐马尔可夫模型,并体会到此模型的妙用之处。
1332 0
|
3天前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术在自然语言处理中的应用
【9月更文挑战第17天】本文主要介绍了AI技术在自然语言处理(NLP)领域的应用,包括文本分类、情感分析、机器翻译和语音识别等方面。通过实例展示了AI技术如何帮助解决NLP中的挑战性问题,并讨论了未来发展趋势。
|
8天前
|
机器学习/深度学习 数据采集 人工智能
AI技术在自然语言处理中的应用与挑战
【9月更文挑战第12天】本文将探讨AI技术在自然语言处理(NLP)领域的应用及其面临的挑战。我们将介绍NLP的基本概念、主要任务和应用场景,并分析当前AI技术在NLP中的局限性和未来发展趋势。通过实际案例和代码示例,我们将展示AI技术如何帮助解决NLP问题,并探讨如何克服现有挑战以实现更高效的自然语言处理系统。
|
24天前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术在自然语言处理中的应用与挑战
【8月更文挑战第28天】本文将探讨AI技术在自然语言处理(NLP)领域的应用及其面临的挑战。我们将通过实例和代码示例,展示AI如何帮助机器理解和生成人类语言,并讨论在这一过程中遇到的主要问题和可能的解决方案。
|
25天前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术在自然语言处理中的应用
【8月更文挑战第27天】本文将探讨人工智能技术在自然语言处理领域的应用,包括语音识别、机器翻译、情感分析等方面。我们将通过实例展示AI如何改变我们与计算机的交互方式,并讨论其在未来发展的潜力。
|
26天前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术在自然语言处理中的应用与挑战
【8月更文挑战第26天】本文将探讨AI技术在自然语言处理(NLP)领域的应用和面临的挑战。我们将通过实例分析,展示AI如何帮助机器理解和生成人类语言,并讨论当前技术的局限性和未来发展的可能性。
|
28天前
|
人工智能 自然语言处理 语音技术
AI在自然语言处理中的应用
【8月更文挑战第24天】人工智能(AI)已经渗透到我们生活的方方面面,其中自然语言处理(NLP)是AI的一个重要应用领域。本文将介绍NLP的基本概念,以及AI如何帮助计算机理解和生成人类语言。我们将通过一个简单的代码示例,展示如何使用Python和NLTK库进行文本分析。
|
30天前
|
机器学习/深度学习 人工智能 自然语言处理
探索机器学习在自然语言处理中的应用
【8月更文挑战第22天】本文将深入探讨机器学习技术如何革新自然语言处理领域,从基础概念到高级应用,揭示其背后的原理和未来趋势。通过分析机器学习模型如何处理、理解和生成人类语言,我们将展示这一技术如何塑造我们的沟通方式,并讨论它带来的挑战与机遇。