人工智能里的数学修炼 | 概率图模型 : 隐马尔可夫模型
人工智能里的数学修炼 | 隐马尔可夫模型:前向后向算法
人工智能里的数学修炼 | 隐马尔可夫模型 : 维特比(Viterbi)算法解码隐藏状态序列
人工智能里的数学修炼 | 隐马尔可夫模型:基于EM的鲍姆-韦尔奇算法求解模型参数
已经较为清楚的讲述了隐马尔可夫模型及其在实际应用的三个问题:1. 生成观察序列概率, 2. 预测问题, 3. 模型参数学习问题。

这里介绍求解第二个预测问题的维特比算法,这里举个例子回归一下预测问题
在语音识别等任务中,观测值为语音信号,隐藏状态为文字,目标就是根据观测信号来推断最有可能的状态序列

目录

  • 一、维特比算法的可递推局部状态
  • 二、维特比算法的递推流程
  • 三、更多资源下载

一、维特比算法的可递推局部状态

维特比算法是一种基于动态规划的求序列最短路径的方法,它通过确定一个合适的局部状态,利用局部状态进行递推,实现问题的求解。
在隐马尔可夫模型中,维特比算法定义了两个局部状态进行递推。
第一个局部状态 δ t ( i ) \delta_{t}(i) δt​(i)用于记录在时刻 t t t隐藏状态为 i i i所有可能的状态转移路径 i i , i 2 , . . . , i t i_{i},i_{2},...,i_{t} ii​,i2​,...,it​中的概率最大值,记为
δ t + 1 ( i ) = m a x 1 ≤ j ≤ N [ δ t ( j ) a j i ] b i ( o t + 1 ) \delta_{t+1}(i)=max_{1\leq j\leq N}[\delta_{t}(j)a_{ji}]b_{i}(o_{t+1}) δt+1​(i)=max1≤j≤N​[δt​(j)aji​]bi​(ot+1​)这里 a j i a_{ji} aji​表示由状态j向状态i的状态转移概率, b i ( o t + 1 ) b_{i}(o_{t+1}) bi​(ot+1​)表示由隐藏状态 i i i输出观测状态 o t + 1 o_{t+1} ot+1​的概率。
第二个局部状态 Ψ t ( i ) \Psi _{t}(i) Ψt​(i)是用于记录在每个时刻最可能的隐藏状态,记为
Ψ t ( i ) = a r g m a x 1 ≤ j ≤ N [ δ t − 1 ( j ) a j i ] \Psi _{t}(i)=argmax_{1\leq j\leq N}[\delta _{t-1}(j)a_{ji}] Ψt​(i)=argmax1≤j≤N​[δt−1​(j)aji​]有了这两个可递推的局部状态,我们可以从初始时刻递推到时刻 T T T,得到过程中 Ψ t ( i ) \Psi _{t}(i) Ψt​(i)依次记录的最优隐藏状态序列。

二、维特比算法的递推流程

