隐马尔科夫模型(二)

来源:互联网 发布:汉字手写输入法软件 编辑:程序博客网 时间:2024/05/10 06:01

本文主要针对隐马尔科夫模型的第一个基本问题展开讨论。问题是:给定一个模型λ,我们希望估计任意给定观测变量序列O=O1O2....OT的概率。

分析:我们是要估计P(O|λ),我们加入状态序列Q,那么就可以得到

P(O|λ)=QP(O,Q|λ)(1)

同时我们知道
P(O,Q|λ)=P(O|Q,λ)P(Q|λ)
,显然等式的右边是容易知道的,但是问题是对于所有的Q求和,这是相当麻烦的。因此,我们使用正反向过程来求解。


我们定义如下的正向变量αt(i),

αt(i)=P(O1,O2,...,Ot,Qt=Si|λ)(2)

同时,我们可以通过迭代的方式得到求解αt(i)的方法。
αt(i)=jαt1(j)ajibj(Ot)(3)

那么类似于公式一,我们有
P(O|λ)=SiP(O,qT=Si|λ)=iαT(i)


我们也定义反向过程βt(i)如下:
βt(i)=P(Ot,...,OT|qt=Si,λ)

它的解释就是在给定第t时刻的状态为Si,那么从第t时刻到第T时刻的观测序列概率。同样我们也可以给出bt(i)的迭代求法,如下
βt(i)=jaijbj(Ot)βt+1(j)(4)

类似于式(1),我们有
P(O|λ)=SiP(O1,...OT|q1=Si,λ)P(q1=Si|λ)=iβ1(i)πi


观察式3和式4,都相当于两层的for循环,每一层都是N,故为O(N2),但是这是有观测值O是有T个元素,故总体时间复杂度为O(TN2)

待续。。。

0 0
原创粉丝点击