人工智能里的数学修炼 | 隐马尔可夫模型 : 维特比(Viterbi)算法解码隐藏状态序列
人工智能里的数学修炼 | 概率图模型 : 隐马尔可夫模型
人工智能里的数学修炼 | 隐马尔可夫模型:前向后向算法
人工智能里的数学修炼 | 隐马尔可夫模型 : 维特比(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 ( 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)=πibi(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的概率 - 进行动态规划的递推, 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 - 计算 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)] - 局部状态 Ψ 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)算法解码隐藏状态序列相关推荐
- 人工智能里的数学修炼 | 隐马尔可夫模型:基于EM的鲍姆-韦尔奇算法求解模型参数
人工智能里的数学修炼 | 概率图模型 : 隐马尔可夫模型 人工智能里的数学修炼 | 隐马尔可夫模型:前向后向算法 人工智能里的数学修炼 | 隐马尔可夫模型 : 维特比(Viterbi)算法解码隐藏状态 ...
- 隐马尔可夫模型中的Viterbi算法zz
隐马尔可夫模型中的Viterbi算法zz 这篇文章简单描述一下Viterbi算法--一年之前我听过它的名字,直到两周之前才花了一点时间研究了个皮毛,在这里做个简单检讨.先用一句话来简单描述一下:给出一 ...
- 隐马尔可夫模型(HMM)及Viterbi算法
HMM简介 对于算法爱好者来说,隐马尔可夫模型的大名那是如雷贯耳.那么,这个模型到底长什么样?具体的原理又是什么呢?有什么具体的应用场景呢?本文将会解答这些疑惑. 本文将通过具体形象的例子来引入该模型 ...
- 隐马尔可夫模型(Baum Welch算法与Viterbi算法)
1.Baum Welch算法就是EM算法,用于求解隐马尔可夫模型的Learing问题 2.隐马尔可夫模型的Decoding问题是指给定X与λ,求使得概率最大的隐状态序列 3.Decoding问题采取V ...
- HMM学习笔记2 隐马尔科夫模型与前向算法
一 序 本系列文章摘自 52nlp(我爱自然语言处理: http://www.52nlp.cn/),原文链接在 HMM 学习最佳范例,有大佬做了二次整理,参见:https://blog.csdn.ne ...
- python做马尔科夫模型预测法_隐马尔可夫模型的前向算法和后向算法理解与实现(Python)...
前言 隐马尔可夫模型(HMM)是可用于标注问题的统计学习模型,描述由隐藏的马尔可夫链随机生成观测序列的过程,属于生成模型. 马尔可夫模型理论与分析 参考<统计学习方法>这本书,书上已经讲得 ...
- 马尔科夫系列——三、隐马尔可夫模型 - 学习问题 - Baum-Welch算法
转载的过程中发现,原文有些地方不太理解,就阅读了其他的文章,然后把代码的实现也引进来了.之前并没有验证代码的准确性,后面有人说,代码可能有问题,我尝试了修改.把简单修改版本的也放上来. 目录 一.训练 ...
- 隐马尔可夫模型维特比算法与前向算法区别
个人总结,与大家分享,若有疑问,欢迎提出
- 【一起入门MachineLearning】中科院机器学习第*课-概率图模型:隐马尔可夫模型(前向算法+维特比算法+条件随机场)
专栏介绍:本栏目为 "2021秋季中国科学院大学周晓飞老师的机器学习" 课程记录,不仅仅是课程笔记噢- 如果感兴趣的话,就和我一起入门Machine Learning吧
最新文章
- HTML5区域范围文本框实例页面
- 深度学习-Tensorflow2.2-深度学习基础和tf.keras{1}-线性回归tf.keras概述-02
- 男人最佳的生育年限,程序员们,看看吧!!!
- Sql 实现自动添加行数标记
- Asp学习者完整攻略之三:操作SQL:SQL基础:
- Turn to Stone
- python3 介绍
- Warning:Null pointer access: The variable addStrings can only be null at this location
- window.dialogArguments只兼容ie的问题解决
- NOIP2016普及组T1(买铅笔)题解
- Ubuntu软件仓库管理
- 一些名人语录(不断添加中...)
- 双活数据中心负载均衡理解
- 【期望】几何分布的期望
- 【JAVA长虹键法】第一式 初识设计模式(23种设计模式)
- webpack打包路径更改_webpack打包教程
- 学习Cocos的第二天-序列帧动画
- 【AI系列】1关于人工智能发展历史、资料推荐、技术体系的整理
- python爬虫招聘网站(智联)
- Intel汇编-带符号乘法
热门文章
- n的阶乘c语言程序迭代,C语言实现N阶乘的程序代码
- 求大神帮忙看看 自己是一个小白 第一次安装MySQL碰到这一步没辙了 也不知道红色感叹号什么意思 在百度看了好久也没找到类似问题
- 服务网格:Istio 架构
- 表格样式css制作html5,利用css实现的表格样式展示
- mysql实习报告总结_mysql实践总结
- Java编程的软件有哪些?
- 石河子大学计算机专业排名2019,2019石河子大学专业排名(王牌专业+双一流学科)...
- AR技术,让生活变得更加智能与多彩
- ImageView加载图片 路径没问题,图片不显示
- 【K-Means】基于经纬度的城市聚类