已知: 隐马尔可夫模型 λ = { A , B , π } \lambda=\{A,B,\pi\} λ={A,B,π},观测序列 O = ( o 1 , o 2 , . . . , o T ) O=(o_{1},o_{2},...,o_{T}) O=(o1​,o2​,...,oT​)
输出:最有可能的隐藏状态序列 I ∗ = i 1 ∗ , i 2 ∗ , . . . , i T ∗ I^{*}={i^{*}_{1},i^{*}_{2},...,i^{*}_{T}} I∗=i1∗​,i2∗​,...,iT∗​

  1. 初始化局部状态:
    δ 1 ( i ) = π i b i ( o 1 ) , i = 1 , 2 , . . . , N \delta_{1}(i)=\pi_{i}b_{i}(o_{1}),i=1,2,...,N δ1​(i)=πi​bi​(o1​),i=1,2,...,N其中 π i \pi_{i} πi​表示初始隐藏状态为 i i i的概率, b i ( o 1 ) b_{i}(o_{1}) bi​(o1​)表示隐藏状态为 i i i,输出观测状态为 o 1 o_{1} o1​的概率
  2. 进行动态规划的递推, t = 2 , 3 , . . . , T t=2,3,...,T t=2,3,...,T:
    δ t ( i ) = m a x 1 ≤ j ≤ N [ δ t − 1 ( j ) a j i ] b i ( o t ) , i = 1 , 2 , . . . , N \delta_{t}(i)=max_{1\leq j \leq N}[\delta_{t-1}(j)a_{ji}]b_{i}(o_{t}),i=1,2,...,N δt​(i)=max1≤j≤N​[δt−1​(j)aji​]bi​(ot​),i=1,2,...,N Ψ t ( i ) = a r g m a x 1 ≤ j ≤ N [ δ t − 1 ( j ) a j i ] , i = 1 , 2 , . . . , N \Psi _{t}(i)=argmax_{1\leq j\leq N}[\delta _{t-1}(j)a_{ji}],i=1,2,...,N Ψt​(i)=argmax1≤j≤N​[δt−1​(j)aji​],i=1,2,...,N
  3. 计算 T T T时刻最大的 δ T ( i ) \delta_{T}(i) δT​(i), 即为最可能的隐藏状态序列出现的概率,同时计算 Ψ t ( i ) \Psi_{t}(i) Ψt​(i)时刻最大的 δ T ( i ) \delta_{T}(i) δT​(i), 即为时刻 T T T最可能的隐藏状态
    P ∗ = m a x 1 ≤ j ≤ N δ T ( i ) P^{*}=max_{1\leq j \leq N}\delta_{T}(i) P∗=max1≤j≤N​δT​(i) i T ∗ = a r g m a x 1 ≤ j ≤ N [ δ T ( i ) ] i_{T}^{*}=argmax_{1\leq j \leq N}[\delta_{T}(i)] iT∗​=argmax1≤j≤N​[δT​(i)]
  4. 局部状态 Ψ t ( i ) \Psi _{t}(i) Ψt​(i)记录的序列,记为最可能的隐藏状态序列, 对于 t = T − 1 , T − 2 , . . . . , 1 t=T-1,T-2,....,1 t=T−1,T−2,....,1:
    i t ∗ = Ψ t + 1 ( i t + 1 ∗ ) i_{t}^{*}=\Psi_{t+1}(i^{*}_{t+1}) it∗​=Ψt+1​(it+1∗​)
    最终可以得到最有可能的隐藏状态序列 I ∗ = i 1 ∗ , i 2 ∗ , . . . , i T ∗ I^{*}={i^{*}_{1},i^{*}_{2},...,i^{*}_{T}} I∗=i1∗​,i2∗​,...,iT∗​

三、更多资源下载

微信搜索“老和山算法指南”获取更多下载链接与技术交流群

有问题可以私信博主,点赞关注的一般都会回复,一起努力,谢谢支持。

