隐马尔可夫模型

来源:互联网 发布:海湾设备现场编程 编辑:程序博客网 时间:2024/05/21 21:48

对隐马尔可夫模型的解释,个人觉得一句简单概括就是:在马尔可夫链的情况下对每一个状态都加入一个单独输出口,而我们把这个输出口定为可视窗口,可把马尔可夫链放到里面藏起来。ok!这样就是知道隐马尔可夫模型的结构了。


通过如下例子来说明HMM的含义。假定一个暗室中有N个口袋,每个口袋中有M种不同颜色的球,一个实验员根据某一概率分布随机地选取一个初始口袋,从中根据不同颜色的球的概率分布,随机地取出一个球,并向室外的人报告该球的颜色。然后,再根据口袋的概率分布选择另一个口袋,根据不同颜色的球的概率分布从中随机选择另一个球,重复进行这个过程,对于暗室外的人来说,可观察的过程只是不同颜色的球的序列,而口袋的序列是不可观察的。在这个过程中,每个口袋对应于HMM中的状态,球的颜色对应于HMM中状态的输出符号,从一个口袋转向另一个口袋对应于状态转换,从口袋中取出球的颜色对应于从一个状态输出的观察符号。


通过上例可以看出,一个HMM由如下几个部分组成:

(1) 模型中状态的数目N(上例中口袋的数目)

(2) 从每个状态可能输出的不同符号的数目M(上例中球的不同颜色的数目)

(3) 状态转移概率矩阵A={aij}(aij为实验员从一个口袋转向另一口袋取球的概率)



当考虑潜在事件随机地生成表面事件时,HMM是非常有用的,假设给定模型 u=(S,K,A,B,R),其中,S为状态集合;K为输出符号集合;R为初始状态概率分布;A为状态转移概率;B为符号发射概率。那么观察序列O=O1 O2 ...Ot 可以由下面的步骤直接产生:

(1) 根据初始状态的概率分布R选择一个初始状态q1 = si;

(2) 设置t=1

(3) 根据状态si 的输出概率分布bi(k) 输出Ot =vk

(4) 根据状态转移概率分布aij,将当前时刻t的状态转移到新的状态qt+1 = sj

(5) t=t+1,如果t<T,重复执行步骤(3) 和(4) ,否则,结束算法

0 0