寻找最可能的隐藏状态序列 (Finding most probable sequence of hidden states)

对于一个特殊的隐马尔科夫模型(HMM)及一个相应的观察序列,我们常常希望能找到生成此序列最可能的隐藏状态序列。

之前的那个问题变转,http://blog.csdn.net/jeiwt/article/details/8076019

假设连续观察3天的海藻湿度为(Dry,Damp,Soggy),求这三天最可能的天气情况。天气只有三类(Sunny,Cloudy,Rainy),而且海藻湿度和天气有一定的关系。

已知:

1. 隐藏的状态:Sunny,Cloudy, Rainy;海藻湿度有四类{Dry,Dryish, Damp,Soggy }

2. 观察状态序列:{Dry, Damp, Soggy };

3. 初始状态序列:Sunny(0.63),Cloudy(0.17),Rainy(0.20);

4. 状态转移矩阵:

Sunny

Cloudy

Rainy

Sunny

0.5

0.375

0.125

Cloudy

0.25

0.125

0.625

Rainy

0.25

0.375

0.375

Cloudy(昨天)->Sunny(今天)的概率是0.25;

Sunny(昨天)->Rainy(今天)的概率是0.125.

5. 混淆矩阵(海藻湿度与天气的相关性):

Dry

Dryish

Damp

Soggy

Sunny

0.6

0.2

0.15

0.05

Cloudy

0.25

0.25

0.25

0.25

Rainy

0.05

0.10

0.35

0.50

由HMM可知,Day2的天气仅取决于Day1;Day3的天气又只取决于Day2的天气。

Day1由于是初始状态,我们分别求

P(Day1-Sunny)=0.63*0.6;

P(Day1-Cloudy)=0.17*0.25;

P(Day1-Rain)=0.20*0.05;

Choose max{ P(Day1-Sunny) , P(Day1-Cloudy),P(Day1-Rainy)}, 得到P(Day1-Sunny)最大,得出第1天Sunny的概率最大。

Day2的天气又取决于Day1的天气状况,同时也受Day2观察的海藻情况影响

P(Day2-Sunny)= max{ P(Day1-Sunny)*0.5, P(Day1-Cloudy)*0.25,  P(Day1-Rainy)*0.25} *0.15;

P(Day2-Cloudy)= max{ P(Day1-Sunny)*0.375,  P(Day1-Cloudy)*0.125, P(Day1-Rainy)*0.625} *0.25;

P(Day2-Rainy)= max{ P(Day1-Sunny)*0.125,  P(Day1-Cloudy)*0.625 , P(Day1-Rainy)*0.375} *0.35;

Choosemax{ P(Day2-Sunny) , P(Day2-Cloudy), P(Day2-Rainy)},得到P(Day2-Rainy)最大,得出第2天Rainy的概率最大。

故{Sunny,Rainy}是前两天最大可能的天气序列。

Day3的天气又取决于Day2的天气状况,同时也受Day3观察的海藻情况影响

P(Day3-Sunny)= max{ P(Day2-Sunny)*0.5, P(Day2-Cloudy)*0.25,  P(Day2-Rainy)*0.25} *0.05;

P(Day3-Cloudy)= max{ P(Day2-Sunny)*0.375,  P(Day2-Cloudy)*0.125, P(Day2-Rainy)*0.625} *0.25;

P(Day3-Rainy)= max{ P(Day2-Sunny)*0.125,  P(Day2-Cloudy)*0.625, P(Day2-Rainy)*0.375} *0. 05;

Choosemax{ P(Day3-Sunny) , P(Day3-Cloudy), P(Day3-Rainy)},得到 P(Day3-Rainy)最大,得出第3天Rainy的概率最大。

故{Sunny,Rainy,Rainy}是这三天最可能的天气序列。

