HMM经典介绍论文【Rabiner 1989】翻译(八)——学习问题

3.3 问题3的求解(学习问题)

HMM的第三个问题——学习问题是最困难的一个,需要通过最大化观测序列的概率来调整模型参数 (A,B,π) 。暂时还没有解析法来解决这个问题。事实上,给定一个有限观测序列作为训练数据,并不存在最优方法得到模型参数。但是,我们可以通过迭代法比如Baum-Welch算法(其实就是EM算法),或者使用梯度法,选择使得 P(O|λ) 局部最大的 λ=(A,B,π) 。这一节,我们讨论选择模型参数的一个迭代方法,这个方法主要基于Baum和他同事的经典工作。

为了描述HMM参数估计过程,首先定义给定模型和观测序列的条件下,时刻 t 的状态为Si t+1 的状态为 Sj 的概率为 ξt(i,j)

ξt(i,j)=P(qt=Si,qt+1=Sj|O,λ).(36)

(36)的计算结构如图6所示。显然,根据前向变量和后向变量的定义,我们可以得到

ξt(i,j)=αt(i)aijbj(Ot+1)βt+1(j)P(O|λ)=αt(i)aijbj(Ot+1)βt+1(j)Ni=1Nj=1αt(i)aijbj(Ot+1)βt+1(j).(37)

我们前面已经定义了给定模型和状态序列的条件下,时刻 t 的状态为Si的概率为 γt(i) 。通过在 j 上求和,有

γt(i)=j=1Nξt(i,j).(38)

如果对 γt(i) t 上求和,得到的和可以理解为状态Si出现次数的期望值,如果去掉 t=T 项,那么得到的和可以理解为从状态 Si 进行转移的期望次数。类似地,在 t 上(从t=1 t=T1 )对 ξt(i,j) 进行求和得到的结果可以理解为从状态 Si 转移到 Sj 次数的期望值。即

t=1T1γt(i)=Si(39a)

t=1T1ξt(i,j)=SiSj.(39b)

利用上面的公式,我们可以给出估计HMM参数的方法。对 π,A,B 合理的估计可以是

πi¯=t=1Si=γt(i)(40a)

aij¯=SiSjSi=T1t=1ξt(i,j)T1t=1γt(i)(40b)

bj¯(k)=SjvkSj=Tt=1,Ot=vkγt(j)Tt=1γt(j).(40c)

如果我们定义当前模型为 λ=(A,B,π) ,并且用它来计算(40a)-(40c)右边的表达式,然后定义新模型为 λ¯=(A¯,B¯,π¯) ,即(40a)-(40c)左边的部分,Baum和他同事证明了1)初始模型 λ 定义了似然函数的临界点;2)模型 λ¯ λ 更好,因为 P(O|λ¯)>P(O|λ) ,即我们找到了新模型 λ¯ ,更有可能生成观测序列。

基于上面的步骤,如果我们迭代地更新 λ λ¯ ,那么 P(O|λ) 会不断增加,知道到达某个极限值。这个过程的结果称为HMM的极大似然估计。注意,前向-后向算法得到的是局部最大值,在大多数问题中,优化表面是非常复杂的并且有很多局部最大值。

更新公式(40a)-(40c)也可以通过最大化Baum的辅助函数推导出来:

Q(λ,λ¯)=QP(Q|O,λ)log[P(O,Q|λ¯)].(41)

Baum和他同事证明了最大化 Q(λ,λ¯) 可以增加似然,即

maxλ¯[Q[λ,λ¯]]=>P(O|λ¯)P(O|λ).(42)

最终似然函数会收敛到一个临界点。

上面的估计公式可以理解为EM算法的具体实现,其中E步是计算辅助函数 Q(λ,λ¯) ,M步是最大化 Q(λ,λ¯) 。于是,Baum-Welch估计方程本质上等价于EM算法的具体实现。

估计过程重要的一个方面是,HMM参数的随机约束,即

i=1Nπ¯i=1(43a)

j=1Na¯ij=1,1iN(43b)

k=1Mb¯j(k)=1,1jN(43c)

在每次迭代时是自动满足的。通过把参数估计问题看作一个带约束的优化问题,可以用拉格朗日乘子法来得到使 P P=P(O|λ))最大的 πi,aij,bj(k) 值。通过标准拉格朗日优化,可以知道当

πi=πiPπiNk=1Pπk(44a)

aij=aijPaijNk=1aikPaik(44b)

bj(k)=bj(k)Pbj(k)Ml=1bj(l)Pbj(l)(44c)

时, P 是最大的。通过计算,可以发现公式(44)右边的表达式其实就是(40)右边的表达式。所以,估计公式实际上就是P的临界点。

最后,我们注意到由于整个问题可以看作一个优化问题,标准的梯度算法也可以用于求模型参数的最优值。这种方法的结果可以和标准估计过程媲美。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值