3.3 问题3的求解(学习问题)
HMM的第三个问题——学习问题是最困难的一个,需要通过最大化观测序列的概率来调整模型参数 (A,B,π) 。暂时还没有解析法来解决这个问题。事实上,给定一个有限观测序列作为训练数据,并不存在最优方法得到模型参数。但是,我们可以通过迭代法比如Baum-Welch算法(其实就是EM算法),或者使用梯度法,选择使得 P(O|λ) 局部最大的 λ=(A,B,π) 。这一节,我们讨论选择模型参数的一个迭代方法,这个方法主要基于Baum和他同事的经典工作。
为了描述HMM参数估计过程,首先定义给定模型和观测序列的条件下,时刻
t
的状态为
(36)的计算结构如图6所示。显然,根据前向变量和后向变量的定义,我们可以得到
我们前面已经定义了给定模型和状态序列的条件下,时刻
t
的状态为
如果对
γt(i)
在
t
上求和,得到的和可以理解为状态
利用上面的公式,我们可以给出估计HMM参数的方法。对
π,A,B
合理的估计可以是
如果我们定义当前模型为 λ=(A,B,π) ,并且用它来计算(40a)-(40c)右边的表达式,然后定义新模型为 λ¯=(A¯,B¯,π¯) ,即(40a)-(40c)左边的部分,Baum和他同事证明了1)初始模型 λ 定义了似然函数的临界点;2)模型 λ¯ 比 λ 更好,因为 P(O|λ¯)>P(O|λ) ,即我们找到了新模型 λ¯ ,更有可能生成观测序列。
基于上面的步骤,如果我们迭代地更新 λ 为 λ¯ ,那么 P(O|λ) 会不断增加,知道到达某个极限值。这个过程的结果称为HMM的极大似然估计。注意,前向-后向算法得到的是局部最大值,在大多数问题中,优化表面是非常复杂的并且有很多局部最大值。
更新公式(40a)-(40c)也可以通过最大化Baum的辅助函数推导出来:
Baum和他同事证明了最大化
Q(λ,λ¯)
可以增加似然,即
最终似然函数会收敛到一个临界点。
上面的估计公式可以理解为EM算法的具体实现,其中E步是计算辅助函数 Q(λ,λ¯) ,M步是最大化 Q(λ,λ¯) 。于是,Baum-Welch估计方程本质上等价于EM算法的具体实现。
估计过程重要的一个方面是,HMM参数的随机约束,即
在每次迭代时是自动满足的。通过把参数估计问题看作一个带约束的优化问题,可以用拉格朗日乘子法来得到使
P
(
时,
P
是最大的。通过计算,可以发现公式(44)右边的表达式其实就是(40)右边的表达式。所以,估计公式实际上就是
最后,我们注意到由于整个问题可以看作一个优化问题,标准的梯度算法也可以用于求模型参数的最优值。这种方法的结果可以和标准估计过程媲美。