ml-13-4隐马尔科夫模型hmm--预测问题viterbi(维特比)算法

yifanrensheng yifanrensheng     2023-04-04     485

关键词:

【ML-13-1】隐马尔科夫模型HMM

【ML-13-2】隐马尔科夫模型HMM--前向后向算法

【ML-13-3】隐马尔科夫模型HMM--Baum-Welch(鲍姆-韦尔奇)

【ML-13-4】隐马尔科夫模型HMM--预测问题Viterbi(维特比)算法 

目录

  1. 基础--HMM常用概率的计算
  2. HMM最可能隐藏状态序列近似算法
  3. Viterbi(维特比)算法
  4. Viterbi(维特比)算法举例

HMM模型最后一个问题的求解:求给定观测序列条件下,最可能出现的对应的隐藏状态序列。即给定模型λ=(A,B,π)和观测序列Q=q1,q2,...,qT,求给定观测序列条件概率P(I|Q,λ)最大的隐含状态序列 I。在阅读本篇前,建议先阅读这个系列的第一篇以熟悉HMM模型。

HMM模型的解码问题最常用的算法是维特比Viterbi(维特比)算法,当然也有其他的算法可以求解这个问题。同时维特比算法是一个通用的求序列最短路径的动态规划算法,也可以用于很多其他问题,比如文本挖掘的分词原理中单独用维特比算法来做分词。

  本文关注于用维特比算法来解码HMM的的最可能隐藏状态序列。

一、基础--HMM常用概率的计算

 利用前向概率和后向概率,我们可以计算出HMM中单个状态和两个状态的概率公式。

1.1 单个状态的概率

求给定模型λ和观测序列Q的情况下,在时刻t处于状态si的概率,记做:

技术图片

单个状态概率的意义主要是用于判断在每个时刻最可能存在的状态,从而可以得到一个状态序列作为最终的预测结果。

利用前向概率和后向概率的定义可知:

技术图片

由上面两个表达式可知:

技术图片

1.2 两个状态的联合概率

求给定模型λ和观测序列Q的情况下,在时刻t处于状态si并时刻t+1处于状态sj概率,记做:

技术图片

技术图片

技术图片

1.3 上述两种求和可以得到:

  1. 技术图片
  2. 技术图片
  3. 技术图片

二、HMM最可能隐藏状态序列近似算法  

在HMM模型的解码问题中,给定模型λ=(A,B,Π)和观测序列,求给定观测序列Q条件下,最可能出现的对应的状态序列I=i1,i2,...iT,即P(I|Q)要最大化。直接在每个时刻t时候最优可能的状态作为最终的预测状态,使用下列公式计算概率值:

技术图片

只要求得满足使得上式概率最大的值,可以通过前向和后向求得。

近似算法很简单,但是却不能保证预测的状态序列是整体是最可能的状态序列,因为预测的状态序列中某些相邻的隐藏状态可能存在转移概率为0的情况。

  而维特比算法可以将HMM的状态序列作为一个整体来考虑,避免近似算法的问题,下面我们来看看维特比算法进行HMM解码的方法。

三、Viterbi(维特比)算法

Viterbi算法实际是用动态规划的思路求解HMM预测问题,求出概率最大的"路径",每条"路径"对应一个状态序列:

时刻t隐藏状态为i所有可能的状态转移路径i1,i2,...it中的概率最大值。记为δt(i):

技术图片

由δt(i)的定义可以得到δ的递推表达式:

技术图片

计算时刻T最大的δT(i),即为最可能隐藏状态序列出现的概率。

技术图片

使得上式最大后,最终得到最有可能的隐藏状态序列I=i1,i2,...iT

四、Viterbi(维特比)算法举例

4.1 例题

假设有三个盒子,编号为1,2,3;每个盒子都装有黑白两种颜色的小球,球的比例如下:

技术图片

按照下列规则的方式进行有放回的抽取小球,得到球颜色的观测序列:

  1. 按照π的概率选择一个盒子,从盒子中随机抽取出一个小球,记录颜色后,放回盒子中;
  2. 按照某种条件概率选择新的盒子,重复该操作;
  3. 最终得到观测序列:"白黑白白黑
  • 状态集合:S=盒子1,盒子2,盒子3
  • 观测集合:O=白,黑
  • 状态序列和观测序列的长度T=5
  • 初始概率分布π
  • 状态转移概率矩阵A
  • 观测概率矩阵B

技术图片

在给定参数π、A、B的时候,得到观测序列为"白黑白白黑",求出最优的隐藏状态序列。

4.2 计算过程

技术图片

技术图片

技术图片

技术图片

技术图片

最终盒子序列为: (2, 3, 2, 2, 3)

附件一:手写练习

技术图片

ml-13-3隐马尔科夫模型hmm--baum-welch(鲍姆-韦尔奇)

【ML-13-1】隐马尔科夫模型HMM【ML-13-2】隐马尔科夫模型HMM--前向后向算法 【ML-13-3】隐马尔科夫模型HMM--Baum-Welch(鲍姆-韦尔奇)【ML-13-4】隐马尔科夫模型HMM--预测问题Viterbi(维特比)算法 目录基础--HMM常用概... 查看详情

