隐马尔科夫模型(HMM)理解与总结

本文系个人学习总结,为模型基础原理的概念性总结,不涉及数学原理即详细推导,若有详细了解需要,请参照文章末尾参考资料。

1. HMM模型概念

HMM所处理的问题有两个特征:1)序列型的数据,例如时间序列,状态序列。 2)序列数据分为两类,一类是可以观测到的数据,一类是隐藏在对应观测数据后的隐藏数据, 例如观测数据是我发出的语音,隐藏数据是我这段语音表达的语言。

1.1 HMM定义

定义所有隐藏状态集合Q和所有观测状态集合V:

image-20200827170936593

对于一个长度为T的问题,我们有状态序列I和观察序列O:

image-20200827171047934

t=1时刻隐藏状态的概率分布:

image-20200827172354466

HMM的两个重要假设:

  1. 齐次马尔科夫链假设

    t+1时刻隐藏状态 i t + 1 = q j i_{t+1} = q_j it+1=qj只依赖于t时刻隐藏状态 i t = q j i_{t} = q_j it=qj,由此我们有时刻t到t+1的状态转移概率 a i j a_{ij} aij

    image-20200827171402060

    和状态转移概率矩阵A:

    image-20200827171508212
  2. 观测独立性假设

    t时刻的观察状态 o t = v k o_{t}=v_k ot=vk只由t时刻的隐藏状态 i t = q j i_{t}=q_j it=qj决定,我们有:

    image-20200827172048402

    和状态生成概率矩阵B:

    image-20200827172143072

1.2 HMM实例

假设我们有三个盒子,每个盒子有红白两种球:

image-20200827170112042

规则是:一开始, 选择三个盒子的概率分别为0.2, 0.4, 0.4;当前为盒1,接下来的选盒概率分别为0.5, 0.2, 0.3;当前为盒2,接下来的选盒概率分别为0.3, 0.5, 0.2;当前为盒3,接下来的选盒概率分别为0.2, 0.3, 0.5。

抽球三次,得到观测序列 O = {红,白,红},隐藏序列 I 未知(看不到从哪个盒子抽球)

由此,我们设立HMM模型,参数为:

O = {红,白,红},T=3;V={红,白},M=2; Q={盒子1,盒子2,盒子3},N=3;

λ = ( A , B , Π ) \lambda = (A,B,\Pi) λ=(A,B,Π)

image-20200827172705673image-20200827172725826

2 HMM的三个问题:

2.1 计算观察序列的概率

即 给定模型 λ = ( A , B , Π ) \lambda = (A,B,\Pi) λ=(A,B,Π),和观察序列 O = o 1 , o 2 , . . . , o T O={o_1,o_2,...,o_T} O=o1,o2,...,oT,计算 P ( O ∣ λ ) P(O|\lambda) P(Oλ)

2.1.1 前向算法

前向算法计算观察序列概率,基于DP的算法。

子问题: i t = q i i_{t}=q_i it=qi时观察序列 O = ( o 1 , o 2 , . . . , o t ) O=(o_1,o_2,...,o_t) O=(o1,o2,...,ot)为前向概率:

image-20200827174413336

递归:
image-20200827174610608

总结:
image-20200827174921499

复杂度: O ( T N 2 ) O(TN^2) O(TN2)

2.1.2 后向算法

子问题:求 i t = q i i_{t}=q_i it=qi时观察序列 O = ( o t , o t + 1 , . . . , o T ) O=(o_t,o_{t+1},...,o_T) O=(ot,ot+1,...,oT)为后向概率:

image-20200827175615954

递归:
image-20200827175702178

总结:
image-20200827175742389

复杂度: O ( T N 2 ) O(TN^2) O(TN2)

2.1.3 利用前向概率和后向概率计算得到的重要的概率公式

  1. 给定 λ \lambda λ和O时, i t = q i i_t=q_i it=qi的概率为:
image-20200827180244135
  1. 给定 λ \lambda λ和O时, i t = q i i_t=q_i it=qi i t + 1 = q j i_{t+1}=q_j it+1=qj概率为:

    image-20200827180452937

2.2 求解HMM参数

也就是求 λ = ( A , B , Π ) \lambda = (A,B,\Pi) λ=(A,B,Π)

2.2.1 已知观测序列和隐藏序列——最大似然

D个序列,利用最大似然求解

image-20200827181241497 image-20200827181337446 image-20200827181431342

2.2.2 已知观测序列,隐藏序列未知——鲍姆-韦尔奇算法

原理同EM算法:
image-20200827181827876

流程:
image-20200827182258974

2.3 解码隐藏序列——维特比算法

给定模型和观测序列,预测最可能的隐藏序列I: m a x { P ( I ∣ O ) } max\{P(I|O)\} max{P(IO)}

基于DP,定义两个子问题:

  1. i t = i i_t=i it=i所有的可能路径的最大概率:

    image-20200827183011361

    递归:

    image-20200827183100892
  2. i t = i i_t=i it=i的概率最大的路径中的 i t − 1 i_{t-1} it1

    image-20200827183300091

流程:

image-20200827182701307

参考资料:
刘建平HMM
隐马尔可夫模型HMM

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值