机器学习:HMM:基础

1. HMM的概念

  • 时序概率模型,生产不可观测的状态序列和观测序列

定义

λ=(A,B,π)

  • Q= 状态集合= {q1,q2,...,qN} ……….N:状态数
  • V= 可能的观测集合= {v1,v2,...,vM} ………. M:观测数
  • I=长度为T的状态序列= i1,i2,i3,......,iT
  • O=对应的观测序列= (o1,o2,......,oT)

  • A = 状态转移矩阵

    A=[aij]NN

    其中 aij=P(it+1=qj|it=qi) ,,,,,,,,, i=1,…,N; j=1,….,N
    t时刻处于状态 qi 的条件转移到t+1时刻状态q_j的概率

  • B= 观测概率矩阵

    B=[bj(k)]NM

其中 bj(k)=P(ot=vk|it=qj)...........k=1,2,3,...M;j=1,2......,N
t时刻处于状态 qj 的条件下的观测 vk 的概率

  • π 是初始状态概率向量:

π=π(πi)

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


2. HMM的建模假设

  • 齐次马尔科夫性假设

P(it|it1,ot1,......,i1,o1)=P(it|it1) ……….. t=1,2,3,...,T

  • 观测独立假设

P(ot|iT,oT,....,i1,oi)=P(ot|it)

例子

P173


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

  • 概率计算问题:
    给定模型 λ=(A,B,π) 和观测序列 O=(o1,...,oT) ,计算模型 λ 下的观测序列 O 出现的概率 P(O|λ)

  • 学习问题:
    已知观测序列 O=(o1,...,oT) , 估计模型 λ=(A,B,π) 的参数,使得在该模型下观测序列概率 P(O|λ) ; 极大似然估计的方法

  • 预测问题
    已知模型 λ=(A,B,π) 和观测序列 O=(o1,...,oT) ;求给定观测序列条件概率 P(I|O) 最大的状态序列 I=(ii,i2,...,iT) ; 给定观测序列,求最可能的状态序列


4. 概率计算问题

已知: λ=(A,B,π) 和观测序列 O=(o1,...,oT) ,
求解: λ 下的观测序列 O 出现的概率 P(O|λ)

直接计算

  1. 状态序列 I={i1,i2,...,iT} 的概率是

    P(I|λ)=πi1ai1i2ai2i3....aiT1iT

  2. 对于固定的状态序列 I={i1,i2,...,iT} 下, 观测序列 O=(o1,...,oT) 的概率是 P(O|I,λ)

    P(O|I,λ)=bi1(o1)bi2(o2)...biT(oT)

  3. O 和 I 的联合概率

    P(O|I,λ)=P(O|I,λ)P(I|λ)
    =πi1bi1(o1)ai1i2bi2(o2)...aiT1biT(oT)

  4. 对所有的可能的状态序列 I 求和, 得到观测序列 O的概率 P(O|λ)

    P(O|λ)=IP(O|I,λ)P(I|λ)
    =i1,i2,...,iTπi1bi1(o1)ai1i2bi2(o2)...aiT1biT(oT)

  5. 计算复杂度: O(TNT)


5. 前向算法

前向概率

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

αt(i)=P(o1,o2,...,ot,it=qi|λ)

前向算法

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

    1. 初值:

      α1(i)=πibi(oi) ……… i=1,2,…,N

    2. 递推: t=1,2,…,T-1

      αt+1(i)=[j=1Nαt(j)αji]bj(ot+1)

    3. 终止

      p(O|λ)=Ni=1αT(i)

结论

  • 每次应用前一个时刻的计算结果

复杂度

O(N2T)


6 .后向算法

前向概率

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

    αt(i)=P(o1,o2,...,ot,it=qi|λ)

后向概率

  • 已知: λ
  • 定义:定义时刻 t 下状态为qi条件下,从 t+1 T 部分观测序列为ot+1,ot+2,...,oT的概率是后向概率

    βt(i)=P(ot+1,ot+2,...,oT|it=qt,λ)

后向算法

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

步骤1:

βT(i)=1 ……. i=1,2,…,N

步骤2:对于 t=T1,T2,...,1

βt(i)=j=1Naijbj(ot+1)βt+1(j) ……….. i=1, 2, 3, …, N

步骤3:

P(O|λ)=Ni=1πibi(oi)βi(i)


7. HMM的概率与期望

* 给定 λ 和观测 O,在 t 时刻处于qi 的概率

γt(i)=P(it=qi|O,λ)

γt(i)=P(it=qi|O,λ)=P(it=qi,O|λ)P(O|λ)

  因为:

αt(i)βt(i)=P(it=qi,O|λ)

=>

γi(t)=αt(i)βt(i)P(O|λ)=αt(i)βt(i)j=1Nαt(i)βt(j)

* 给定模型 λ 和观测 O , 在时刻 t 处于状态 qi 且在时刻 t+1 处于 qj 的概率

ξt(i,j)=P(it=qi,it+1=qj|O,λ)

前向后向概率计算 =>

ξt(i,j)=P(it=qi,it+1=qj,O|λ)P(O|λ)=P(it=qi,it+1=qj,O|λ)i=1Nj=1NP(it=qi,it+1=qj,O|λ)
=αt(i)aijbj(Ot+1)βt+1(j)i=1Nj=1Nαt(i)aijbj(ot+1)βt+1(j)

* 期望

  1. 在观测O下状态 i 出现的期望

    Tt=1γt(i)

  2. 在观测O下由状态 i 转移的期望值

    t=1T1γt(i)

  3. 在观测O下,由状态 i 转移到 状态 j的期望值

    t=1T1ξt(i,j)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值