机器学习笔记之隐马尔科夫模型(二)

概率计算算法

1.1 前向算法

前向概率:给定隐马尔科夫模型 λ , 定义到时刻 t 的部分观测序列为 o1,o2,,ot 且状态为 qi 的概率,记作

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

可以递推的求得前向概率 α(i) 及观测概率 P(O|λ) .

前向算法过程

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

  1. 初值
    α(i)=πibi(o1),i=1,2,,N
  2. 递推 对 t=1,2,,T1 ,

    αt+1(i)=[j=1Nαt(j)aji]bi(ot+1),i=1,2,,N

  3. 终止

    P(O|λ)=i=1NαT(i)

步骤 1 是初始化前向概率,是初始时刻的状态 i1=qi 和观测 o1 的联合概率。步骤 2 是前向概率的递推公式,计算到时刻 t+1 部分观测序列为 o1,o2,,ot,ot+1 且在时刻 t+1 处于状态 qi 的前向概率。

步骤 2 是前向概率的递推公式,计算到时刻 t+1 部分观测序列为 o1,o2,,ot,ot+1 且在时刻 (t+1) 处于状态 qi 的前向概率。在递推式中 αt(j) 是到时刻 t 观测到 o1,o2,,ot 并在时刻 t 处于状态 qi的前向概率,那么乘积 αt(j)aji 就是到时刻 t 观测到 o1,o2,,ot 并且在时刻 t 处于状态 qj 而在时刻 t+1 到达状态 qi 的概率。 对这个乘积在时刻 t 所有可能的 N 个状态 qj 求和,其结果就是到时刻 t 观测为 o1,o2,,ot 并在时刻 t+1 处于状态 qi 的联合概率,将方括号的值与观测概率 bi(ot+1) 的乘积刚好是到时刻 t+1 观测到 o1,o2,,ot,ot+1 并在时刻 t+1 处于状态 qi 的前向概率 αt+1(i)

步骤3 给出了 P(O|λ) 的计算公式,因为 αT(i)=P(o1,o2,,oT,iT=qi|λ) , 所以

P(O|λ)=i=1NαT(i)

因为对于在T时刻所有的N个可能的状态求和那么前向概率中的 (iT=qi) 约束就被消除了,就有了上面的公式。

前向算法实际是基于“状态序列的路径结构”递推的计算 P(O|λ) 算法。其时间复杂度是 O(N2T)

1.2 后向算法

后向概率: 给定隐马尔科夫模型 λ , 定义在时刻 t 状态为 qi的条件下,从 t+1 T 的部分观测序列为 o1,o2,,oT的概率为后向概率,记作:

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

可以用递推的方法求得后巷概率 βt(i) 及观测序列概率 P(O|λ)

后向算法过程:

输入:隐马尔科夫模型 λ , 观测序列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,,N
  3. 终止
    P(O|λ)=i=1Nπibi(o1)β1(i)

步骤 1 初始化后向概率,对最终时刻的所有状态 qi 规定 βT(i)=1 .

步骤 2 是后向概率的递推公式,为了计算在时刻 t 状态为 qi 的条件下时刻 t+1 之后的观测序列为 ot+1,ot+2,,oT 的后向概率 βt(i) , 只需考虑在时刻 t+1 所有可能的 N 个状态qj的转移概率(即a_{ij}),以及在状态下的观测 Ot+1 的观测概(即 bj(ot+1) ),然后考虑状态 qj 之后的观测序列的后向概率(即 βt+1(j) ).

步骤 3 求 P(O|λ) 的思路与步骤2中一致,只是初始概率 πi 代替转移概率。

1.3 一些概率与期望值的计算

  1. 给定模型 λ 和 观测 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) 定义可知:
    αt(i)βt(i)=P(it=qi,O|λ)

    于是得到:
    γt(i)=αt(i)βt(i)P(O|λ)=αt(i)βt(i)Nj=1αt(j)βt(j)

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

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

    可以通过前向后向概率计算:
    ξt(i,j)=P(it=q,it+1=qj,O|λ)P(O|λ)=P(it=q,it+1=qj,O|λ)Ni=1Nj=1P(it=qi,it+1=qj,O|λ)


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

所以

ξt(i,j)=αt(i)aijbj(ot+1)βt+1(j)Ni=1Nj=1αt(i)aijbj(ot+1)βt+1(j)

  1. 一些有用的期望值

    • 在观测 O 下状态 i 出现的期望值 Ni=1γt(i)

    • 在观测 O 下由状态 i 转移的期望值 T1t=1γt(i)

    • 在观测 O 下由状态 i 转移到状态 j 的期望值 T1t=1ξt(i,j)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值