5.2 多观测序列
在第4节我们讨论了左右HMM(Bakis模型),这种模型中状态按序从
t=1
时的状态1移动到
t−T
时的状态N。我们已经讨论了左右模型是怎么对状态转移矩阵施加约束的以及初始状态概率(45)-(48)。但是,左右模型的主要问题是不可能只用一个观测序列训练模型。这是因为模型中状态的瞬态性质允许状态被观察到有限几次,直到转移到后续状态。为了有足够的数据对模型参数进行可靠估计,我们必须使用多个观察序列。估计过程修改如下。我们定义
K
个观测序列为
其中
Ok=[Ok1Ok2⋯OkTk]
是第
k
个观测序列。我们假设每个观测序列和其他所有的观测序列之间是独立的,并且我们的目的是调整模型参数
P(O|λ)=∏k=1KP(Ok|λ)=∏k=1KPk,(107)(108)
其中 Pk 是每个序列的概率,可以通过前向算法进行计算。
现在
γkt(i)=P(qkt=Si|O,λ)=P(qkt=Si|O,λ)=αkt(i)βkt(i)P(Ok|λ)=αkt(i)βkt(i)Pk
ξkt(i,j)=P(qkt=Si,qkt+1=Sj|O,λ)=P(qkt=Si,qkt+1=Sj|Ok,λ)=αkt(i)aijbj(Okt+1)βkt+1(j)P(Ok,λ)=αkt(i)aijbj(Okt+1)βkt+1(j)Pk
在参数估计表达式中,对单观测序列,分子分母中的 P(O|λ) 项可以被消掉;但是对于多观测序列是没法消掉的。
于是修改后的估计公式为
aij¯=∑Kk=1∑Tk−1t=1ξkt(i,j)∑Kk=1∑Tk−1t=1γkt(i)=∑Kk=11Pk∑Tk−1t=1αkt(i)aijbj(Okt+1)βkt+1(j)∑Kk=11Pk∑Tk−1t=1αkt(i)βkt(i)(109)
bj¯(l)=∑Kk=1∑Tkt=1,Okt=vlγkt(i)∑Kk=1∑Tkt=1γkt(i)=∑Kk=11Pk∑Tkt=1,Ot=vlαkt(i)βkt(i)∑Kk=11Pk∑Tkt=1αkt(i)βkt(i)(110)
πi 不需要重新估计,因为 π1=1,πi=0,i≠1 。
(109)-(110)在实际中是不可行的,因为我们没有进行放大。进行放大后的估计公式为:
aij¯=∑Kk=11Pk∑Tk−1t=1[α^kt(i)aijbj(Okt+1)β^kt+1(j)]/CkT∑Kk=11Pk∑Tk−1t=1[α^kt(i)β^kt(i)]/(cktCkT)=∑Kk=1∑Tk−1t=1α^kt(i)aijbj(Okt+1)β^kt+1(j)∑Kk=1∑Tk−1t=1α^kt(i)β^kt(i)/ckt(111a)
里用到了 PkCkT=1 。通过放大, Pk 项也被消掉了。对 b¯j(l) 也有类似的结果。