HMM之Baum-Welch算法

来源:互联网 发布:跟淘宝供销平台一样 编辑:程序博客网 时间:2024/05/16 06:13

注:本文中所有公式和思路来自于邹博先生的机器学习升级版,我只是为了加深记忆和理解写的本文。


前面介绍过了HHM模型结构和HMM基本问题中的概率计算问题,本文介绍HMM基本问题中的参数学习问题。


如果训练数据包括观测序列和状态序列,则HMM的学习非常简单,是监督学习,如果只有观测序列的话,那么HMM的学习是需要使用EM算法的,是非监督学习。


监督学习:


根据大数定理(频率的极限是概率),我们可以轻易的得出下边的这几个结论:

初始概率:


转移概率:


观测概率:


上边给出的上个结论可以直接从给定的数据中数出来,没有任何难度。



非监督学习:


我们回顾一下EM算法的框架吧:


所有的观测数据写成:O=(o1,o2...oT),所有隐数据写成:I=(i1,i2...iT),完全数据:(O,I)=(o1,o2..oT,i1,i2...iT),完全数据的对数似然函数是:lnP(O,I | λ)

假设λ~是HMM参数的当前估计值,λ是待估计的参数:


我们回顾一下EM的过程:首先需要一个预先给定的λ~参数,然后带入P(I | O, λ~),然后将P(I | O, λ~)带入Q(λ,λ~)中,对对数似然函数lnP(O,I | λ)求期望,找到能使似然函数期望最大的新的λ~,并将新的λ~再次带回P(I | O, λ~),不断重复这个过程。


我们在前一篇文章中提到过暴力求解,并得到了最终的求解公式:



Q()函数可以写成:


既然是要极大化Q,求得参数π、A、B

由于这三个参数分别在这三个项中,那么我们就可以分别极大化。


极大化初始概率:


因为πi满足加和为1,那么我们就可以利用拉格朗日乘子法:


接着对π求偏导:


接着我们可以对i求和:


最后将γ代回去得:


注意:这个γ不是超参数的γ,而是我们之前求过的这么个小东西:


极大化转移概率和观测概率:


使用拉格朗日乘子法:


同理可得:



这几个结果就是可以直接写代码的,学习问题解决了,就剩最后一个预测问题了,下一篇文章就会介绍Viterbi算法。


0 0
原创粉丝点击