隐马尔可夫模型二(公式推导)

前面一篇介绍了隐马尔科夫模型的基本的一些概念,篇主要介绍三个问题的具体解决方法。如果对于概念不太理解的可以参考前一篇博客HMM模型基本概念,本篇博客主要介绍对于三个问题的主要推倒,内容主要基于统计学习方法这本书,但是在上面加上了一些自己的理解。下面一一介绍三个问题以及解决的办法。

概率问题

给定模型λ=(A,B,π)λ=(A,B,π)

直接计算法

直接计算法说白了就是暴力计算每一种情况的可能。对于所有可能的状态序列II,即:

P(O|λ)=IP(O|I,λ)P(I|λ)P(O|λ)=∑IP(O|I,λ)P(I|λ)

这种计算的缺点在于计算量很大,时间复杂度为O(TNT)O(TNT)

前向后向算法

前向后向算法的核心是利用动态规划的思想减少计算的时间复杂度。


图1

前向算法

前向概率 给定隐马尔可夫模型λλ的概率为前向概率,记作

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

然后可以递推求出前向概率αt(i)αt(i)

盒子1234
红球数5368
白球数5742

那么这个前向概率到底是什么意思呢?估计好多人还是看的一脸懵逼。还是以之前的盒子与球模型,观测序列为O={,,,,}O={红,红,白,白,红}。即前面观测序列为[红,红,白],第三次丑的白色球是从盒子1中抽出的概率。

下面是对前向算法的形式化推导。

输入:隐马尔科夫模型λλ;

输出:观测序列概率P(O|λ)P(O|λ);

1.初值

α1(i)=πibi(o1)(2)α1(i)=πibi(o1)(2)

即求第一个观测值对应的状态为ii的概率

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

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

3.终止

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

上面这段公式推导的思想为,先求观测值为o1o1求和就能够得到上述(3)式。其递推过程图如下:


图2

前向算法就是利用这种方式将时间复杂度从O(TNT)O(TNT),至于降低的原因是减少直接利用了前面的计算结果,避免了每一次都需要重新计算。

还是以盒子与球模型为例,λ=(A,B,π)λ=(A,B,π).

T=3T=3

1.计算初值

α1(1)=π1b1(o1)=0.2×0.5=0.10α1(1)=π1b1(o1)=0.2×0.5=0.10

2.递推计算

α2(1)=[j=13α1(j)aj1]b1(o2)α2(1)=[∑j=13α1(j)aj1]b1(o2)

α2(2)=[j=13α1(j)aj2]b2(o2)α2(2)=[∑j=13α1(j)aj2]b2(o2)

α2(3)=[j=13α1(j)aj3]b3(o2)α2(3)=[∑j=13α1(j)aj3]b3(o2)

同理可以得到

α3(1)=[j=13α2(j)aj1]b1(o3)=0.04187α3(1)=[∑j=13α2(j)aj1]b1(o3)=0.04187

α3(2)=[j=13α2(j)aj2]b2(o3)=0.03551α3(2)=[∑j=13α2(j)aj2]b2(o3)=0.03551

α3(3)=[j=13α2(j)aj3]b3(o3)=0.05284α3(3)=[∑j=13α2(j)aj3]b3(o3)=0.05284

3.终止

P(O|λ)=j=13α3(j)=0.13022P(O|λ)=∑j=13α3(j)=0.13022

前向算法清楚了,其实后向概率也就清楚了。其本质就是和前向算法的思想是一样的,只不过方向相反,从后往前计算。以下图为例,先计算的是qtqt的概率,以此类推。下面直接给出定义以及推导。

后向算法

后向概率的概率为后向概率,记作

βt(i)=P(o
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值