ml-13-1隐马尔科夫模型hmm

【ML-13-1】隐马尔科夫模型HMM【ML-13-2】隐马尔科夫模型HMM--前向后向算法【ML-13-3】隐马尔科夫模型HMM--Baum-Welch(鲍姆-韦尔奇)【ML-13-4】隐马尔科夫模型HMM--预测问题Viterbi(维特比)算法目录基础知识-马尔可夫链HMM... 查看详情

html常用标签

下面对HTML常用标签进行说明:1.文档结构标签<html></html>:标识HTML文档的起始和终止<head></head>:标识HTML文档头部区域<body></body>:标识HTML文档主体区域示例:<htm... 查看详情

html

...5、缩进规则以TAB为准6、显示特殊含义字符。7、html文件主体结构<html><head><title>在头部定义的标题标记</title><basehref=" 查看详情

php展示kmp拓展算法思想

每一个算法,都是基于很简单的道理,不断地增加条件,限制,让它符合心意。也就没有其他的东西了。KMP:也就是我自己写的一个思路,肯定我讲不清楚,我还没有那么通透,只能记录下我现在的一个思路,而且也没必要... 查看详情

基于优化lstm模型的股票预测

...翻译等领域广受青睐。今天,主要研究的是通过对LSTM模型的优化来实现股票预测。其实,关于股票预测,LSTM模型已经表现的相当成熟,然而,其以及具有很大的提升空间,比如,股市的影响因素多种... 查看详情

基于优化lstm模型的股票预测

...翻译等领域广受青睐。今天,主要研究的是通过对LSTM模型的优化来实现股票预测。其实,关于股票预测,LSTM模型已经表现的相当成熟,然而,其以及具有很大的提升空间,比如,股市的影响因素多种... 查看详情

如何使用隐马尔可夫模型进行未来预测

】如何使用隐马尔可夫模型进行未来预测【英文标题】:HowtomakefuturepredictionwithHiddenMarkovModels【发布时间】:2012-12-0107:49:09【问题描述】:我有许多可变长度的序列。对于这些,我想训练一个隐马尔可夫模型,稍后我想用它来预... 查看详情

关于html5代码总结。

1.<!DOCTYPE html>声明这是一个HTML5的页面 2.<HTML lang="en"  />默认语言设置为英语 3.<meta charset="UTF-8">字符编码被设置为UTF-8 ... 查看详情

vivado+hdmi+ddr3--------hdmi接口协议介绍及实现(代码片段)

...数据,硬件接口较大,虽说不支持热插拔,但是也没什么问题,损坏显卡而已。  HDMI接口就是在VGA接口的基础上发展而来的,至于HDMI接口为什么可以做到那么小,主要是数据与VGA 查看详情

隐马尔可夫模型

预测算法还记得隐马尔可夫模型的三个问题吗?本篇介绍第三个问题:预测问题,即给定模型参数和观测序列,求最有可能的状态序列,有如下两种算法。近似算法在每个时刻t选出当前最有可能的状态it,从而得到一个状态序列... 查看详情

vm6.5怎样安装ghost版系统~

参考技术A先设置好虚拟机!在虚拟机里的光驱设置成要装的GHOST的ISO文件!接通电源在BIOS里设置成光驱优先启动!进入光盘后一般GHOST的光盘里有PM分区工具在PM里分好区并把要装系统的盘设置为作用!完成后!再进行和实体机... 查看详情

linux操作系统及常见命令

...文件给不同的用户会赋予不同的权限)认证机制:authentication (识别某个人就是他所声称的那个人)授权:authorization审计:Auditon(日志)prompt:命令提示符命令:m... 查看详情

隐马尔科夫模型hmm详解

目录隐马尔科夫模型基本概念隐马尔科夫模型的三个基本问题概率计算预测算法-Viterbi算法HMM学习算法参考下篇文章代码地址:https://gitee.com/liangcd/speech_learning/tree/master/HMM隐马尔科夫模型基本概念先看一个小问题:问题&#x... 查看详情

用隐马尔科夫模型来预测股价走势(代码片段)

一、初识HMM隐马尔科夫模型(HiddenMarkovModel,简称HMM)是用来描述隐含未知参数的统计模型,HMM已经被成功于语音识别、文本分类、生物信息科学、故障诊断和寿命预测等领域。HMM可以由三个要素组成: =&#... 查看详情

hmm隐马尔科夫模型及matlab实现(代码片段)

隐马尔科夫模型文章目录隐马尔科夫模型前言一、定义二、三个基本问题1、观测序列概率2、模型参数学习3、预测(解码)问题三、三个问题的代码1、观测序列概率2、模型参数学习总结前言隐马尔科夫模型(HMM)... 查看详情

moonjavascript简介 第1章和 在html中使用javascript第2章

 javaScript基础知识     javaScript是脚本语言           是一种轻量级的编程语言。           是可插入HTML页面的编程代码。           插入HTML页面后,可由所有的现代浏览器执... 查看详情

隐马尔科夫模型

...感知的概率分布3.先验概率分布即世界是如何开始的四、马尔科夫模型当前时刻的状态只依赖与前一时刻的状态当前时 查看详情