本文主要解决隐马尔科夫模型基本问题三。给定观测序列组成的训练集,也就是多个观测序列,对模型λ进行估计,使得产生这个训练集的概率最大化,也就是最大似然估计。
首先我们先明确一下所使用的符号:
S={S1,...,SN} 表示模型的状态,一共有N个
V={vi,...vM} 表示不同的观测符号,一共有M个
Ok=Ok1...OkT 表示第k个观测序列,序列长度为 T
Qk=qk1...qkT 表示第k个观测序列所对应的状态序列χ={Ok}k=1,...,K ,表示观测序列集,我们假设有 K 个观测序列.
Z={Qk}k=1,...,K ,表示状态序列集λ={A,B,Π} ,其中 A 表示状态转移矩阵,
B 表示状态与观测值之间的条件概率, Π 表示初试状态概率
我们用公式来表示问题三就是求
λ∗
,使得
λ∗=argmaxλP(χ|λ)
我们运用EM算法来求解。但是我们并不在此多解释EM算法的由来,所以我们直接写出E-步和M-步。
E-step
W(λ,λs)=∑Zlog[P(χ,Z|λ)]P(Z|χ;λs)
M-step
λs+1=argmaxλW(λ,λs)
我们首先对E-步的式子进行等价变化
W(λ,λs)=∑Zlog[P(χ,Z|λ)]P(Z,χ|λs)(1)
然后我们推导出
[P(χ,Z|λ)]=∏k=1KP(Ok,Qk|λ)
P(Ok,Qk|λ)=πqk1bqk1(Ok1)∏t=2Taqkt−1qktbqkt(Okt)
然后,我们取对数,代入公式(1),我们可得下式
W(λ,λs)=∑Z∑k=1Klogπqk1+∑Z∑k=1K∑t=2Tlogaqkt−1qkt+∑Z∑k=1K∑t=1Tlogbqkt(Okt)
这样,我们把 λ 的三个参数分开写,加上如下的约束条件
⎧⎩⎨⎪⎪⎪⎪∑Mi=1=1∑Mj=1aij=1,i=1,...,M∑Nj=1bi(j)=1,i=1,...,M
针对每个参数进行求导,然后令其等于零,我们得到如下的表达式
πi=1K∑k=1KP(qk1=i|χ,λs)
aij=∑Kk=1∑Tt=2P(qkt−1=i,qdt=j|χ,λs)∑Kk=1∑Tt=2P(qkt−1=i|χ,λs)
bi(j)=∑Kk=1∑Tt=1P(qkt=i|χ,λs)I(Okt=j)∑Kk=1∑Tt=1P(qkt=i|χ,λs)
那么剩下的问题就是求解如下两个式子
ξt(i,j)=P(qt=Si,qt+1=Sj|O,λ)=αt(i)aijbj(Ot+1)βt+1(j)∑k∑lαt(k)aklbl(Ot+1)βt+1(l)
γt(i)=P(qt=Si|O,λ)=∑j=1Nξt(i,j)
其中的 α , β 的求解参见隐马尔科夫模型(一)