HMM模型

来源:互联网 发布:const javascript 编辑:程序博客网 时间:2024/04/30 19:50

(一)基本概念

1.隐马尔科夫模型(Hidden Markov Model,HMM):关于时序的概率模型;描述由一个隐藏的马尔科夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程;

(1)状态序列:HMM生成的状态的序列,称为状态序列;

(2)观测序列:每个状态生成一个观测,而由此产生的观测的随机序列,称为观测序列;

(3)序列的每一个位置又可以看作是一个时刻;

2.例子:

(1)假设有4个盒子,每个盒子里都装有红白两种颜色的球,盒子里的红白求数由下表列出:


(2)按照下面的方法抽球,产生一个球的颜色的观测序列:开始从4个盒子里以等概率随机选取1个盒子,从这个盒子里随机抽出1个球,记录其颜色后,放回;然后,从当前盒子随机转移到下一个盒子,转移的规则是:

如果当前盒子是盒子1,那么下一个盒子一定是盒子2;

如果当前盒子是2或者3,那么分别以概率0.4和0.6转移到左边或右边的盒子;

如果当前盒子是4,那么各以0.5的概率停留在盒子4或转移到盒子3;

(3)确定转移的盒子后,再从这个盒子里随机抽出1个球,记录其颜色,放回;如此下去,重复5次,得到一个球的颜色的观测序列:

          O = {红,红,白,白,红}

(4)在这个过程中,观察者只能观测得到球的颜色的序列,观测不到球是从哪个盒子取出的,即观测不到盒子的序列;

(5)在这个例子中,有两个随机序列,一个是盒子的序列(状态序列),一个是球的颜色的观测序列(观测序列);前者是隐藏的,只有后者是可观测的,这是一个HMM模型的例子;

3.HMM的表示

                                                                

(1)假设Q是所有可能状态的集合,V是所有可能观测的集合,I是状态序列,O是观测序列


(2)状态转移概率矩阵


PS:对于上述例子中:


(3)观测概率矩阵


PS:对于上述例子中:


(4)初始状态概率向量


PS:对于上述例子中:


4.HMM模型的2个基本假设

(1)齐次马尔科夫性假设:假设隐藏的马尔科夫链在任意时刻 t 的状态只依赖于其前一时刻的状态,与其他时刻的状态及观测无关,也与时刻 t 无关;

(2)观测独立性假设:假设任意时刻的观测只依赖于该时刻的马尔科夫链的状态,与其他观测及状态无关;

5.HMM模型的3个基本问题

(1)概率计算问题:给定HMM模型下,求观测序列的概率

(2)学习问题:给定观测序列,估计HMM模型参数;

(3)预测问题:给定HMM模型跟观测序列,求状态序列;

(二)概率计算问题

1.前向算法

(1)前向概率:给定HMM模型,定义到时刻 t 部分观测序列为o1,o2,...,ot 且时刻 t 的状态为 qi 的概率为前向概率


(2)算法流程:

         1)初始化前向概率:

                      

         2)递归计算前向概率:

                     

         3)概率累加:

                      

2.后向算法

(1)后向概率:给定HMM模型,已知时刻 t 的状态为 qi ,定义时刻 t+1 到时刻T的观测序列为ot+1,ot+2,...,oT的概率为后向概率


(2)算法流程:

        1)初始化后向概率:

                     

        2)递归计算后向概率:

                    

        3)概率累加:

                     

(三)学习问题

1.监督算法——极大似然估计

(1)训练数据:包含S个长度相同的观测序列和对应的状态序列:


(2)算法流程:

         1)转移概率矩阵的估计:其中Aij表示样本中从状态 i 转移到状态 j 的频数

              

          2)观测概率矩阵的估计:其中Bjk表示样本中从状态 j 生成观测 k 的频数

              

          3)初始状态概率的估计:直接从样本中算

2.非监督算法(Baum-Welch算法)——EM算法估计

(1)训练数据:只包含S个长度为T的观测序列而没有对应的状态序列:

           

(2)算法流程:

         1)确定完全数据的对数似然函数:

                

         2)E步:求Q函数

                

         3)M步:极大化Q函数,求得

         

(四)预测问题

1.近似算法


2.维特比算法

(1)维特比算法是一种动态规划的算法

(2)定义两个变量

          1)在时刻 t 状态为 i 的之前所有可能路径中,概率值最大为:

               

                其递推公式为:

               

         2)在时刻 t 状态为 i 的之前最大概率路径中,第 t - 1 个结点为:

               

(3)算法流程:

        1)初始化:

              

        2)递推:

              

       3)终止:

       

       4)最优路径回溯:

          

            得到的最优路径为:

            

(4)算法思想:记录每个时刻的每个可能状态的之前最优路径的概率值;同时也记录最优路径的前一个状态;不断向后迭代,最后找出最后一个时间点的最大概率值对应的状态,不断往前回溯,从而得到最优路径


从图中可以看出,每个时刻的每个状态都记录了之前最优路径的最后一个状态,因此通过回溯,很容易得到最优路径,比如时间3取状态3,之前的最优路径的最后一个状态也是3,如此回溯,最终得到的最优路径为3-3-3;

PS:




0 0
原创粉丝点击