HMM-理论补充

news2024/9/24 5:27:20

目录

一.隐马尔科夫模型

二.HMM定义

三.隐马尔科夫模型的贝叶斯网络

四.HMM的确定

五.HMM的参数

六.HMM的参数总结

七.HMM的两个基本性质

1.齐次假设:

2.观测独立性假设:

八.HMM举例

九.HMM的3个基本问题

十.概率计算问题

1.直接算法

2.前向算法

3.后向算法 

十一.前向后向概率的关系

十二.单个状态的概率

十三.γ的意义

十四.两个状态的联合概率

十五.期望

十六.学习算法


一.隐马尔科夫模型

 概率计算
 参数估计
 模型预测

二.HMM定义

隐马尔科夫模型(HMM, Hidden Markov Model)可用标注问题,在语音识别、NLP、生物信息、模式识别等领域被实践证明是有效的算法。

HMM是关于时序的概率模型,描述由一个隐藏的马尔科夫链生成不可观测的状态随机序列,再由各个状态生成观测随机序列的过程。

隐马尔科夫模型随机生成的状态随机序列,称为状态序列;每个状态生成一个观测,由此产生的观测随机序列,称为观测序列。

        序列的每个位置可看做是一个时刻。

三.隐马尔科夫模型的贝叶斯网络

四.HMM的确定

HMM由初始概率分布π、状态转移概率分布A以及观测概率分布B确定。

五.HMM的参数

Q是所有可能的状态的集合

        N是可能的状态数 

V是所有可能的观测的集合

        M是可能的观测数

I是长度为T的状态序列,O是对应的观测序列 

A是状态转移概率矩阵

 

 

aij是在时刻t处于状态qi的条件下时刻t+1转移到状态qj的概率。

B是观测概率矩阵 

 

bik是在时刻t处于状态qi的条件下生成观测vk的概率。

π是初始状态概率向量:

 

 

πi是时刻t=1处于状态qi的概率。

六.HMM的参数总结

HMM由初始概率分布π(向量)、状态转移概率分布A(矩阵)以及观测概率分布B(矩阵)确定。π和A决定状态序列,B决定观测序列。因此,HMM可以用三元符号表示,称为
HMM的三要素:

 

七.HMM的两个基本性质

1.齐次假设:

 

2.观测独立性假设:

八.HMM举例

假设有3个盒子,编号为1、2、3,每个盒子都装有红白两种颜色的小球,数目如下:

 

 按照下面的方法抽取小球,得到球颜色的观测序列: 按照π=(0.2,0.4,0.4)的概率选择1个盒子,从盒子随机抽出1个球,记录颜色后放回盒子;
 按照某条件概率(下页)选择新的盒子,重复上述过程;
 最终得到观测序列:“红红白白红”。 

该示例的各个参数

 状态集合:Q={盒子1,盒子2,盒子3}  观测集合:V={红,白}
 状态序列和观测序列的长度T=5
 初始概率分布π:
 状态转移概率分布A:
 观测概率分布B:

九.HMM的3个基本问题

 概率计算问题:前向-后向算法——动态规划
         给定模型和观测序列 ,计算模型λ下观测序列O出现的概率P(O| λ) 

 学习问题:Baum-Welch算法(状态未知)——EM
         已知观测序列 ,估计模型参数,使得在该模型下观测序列P(O| λ)最大

 预测问题:Viterbi算法——动态规划
         解码问题:已知模型和观测序列求给定观测序列条件概率P(I|O, λ)最大的状态序列

十.概率计算问题

1.直接算法

按照概率公式,列举所有可能的长度为T的状态序列 ,求各个状态序列I 与观测序列 的联合概率
P(O,I|λ),然后对所有可能的状态序列求和,从而得到P(O|λ)

状态序列的概率是:

对固定的状态序列I,观测序列O的概率是: 

O和I同时出现的联合概率是:

 

对所有可能的状态序列I求和,得到观测序列O的概率P(O|λ)

分析:加和符号中有2T个因子,I的遍历个数为NT,因此,时间复杂度为O(T NT),复杂度过高。

2.前向算法

定义:给定λ,定义到时刻t部分观测序列为o1,o2…ot且状态为qi的概率称为前向概率,记做:

         

