码迷,mamicode.com
首页 > 其他好文 > 详细

隐马尔可夫模型和隐含马尔可夫模型的训练

时间:2015-10-05 16:48:02      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

概率论的发展从(相对静态的)随机变量到相对动态的随机过程应该是个很大的飞跃吧!

所谓随机过程,就是随着时间的变化状态转移的过程。

也就是说每一个时刻都对应着一个状态。(这个时刻的)状态到(下一个时刻的)状态的改变的过程,就是(随机)过程。

所谓随机是指,某一个时刻的状态是不能够确切的知道的(动态的,随机的)所以说是随机的。

马尔可夫链(马尔可夫)就是根据随机过程提出的一种假设

那么他是怎么假设的呢?

该过程中,在给定当前知识或信息的情况下,过去(即当前以前的历史状态)对于预测将来(即当前以后的未来状态)是无关的

技术分享
隐含马尔可夫模型(HMM)
技术分享

 技术分享

根据输出的m1,m2,m3....来找到最合适的s1,s2,s3.....(这个过程也称为解码)

(s1,s2,代表“1”时刻的状态,“2”时刻的状态,这是个概括,具体时刻的状态是什么,有个能是m1,m2,m3,m4。。的其中一个)

举个例子,比如有好多个袋子,袋子里有许多不同颜色球,并且每个袋子里球的颜色的概率分布是不同的。

现在随意选择一个袋子,初始状态概率,从袋子里选择一个球,记录颜色,这个颜色就是表现出来的(m1,m2,m3,m4)状态,所选择的袋子就相当于的s1(si)

比如,红色m1,黄色m2,蓝色m3,绿色m4,第一次选择的是红色m1,那么p(m1|s1)  就是发射概率(生成概率)p(mi|si).

下一次又随意选择了一个袋子s2,从中任意摸出一个球m2,p(s2|s1)就是状态转移概率p(si|si-1

这两个参数就是马尔可夫模型的参数,估计和计算这两个参数的过程称之为模型的训练,挺可爱的名字吧~

我又想了下HMM和马尔可夫的区别(也成可视马尔可夫,和隐含是反义词)

见文思意,可视马尔可夫指的是,状态转移的过程是可视的,可以知道的,上面的例子就是说从一个袋子到下一个袋子,选择哪一个袋子是知道的(官方一点,状态转移序列,状态转移过程是知道的),

而HMM是不知道选择的是哪一个袋子,HMM知道的只是,具体什么颜色m1,m2,m3,m4..

我们只能通过看到球的颜色来推测S1,S2,S3....选择了哪一个袋子(解码,前面那个图片倒着推)

换一句话说,我们只能通过看到球的颜色来推测(A状态转移概率p(si|si-1),B发射概率(生成概率)p(mi|si),C初始状态概率)

重申一下recap,A,B被称为HMM的参数,估计和计算这两个参数的过程称之为模型的训练

先说一下,围绕HMM模型有3个基本问题

1,求观察序列(给定一个模型(A,B,C),求特定的输出序列(m1,m2...))

2,给定(A,B,C)和1观察序列,求S1,S2,S3...

3,估计HMM参数(模型的训练

1,用Forward-BarkWard算法可以解决

2,用 维特比算法可以解决

3,用鲍牧-韦尔奇算法

我们这次讨论3,3,用鲍牧-韦尔奇算法

鲍牧-韦尔奇算法,

首先找到一租能够产生输出序列O的模型参数,称为M0,(显然是存在这个模型的,因为转移概率和输出概率是均匀分布的,模型可以产生任何输出O)

接着我们要找一个更好的模型M1,假设解决了

1,求观察序列(给定一个模型(A,B,C),求特定的输出序列(m1,m2...))

2,给定(A,B,C)和1观察序列,求S1,S2,S3...

不但可以算出这个模型产生O的概率P(O|M0),而且可以根据这个模型产生O的所有可能的路径(记录了每个状态经过多少次si,到达了哪些状态si+1,输出了哪些符号O),以及这些路径的概率,由此就可以知道发射概率和转移概率了,这两个参数构成了另一个称为新的模型M1。

可以证明P(O|M1)>P(O|M0)

接着从M1,出发找到一个更好的模型M2,一直找到模型的质量不再提高为止,这个算法每一次都是不断的估计,使得输出概率最大化,这个过程称为期望最大化EM。

哎,,,,就说这么多,剩下的下次再说(EM,维特比,和Forward-BarkWard)。

这些都是自己想的,不知道对不对,希望指正。

 

隐马尔可夫模型和隐含马尔可夫模型的训练

标签:

原文地址:http://www.cnblogs.com/ldphoebe/p/4853809.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!