Hidden Markov Models Forward Backward算法


        Hidden Markov Models 的问题3是给定一个HMMs的模型和一个输出观察序列O,如何调整模型的参数使得产生这一序列的概率最大?我理解这就是一个机器学习的问题,因为有时候HMMs的模型我们是不知道的,我们随机得到一个初始的,通过训练数据进行HMMs模型的参数调整,最终学习出一个局部最优的HMMs(无法得到全局的最优,只能得到局部的最优)。解决的算法是Baum-Welch(即Forward Backward算法)。

        在介绍Forward Backward算法之前,先介绍一下Backward算法。

        1. Backward算法

        定义backward变量,定义为在t时刻状态为的条件下,局部观察序列的概率。

       

        t时刻与t+1时刻,backward变量关系如图1所示 :

  Hidden Markov Models Forward Backward算法_第1张图片图1

        第一步:初始化,

        第二步:归    纳,

        第三步:结    果,

        其实backward与forward非常类似。

        2. Forward Backward算法

        定义变量 ,定义为在给定HMMs模型和观察序列O的条件下,t时刻状态为的概率;

       

        定义变量,定位为在给定HMMs模型和观察序列O的条件下,t时刻状态为,t+1时刻状态为的概率。如图2所示:

        Hidden Markov Models Forward Backward算法_第2张图片图2

         

                  

        这2个变量的关系为

        从状态转移过来的期望数是多少;

        从状态转移到的期望数是多少;


        重新评估HMMs的参数为:

        ,expected frequency in state  at time t=1;

        ,expected number of transitions from  to state expected number of transitions from state

        ,expected number of times in state j and observing symbol expected number of times in state j;

        同时不要忘记了,新的参数的限制

       

       

        

        HMMs的模型参加进行了重新的评估后,计算,例如threshold定义为0.001,如果大于,就继续归纳,否则就是收敛。

        建议,去读一下 UMDHMM的代码,这样对Forward Backward的算法就有了解了。

          

Reference: LAWRENCE R. RABINER, A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition

你可能感兴趣的:(Machine,Learning)