可以递推计算前向概率αt(t(i)及观测序列概率P(O|λ) 

        

递推:对于t=1,2…T-1

         

最终: 

         

3.后向算法 

定义:给定λ,定义到时刻t状态为qi的前提下,从t+1到T的部分观测序列为ot+1,ot+2…oT 的概率为后向概率,记做:

 

可以递推计算后向概率βt(i)及观测序列概率P(O|λ) 

 初值:

        

 递推:对于t=T-1,T-2…,1

         

 最终:

        

为了计算在时刻t状态为qi条件下时刻t+1之后的观测序列为ot+1,ot+2…oT的后向概率βt(i),只需要考虑在时刻t+1所有可能的N个状态qj的转移概率(aij项),以及在此状态下的观测ot+1的观测概率(bjot+1项),然后考虑状态qj之后的观测序列的后向概率βt+1(j)

十一.前向后向概率的关系

 

十二.单个状态的概率

求给定模型λ和观测O,在时刻t处于状态qi的概率。

根据前向后向概率的定义, 

 

十三.γ的意义

 

给定模型和观测序列,时刻t处于状态qi的概率为:

 

十四.两个状态的联合概率

求给定模型λ和观测O,在时刻t处于状态qi并且时刻t+1处于状态qj的概率。

 

 

十五.期望

在观测O下状态i出现的期望:

 

在观测O下状态i转移到状态j的期望:

 

十六.学习算法

若训练数据包括观测序列和状态序列,则HMM的学习非常简单,是监督学习; 

若训练数据只有观测序列,则HMM的学习需要使用EM算法,是非监督学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/372650.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言学习笔记——程序环境和预处理

目录 前言 一、程序环境 1. 翻译环境 1.1 主要过程 1.2 编译过程 2. 运行环境 二、预处理 1. 预定义符号 2. #define 2.1 #define定义标识符 2.2 #define定义宏 2.3 命名约定和移除定义 3. 条件编译 4. 文件包含 结束语 前言 每次我们写完代码运行的时候都…

刷题28-有效的变位词

32-有效的变位词 解题思路: 注意变位词的条件,当两个字符串完全相等或者长度不等时,就不是变位词。 把字符串中的字符映射成整型数组,统计每个字符出现的次数 注意数组怎么初始化: int [] s1new int[26]代码如下&a…

C语言数据结构(一)—— 数据结构理论、线性表【动态数组、链表(企业版单向链表)】

数据结构理论1.1 数据数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据不仅仅包括整型、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。1.2数据…

决策树、随机森林、极端随机树(ERT)

声明:本文仅为个人学习记录所用,参考较多,如有侵权,联系删除 决策树 通俗来说,决策树分类的思想类似于找对象。现想象一个女孩的母亲要给这个女孩介绍男朋友,于是有了下面的对话: 女儿&#x…

C++17 nodiscard标记符

文章目录前言弃值表达式nodiscard标记符函数非弃值声明类/枚举类/结构 非弃值声明返回类引用与类指针前言 在C 17中引入了一个标记符nodiscard,用于声明一个 “非弃值(no-discard)表达式”。那么在开始之前,我们需要了解一下什么是弃值表达式。 弃值表…

LearnOpenGL-入门-着色器

本人刚学OpenGL不久且自学,文中定有代码、术语等错误,欢迎指正 我写的项目地址:https://github.com/liujianjie/LearnOpenGLProject LearnOpenGL中文官网:https://learnopengl-cn.github.io/ 文章目录着色器GLSL数据类型输入与输…

SpringMVC - 12 - 注解配置SpringMVC(完全注解开发)

文章目录注解配置SpringMVC1、创建初始化类WebInit,代替web.xml2、创建SpringConfig配置类,代替spring的配置文件3、创建WebConfig配置类,代替SpringMVC的配置文件4、TestController进行测试注解配置SpringMVC 使用配置类和注解代替web.xml和…

友云生态全球高峰论坛暨长沙首届私董会隆重召开

由友云生态主办的“赢在巅峰决策未来”在友云生态全球新消费、新金融、新资本高峰论坛暨长沙首届私董会于2023年2月22日隆重召开!本场私董会以“赢在巅峰 决策未来”为主题,从思维、定位、格局、布局四个角度探讨未来发展的全新动能。作为行业标杆性盛会…

网络应用之HTTP响应报文

HTTP响应报文学习目标能够知道HTTP响应报文的结构1. HTTP响应报文分析HTTP 响应报文效果图:响应报文说明:--- 响应行/状态行 --- HTTP/1.1 200 OK # HTTP协议版本 状态码 状态描述 --- 响应头 --- Server: Tengine # 服务器名称 Content-Type: text/html; charsetUTF-8 # 内容类…

【RabbitMQ笔记06】消息队列RabbitMQ七种模式之Topics主题模式

这篇文章,主要介绍消息队列RabbitMQ七种模式之Topics主题模式。 目录 一、消息队列 1.1、主题模式(Topics) 1.2、案例代码 (1)引入依赖 (2)编写生产者 (3)编写消费…

MapReduce 性能优化

MapReduce用于大规模数据集的并行运算,所以性能优化也是需要重点关注的内容,下面是我在学习过程中,对于MapReduce 性能优化的点,分享大家学习,enjoy~~ MapReduce的运行流程 以上是MapReduce的运行流程,所以…

Zebec社区上线ZIP-2(地平线升级行动)提案,海量激励将被释放

此前,Zebec社区在上线了投票治理系统Zebec Node后,曾上线了首个提案ZIP-1,对 Nautilus Chain 的推出进行了投票,作为 Zebec Chain 上线前的“先行链”,该链得到了社区用户的欢迎,投通过票的比例高达98.3%。…

负载均衡:LVS 笔记(二)

文章目录LVS 二层负载均衡机制LVS 三层负载均衡机制LVS 四层负载均衡机制LVS 调度算法轮叫调度(RR)加权轮叫调度(WRR)最小连接调度(LC)加权最小连接调度(WLC)基于局部性的最少链接调…

Apache Hadoop、HDFS介绍

目录Hadoop介绍Hadoop集群HDFS分布式文件系统基础文件系统与分布式文件系统HDFS简介HDFS shell命令行HDFS工作流程与机制HDFS集群角色与职责HDFS写数据流程(上传文件)HDFS读数据流程(下载文件)Hadoop介绍 用Java语言实现开源 允许…

SpringBoot:SpringBoot简介与快速入门(1)

SpringBoot快速入门1. SpringBoot简介2. SpringBoot快速入门2.1 创建SpringBoot项目(必须联网,要不然创建失败,在模块3会讲到原因)2.2 编写对应的Controller类2.3 启动测试3. Spring官网构建工程4. SpringBoot工程快速启动4.1 为什…

自学大数据的第一天

默认跳过基础部分,直接搞集群的部分,期间用到的linux基础默认大伙都会了(不会的话可以现用现查) Hadoop集群搭建 集群特点: 1,逻辑上分离~集群之间没有依赖,互不影响 2,某些进程往往部署在一台服务器上,但是属于不同的集群 3,MapReduce 是计算框架,代码层面的处理逻辑 集群的…

mindspore的MLP模型(多层感知机)

导入模块 import hashlib import os import tarfile import zipfile import requests import numpy as np import pandas as pd import mindspore import mindspore.dataset as ds from mindspore import nn import mindspore.ops as ops import mindspore.numpy as mnp from …

Python 内置函数eval()

Python 内置函数eval() eval(expression, globalsNone, localsNone) 函数用来执行一个字符串表达式,并返回表达式的值。 expression: 字符串表达式。global: 可选,globals必须是一个字典。locals: 可选,locals可以是任何映射对象。 示例 &…

微信小程序开发【壹】

随手拍拍💁‍♂️📷 日期: 2023.02.24 地点: 杭州 介绍: 2023.02.24上午十点,路过学院的教学楼时🏢,突然看见了一团粉红色。走进一看是一排梅花🌸,赶在它们凋零前,将它们定格在我的相…

QML 第一个应用程序Window

1.创建QML工程 新建文件或者项目-->选择Qt Quick Application 然后生成了一个默认的Window 2.main.cpp中如何加载的qml文件 QQmlApplicationEngine提供了从单个QML文件加载应用程序的便捷方式。 此类结合了QQmlEngine和QQmlComponent,以提供一种方便的方式加载…