维特比算法(Viterbi Algorithm)相关推荐

  1. HMM——维特比算法(Viterbi algorithm)

    1. 前言 维特比算法针对HMM第三个问题,即解码或者预测问题,寻找最可能的隐藏状态序列: 对于一个特殊的隐马尔可夫模型(HMM)及一个相应的观察序列,找到生成此序列最可能的隐藏状态序列. 也就是说给 ...

  2. 语音识别学习日志 2019-7-17 语音识别基础知识准备6 {维特比算法(Viterbi Algorithm)}

    HMM 维特比算法(Viterbi Algorithm)详细解释参考:http://www.52nlp.cn/hmm-learn-best-practices-six-viterbi-algorith ...

  3. 维特比算法Viterbi Algorithm

     1.简介 维特比算法是一个特殊但应用最广的动态规划算法,它是针对篱笆网络的有向图(Lattice)的最短路径问题而提出的.凡是使用隐含马尔可夫模型描述的问题都可以用维特比算法来解码,包括今天的数 ...

  4. 维特比算法(Viterbi)

    维特比算法 (Viterbi algorithm) 是机器学习中应用非常广泛的动态规划算法,在求解隐马尔科夫.条件随机场的预测以及seq2seq模型概率计算等问题中均用到了该算法.实际上,维特比算法不 ...

  5. 维特比算法(viterbi)原理以及简单实现

    维特比算法 看一下维基百科的解释,维特比算法(Viterbi algorithm)是一种动态规划算法.它用于寻找最有可能产生观测事件序列的维特比路径--隐含状态序列,特别是在马尔可夫信息源上下文和隐马 ...

  6. C语言维特比算法,viterbi维特比算法

    维特比算法:使用动态规划,找出最短路径 以下以图的形式来解释: 图的节点按列组织,每列的节点数量可以不一样,每一列的节点只能和相邻列的节点相连,不能跨列相连,节点之间有着不同的距离,距离的值就不在图上 ...

  7. em算法怎么对应原有分类_[PRML]序列数据 HMM维特比算法及扩展

    序列数据相关文章:1.马尔可夫模型2.隐马尔可夫模型简介3.HMM最大似然4.HMM前向后向算法5.HMM和积算法与尺度因子 1 维特比算法 在隐马尔可夫模型的许多应用中,潜变量有一些有意义的解释,因 ...

  8. 隐马尔科夫模型(HMMs)之五:维特比算法及前向后向算法

    维特比算法(Viterbi Algorithm) 找到可能性最大的隐藏序列 通常我们都有一个特定的HMM,然后根据一个可观察序列去找到最可能生成这个可观察序列的隐藏序列. 1.穷举搜索 我们可以在下图 ...

  9. 机器学习:维特比算法(Viterbi Algorithm)

    一.维特比算法(Viterbi Algorithm)讲解方式01:篱笆网络(Lattice)的最短路径问题 已知下图的篱笆网络,每个节点之间的数字表示相邻节点之间的距离,举个例子来说,如果我走,这个距 ...

  10. 基于维特比算法的概率路径

    简介: 维特比算法(Vieterbi algorithm)是一种动态规划算法,探索出很多预测天气的方法,这种基于经验的预测方式,是一种基于历史数据的概率模型. 思想 维特比算法的思想是假设某一个数据的 ...

最新文章

  1. Linux用init命令关机、重启、切换模式
  2. 双栈排序java_双栈排序(Java)
  3. VTK:Utilities之DiscretizableColorTransferFunction
  4. mysql 高可用方案漫谈(二)
  5. hdu 1006 Tick and Tick
  6. 为什么要做一场WebRTC主题的大会?
  7. vue中通过第三方代理解决跨域问题
  8. Laynews内核仿阿怪资源娱乐网源码
  9. 随想一·杨柳岸晓风残月
  10. 【ACL2021】话题感知的语义建模
  11. Vi编辑器常用命令及三种模式转换
  12. 详细的vsftpd配置文件讲解
  13. 基于51单片机的简易计算器设计
  14. Unity使用ARCore开发AR程序
  15. 如何在word中同一位置处插入多篇连续文献
  16. 双创项目_宫颈癌智能风险检测(4)
  17. hard sigmoid函数
  18. 【目标跟踪系列】Struck: Structured Output Tracking with Kernels(代码调试运行篇)
  19. Android最佳性能实践(一)——合理管理内存
  20. live writer blog test bucuo

热门文章

  1. docker 微镜像-alpine
  2. 【转】为VS2005安装STLport
  3. Spark 实践——用 Scala 和 Spark 进行数据分析
  4. js window对象常用内容
  5. c++ 一个h文件里面定义一个主类,然后定义多个子类
  6. mysql5.7 作为openstack的数据库添加bind-address 字段之后mysql不能起来
  7. ROS入门(一) 文件结构篇
  8. JS中Null与Undefined的区别
  9. what's the differences between readonly const in C# 在C#中readonly和const的区别
  10. [WTL] 改变右击SysMenu后弹出的菜单