人工智能里的数学修炼 | 隐马尔可夫模型 : 维特比(Viterbi)算法解码隐藏状态序列相关推荐

  1. 人工智能里的数学修炼 | 隐马尔可夫模型:基于EM的鲍姆-韦尔奇算法求解模型参数

    人工智能里的数学修炼 | 概率图模型 : 隐马尔可夫模型 人工智能里的数学修炼 | 隐马尔可夫模型:前向后向算法 人工智能里的数学修炼 | 隐马尔可夫模型 : 维特比(Viterbi)算法解码隐藏状态 ...

  2. 隐马尔可夫模型中的Viterbi算法zz

    隐马尔可夫模型中的Viterbi算法zz 这篇文章简单描述一下Viterbi算法--一年之前我听过它的名字,直到两周之前才花了一点时间研究了个皮毛,在这里做个简单检讨.先用一句话来简单描述一下:给出一 ...

  3. 隐马尔可夫模型(HMM)及Viterbi算法

    HMM简介 对于算法爱好者来说,隐马尔可夫模型的大名那是如雷贯耳.那么,这个模型到底长什么样?具体的原理又是什么呢?有什么具体的应用场景呢?本文将会解答这些疑惑. 本文将通过具体形象的例子来引入该模型 ...

  4. 隐马尔可夫模型(Baum Welch算法与Viterbi算法)

    1.Baum Welch算法就是EM算法,用于求解隐马尔可夫模型的Learing问题 2.隐马尔可夫模型的Decoding问题是指给定X与λ,求使得概率最大的隐状态序列 3.Decoding问题采取V ...

  5. HMM学习笔记2 隐马尔科夫模型与前向算法

    一 序 本系列文章摘自 52nlp(我爱自然语言处理: http://www.52nlp.cn/),原文链接在 HMM 学习最佳范例,有大佬做了二次整理,参见:https://blog.csdn.ne ...

  6. python做马尔科夫模型预测法_隐马尔可夫模型的前向算法和后向算法理解与实现(Python)...

    前言 隐马尔可夫模型(HMM)是可用于标注问题的统计学习模型,描述由隐藏的马尔可夫链随机生成观测序列的过程,属于生成模型. 马尔可夫模型理论与分析 参考<统计学习方法>这本书,书上已经讲得 ...

  7. 马尔科夫系列——三、隐马尔可夫模型 - 学习问题 - Baum-Welch算法

    转载的过程中发现,原文有些地方不太理解,就阅读了其他的文章,然后把代码的实现也引进来了.之前并没有验证代码的准确性,后面有人说,代码可能有问题,我尝试了修改.把简单修改版本的也放上来. 目录 一.训练 ...

  8. 隐马尔可夫模型维特比算法与前向算法区别

    个人总结,与大家分享,若有疑问,欢迎提出

  9. 【一起入门MachineLearning】中科院机器学习第*课-概率图模型:隐马尔可夫模型(前向算法+维特比算法+条件随机场)

    专栏介绍:本栏目为 "2021秋季中国科学院大学周晓飞老师的机器学习" 课程记录,不仅仅是课程笔记噢- 如果感兴趣的话,就和我一起入门Machine Learning吧

最新文章

  1. HTML5区域范围文本框实例页面
  2. 深度学习-Tensorflow2.2-深度学习基础和tf.keras{1}-线性回归tf.keras概述-02
  3. 男人最佳的生育年限,程序员们,看看吧!!!
  4. Sql 实现自动添加行数标记
  5. Asp学习者完整攻略之三:操作SQL:SQL基础:
  6. Turn to Stone
  7. python3 介绍
  8. Warning:Null pointer access: The variable addStrings can only be null at this location
  9. window.dialogArguments只兼容ie的问题解决
  10. NOIP2016普及组T1(买铅笔)题解
  11. Ubuntu软件仓库管理
  12. 一些名人语录(不断添加中...)
  13. 双活数据中心负载均衡理解
  14. 【期望】几何分布的期望
  15. 【JAVA长虹键法】第一式 初识设计模式(23种设计模式)
  16. webpack打包路径更改_webpack打包教程
  17. 学习Cocos的第二天-序列帧动画
  18. 【AI系列】1关于人工智能发展历史、资料推荐、技术体系的整理
  19. python爬虫招聘网站(智联)
  20. Intel汇编-带符号乘法

热门文章

  1. n的阶乘c语言程序迭代,C语言实现N阶乘的程序代码
  2. 求大神帮忙看看 自己是一个小白 第一次安装MySQL碰到这一步没辙了 也不知道红色感叹号什么意思 在百度看了好久也没找到类似问题
  3. 服务网格:Istio 架构
  4. 表格样式css制作html5,利用css实现的表格样式展示
  5. mysql实习报告总结_mysql实践总结
  6. Java编程的软件有哪些?
  7. 石河子大学计算机专业排名2019,2019石河子大学专业排名(王牌专业+双一流学科)...
  8. AR技术,让生活变得更加智能与多彩
  9. ImageView加载图片 路径没问题,图片不显示
  10. 【K-Means】基于经纬度的城市聚类