您的位置:首页 > 其它

隐马尔科夫模型HMM

2017-04-01 14:40 288 查看

本文主要参考李航老师的《统计学习方法》,推导严谨,书中有例子可以帮助理解,本文只给出了HMM的一些关键公式,推导过程并未提及,若读者有兴趣,可以寻得老师的书一看,若本文写的有不妥之处,欢迎指正。

    隐马尔科夫模型的定义:
    隐马尔科夫模型是关于时序的概率模型,描述由一个隐藏的马尔科夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。隐藏的马尔科夫链随机生成的状态的序列,成为状态序列(state sequence);每个状态生成一个观测,而由此产生的观测的随机序列,成为观测序列(observation
sequence)。序列的每一个位置又可以看做是一个时刻。
    隐马尔科夫模型介绍:
    设所有可能的状态的集合为Q,所有可能的观测的集合为V,记作Q={q1,q2,...,qN},V={v1,v2,...,vM},其中N表示可能的状态数,M表示可能的观测数。将长度为T的状态序列记为I,对应的观测序列记为O,则I ={i1,i2,...,iT},O={o1,o2,...,oT}



    初始概率分布π、状态转移概率分布A和观测概率分布B三个参数决定一个隐马尔科夫模型。
    其中:



    表示在时刻t=1处于状态qi的概率



    表示在时刻t处于状态qi的条件下在时刻t+1转移到状态qj的概率



    表示在时刻t处于状态qj的条件下生成观测vk的概率



图1:隐马尔科夫模型示意图
    HMM作了两个基本假设:
    1、其次马尔科夫模型:即隐藏的马尔科夫链在任意时刻t的状态与其他时刻的状态及观测是无关的,也与时刻t无关,仅依赖与前一时刻的状态



    2、观测独立性假设,即任意时刻的观测与其他观测即状态无关,只依赖与该时刻的隐马尔科夫链的状态



    HMM训练-模型学习:
    1、观测序列概率的前向算法

    前向概率:给定HMM的λ,定义时刻t部分观测序列为o1,o2,...,ot,且状态为qi的概率成为前向概率



    输入:隐马尔科夫模型λ ,观测序列o;
    输出:观测序列P(O|λ )
    


    注意:模型学习时A、B、π为随机生成的初值,HMM对初值敏感,为前向概率
    2、观测序列概率的后向算法
    后向概率:给定HMM的λ ,定义时刻t部分状态为qi的条件下,从t+1到T的部分观测序列为Ot+1,Ot+2,...,OT的概率为后向概率,记作:



    输入:隐马尔科夫模型λ ,观测序列O
    输出:观测序列概率P(O|λ )
        


    注意:模型学习时,A、B、π为随机生成的初值,HMM对初值敏感,为后向概率
    3、利用前向概率和后向概率,可以得到关于单个状态和两个状态概率的计算公式
    (1)给定模型λ 和观测O,在时刻t处于qi的概率,记作:



    可以通过前向后向概率计算:



    由前向概率和后向概率定义可知



    于是



    (2)给定模型λ 和观测O,在时刻t处于qi且在时刻t+1处于状态qj的概率,记作:



    可以通过前向后向概率计算:



    而



    所以



    (3)将



对时刻t求和,可以得到一些有用的期望值:
    a)在观测O下状态i出现的期望值:



    b)在观测O下由状态i转移的期望值:



    c)在观测O下由状态i转移到状态j的期望值



    HMM训练-模型学习
    Baum-Welch算法:
    输入:观测序列O=(o1,o2,...,ot);
    输出:隐马尔科夫模型参数
        


        


        


        
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息