hmm java_HMM的概率计算问题和预测问题的java实现

HMM(hidden markov model)可以用于模式识别,李开复老师就是采用了HMM完成了语音识别。

一下的例子来自于《统计学习方法》

一个HMM由初始概率分布,状态转移概率分布,观测概率分布确定。并且基于两个假设:

1 假设任意时刻t的状态只依赖于前一个时刻的状态,与其他时刻的状态和观测序列无关

2 假设任意时刻的观测只依赖与该市可的马尔科夫的状态,与其他观测,状态无关。

基于此,HMM有三个基本问题:

1 概率计算问题,给定模型和观测序列,计算在模型下的观测序列出现的概率

2 预测问题,已知模型和观测序列,求最有可能的状态序列

3 学习问题,给出若干个观测序列,估计模型的参数,使得该模型下观测序列概率最大

由于第三个问题涉及到EM算法,而今天还没有看,所以这里只解决了两个,明天写第三个。

给出上面两个问题的实际例子

有三个盒子,每个盒子有红球白球

盒子   红球  白球

1   5  5

2  4  6

3  7  3

第一次从这三个盒子中随机取一个盒子的概率为0.2,0.4,0.4

并且如果上一次抽取的是盒子1那么下一次抽取盒子1的概率为0.5,抽取盒子2的概率为0.2,盒子3的概率为0.3,我们通过一个状态转移矩阵来描述

0.5  0.2  0.3

0.3  0.5  0.2

0.2  0.3  0.5    Aij表示从状态i转移到状态j的概率

通过以上描述,我们能得到该HMM的模型参数

状态转移矩阵:

0.5  0.2  0.3

0.3  0.5  0.2

0.2  0.3  0.5

观测概率分布:

0.5  0.5

0.4  0.6

0.7  0.3 Bij表示第i个状态下观测值为j的概率,这里就是抽到红球和白球的概率

初始概率:

0.2,0.4,0.4表示一开始到各个状态的概率

对于问题1:

现在我们抽取三次,结果为:红白红,求其出现的概率。

解决方法:

采用前向算法

就是我们从时刻1开始,先计算所有状态下观测为红的概率,接下来再求t2时刻会转移到某个状态的概率和,以此类推

63ff2a96b81a6b40bdbcb093e137b94f.png

具体的可以看《统计学习方法》,http://www.cnblogs.com/tornad

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值