Hidden Markov Models Forward算法
Hidden Markov Models中的问题一,给定一个隐马尔科夫模型高效计算某一输出观察序列的概率。这是一个评估的问题。例如:HMMs最经典的例子隐藏的天气状态和观察的海藻湿度状态的例子,给定几个隐马尔科夫模型(春季、夏季、秋季、冬季模型),通过计算不同模型下指定观察序列的概率,推断这个观察序列是在哪个季节。天气状态N={sunny, cloudy, rainy},海藻的湿度状态M={dry, dryish, damp, soggy}。假设连续3天海藻湿度的观察结果是(dry, damp, soggy),这三天每一天都可能是sunny, cloudy, rainy。这样在隐马尔科夫模型下的观察序列的概率P(dry, damp, soggy)=P(dry, damp, soggy| sunny, clody, rainy)+P(dry, damp, soggy| sunny, sunny, sunny)+...+P(dry,rainy, rainy, rainy),即找到每一种隐藏状态组合下的观察序列的概率,这里隐藏状态组合有种。穷举是不可行的,这时需要Forward算法来进行计算。
Forward算法本质就是计算每一个状态的局部观察序列的概率,将这些局部观察概率最终汇总为整个观察序列的概率。
下面3张图分别是在时刻状态分别为Sunny, Cloudy, Rainy的局部观察序列(Dry, Damp)的概率。
图1 图2
图3
下面3张图分别是在时刻状态分别为Sunny, Cloudy, Rainy的观察序列(Dry, Damp, Soggy)的概率。将这些概率相加,就是P(O)的概率了。
图4 图5
图6
Forward Algorithm步骤:
1. 初始化:当t=1时,没有任何前置的状态,所以,;
2. 递归:;
3. 最终:;
这就是整个计算过程。
举例:
O: (dry, damp, soggy)
: P(sunny)=0.63, P(Cloudy)=0.17, P(Rainy)=0.20
A状态转移矩阵
Sunny | Cloudy | Rainy | |
Sunny | 0.5 | 0.375 | 0.125 |
Cloudy | 0.25 | 0.125 | 0.625 |
Rainy | 0.25 | 0.375 | 0.375 |
B混淆矩阵
Dry | Dryish | Damp | Soggy | |
Sunny | 0.60 | 0.20 | 0.15 | 0.05 |
Cloudy | 0.25 | 0.25 | 0.25 | 0.25 |
Rainy | 0.05 | 0.10 | 0.35 | 0.50 |
Step 1:初始化 t=1
=P(sunny)*P(dry|sunny)=0.63*0.60=0.378;
=P(cloudy)*P(dry|cloudy)=0.17*0.25=0.0425;
=P(rainy)*P(dry|rainy)=0.20*0.05=0.01;
Step 2:递归
t=2:
=(0.378*0.5+0.0425*0.25+0.01*0.25)*P(damp|sunny)
=0.202125*0.15=0.0303875;
=(0.378*0.375+0.0425*0.125+0.01*0.375)*P(damp|cloudy)
=0.1508125*0.25=0.037703125;
=(0.378*0.125+0.0425*0.625+0.01*0.375)*P(damp|rainy)
=0.0775625*0.35=0.027146875;
t=3:
=(0.0303875*0.5+0.037703125*0.25+0.027146875*0.25)*P(soggy|sunny)
=0.03140625*0.05=0.0015703125
=(0.0303875*0.375+0.037703125*0.125+0.027146875*0.375)*P(soggy|cloudy)
=0.02628828125*0.25=0.00657207031
=(0.0303875*0.125+0.037703125*0.625+0.027146875*0.375)*P(soggy|rainy)
=0.03754296875*0.5=0.01877148437
Step 3:最终
P(O)==0.02691386718=2.691386718%
建议大家可以看看Reference中的链接,这里面有个Java Applet的例子,我的图片都是引用了这个例子的。
Reference: Hidden Markov Models Forward Algorithm
Hidden Markov Models Forward算法相关推荐
- 机器学习算法之——隐马尔可夫模型(Hidden Markov Models,HMM) 代码实现
@Author:Runsen 隐形马尔可夫模型,英文是 Hidden Markov Models,就是简称 HMM. 既是马尔可夫模型,就一定存在马尔可夫链,该马尔可夫链服从马尔可夫性质:即无记忆性. ...
- 隐马尔科夫模型(Hidden Markov Models) 系列之五
隐马尔科夫模型(Hidden Markov Models) 系列之五 介绍(introduction) 生成模式(Generating Patterns) 隐含模式(Hidden Patterns) ...
- 隐马尔科夫模型(Hidden Markov Models) 系列之三
隐马尔科夫模型(Hidden Markov Models) 系列之三 介绍(introduction) 生成模式(Generating Patterns) 隐含模式(Hidden Patterns) ...
- 隐马尔科夫模型(Hidden Markov Models) 系列之四
隐马尔科夫模型(Hidden Markov Models) 系列之四 介绍(introduction) 生成模式(Generating Patterns) 隐含模式(Hidden Patterns) ...
- 隐马尔科夫模型(Hidden Markov Models) 系列之一
隐马尔科夫模型(Hidden Markov Models) 系列之一 介绍(introduction) 生成模式(Generating Patterns) 隐含模式(Hidden Patterns) ...
- 机器学习 Hidden Markov Models 2
Hidden Markov Models 下面我们给出Hidden Markov Models(HMM)的定义,一个HMM包含以下几个要素: ∏=(πi)表示初始状态的向量.A={aij}状态转换矩阵 ...
- biosequence analysis using profile hidden Markov models(使用隐马尔可夫模型分析序列)
官方网址 下载工具后,按照网站上提供的文件来安装 HMMER is used for searching sequence databases for sequence homologs, and f ...
- 机器学习 Hidden Markov Models 1
Introduction 通常,我们对发生在时间域上的事件希望可以找到合适的模式来描述.考虑下面一个简单的例子,比如有人利用海草来预测天气,民谣告诉我们说,湿漉漉的海草意味着会下雨,而干燥的海草意味着 ...
- [Machine Learning]Markov chain and Hidden Markov Models(HMMs)
[Machine Learning]Markov chain and Hidden Markov Models(HMMs) 隐马尔可夫模型HMM快速入门: http://homepage3.nifty ...
- Lecture 6 Sequence Tagging: Hidden Markov Models
目录 Problems with POS Tagging 词性标注的问题 Probabilistic Model of HMM HMM的概率模型 Two Assumptions of HMM HMM的 ...
最新文章
- 【数字信号处理】相关函数 ( 相关系数与相关函数 | 相关函数定义 )
- C++中用new和不用new定义类的对象的区别解答
- oracle+行换列,Oracle的数据表中行转列与列转行的操作实例讲解
- 【AI视野·今日Robot 机器人论文速览 第八期】Wed, 16 Jun 2021
- python input 与raw_input函数的区别
- 纯CSS实现table表头固定(自创备忘)
- 文件系统的简单的操作
- Scapy 函数传值问题,解决多层数据获取
- hdoj--2546--饭卡
- avue-crud初始化下拉列表,以及复选框,默认选中
- 2020牛客寒假算法基础集训营3——J.牛牛的宝可梦Go【最短路 DP(01背包) 复杂度优化】(附优化分析)
- 用于2D动画的实时嘴型同步技术
- 更完整的服务!LG将成为苹果Airplay第一台智慧电视
- Android2.3触摸屏功能详解
- js将字符串转换为数字
- jquery easyui中文培训文档
- UE4 热更新系统开发
- 食物과 學問의 萃聚
- IP地址分类 三类IP地址 IPV4
- 【解决方案】智慧幼教:TSINGSEE青犀视频如何助力幼儿园智能化建设?