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

来源:互联网 发布:linux命令行测试网速 编辑:程序博客网 时间:2024/05/16 15:43

 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算法分析文章  王亚强

0 0
原创粉丝点击