统计学习--HMM

2024-06-04 20:32
文章标签 统计 学习 hmm

本文主要是介绍统计学习--HMM,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

隐马尔可夫模型的定义:

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

隐藏的马尔可夫链随机生成的状态的序列,称为状态序列
每个状态生成一个观测,而由此产生的观测的随机序列,称为观测序列
序列的每一个位置又可以看作是一个时刻 t。

隐马尔可夫模型由初始概率分布( π \pi π)状态转移概率分布(A)以及观测概率分布(B)确定。

  1. 一个模型:HMM三要素:
    A = [ a i j ] N ∗ N A=\left[ a_{ij} \right]_{N*N} A=[aij]NN,其中, a i j = P ( i t + 1 = q j ∣ i t = q i ) , i = 1 , 2 , . . . , N a_{ij}= P(i_{t+1}=q_j | i_t = q_i),i=1,2,...,N aij=P(it+1=qjit=qi),i=1,2,...,N
    B = [ b j ( k ) ] N ∗ M B=\left[ b_j(k) \right]_{N*M} B=[bj(k)]NM,其中, b j ( k ) = P ( o t = v k ∣ i t = q j ) , k = 1 , 2 , . . . , M ; j = 1 , 2 , . . . , N b_j(k) = P(o_t = v_k | i_t = q_j),k=1,2,...,M;j=1,2,...,N bj(k)=P(ot=vkit=qj),k=1,2,...,M;j=1,2,...,N
    π = ( π i ) \pi = (\pi_i) π=(πi),其中, π i = P ( i 1 = q i ) , i = 1 , 2 , . . . , N \pi_i = P(i_1=q_i),i=1,2,...,N πi=P(i1=qi),i=1,2,...,N

  2. HMM两个基本假设
    齐次马尔可夫性假设,即t 时刻状态只依赖于t-1时刻,与其他状态或观测无关。
    观测独立性假设,即任意时刻的观测只依赖于该时刻的状态。
    例子》 盒子和球

  3. HMM的3个基本问题
    在这里插入图片描述
    (1)evalution: 概率计算问题
    直接计算法、前向算法、后向算法
    (2)learning:学习问题
    监督学习算法:根据观测和状态序列计算频数,进而求得频率,最终求得到A、B、 π \pi π
    非监督学习算法:(Baum-Welch算法,即EM)目标也是学习HMM模型 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π)的参数
    (3)decoding:预测问题,也叫解码问题。
    近似算法:在每个时刻t 选择该时刻最有可能出现的状态 i t ∗ i_t^{*} it,从而得到一个状态序列 I ∗ = ( i 1 ∗ , i 2 ∗ , … , i T ∗ ) I^{*} = (i_1^{*},i_2^{*},\dots,i_T^{*}) I=(i1,i2,,iT),将它作为预测的结果。
    维特比算法:
    动态规划解隐马尔可夫模型预测问题,即用动态规划求概率最大路径(最优路径),这时一条路径对应一个状态序列。
    初始化
    递归:
    终止:最大概率
    回溯:上一个节点

总结————————————————
Dynamic Model
—HMM( mixture + time )
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
参考:
白板推导
在这里插入图片描述
主要涉及5个算法:
Baum-Welch/ EM
Viterbi algorithm
Forward Algorithm
Backward Algorithm
Forward-Backward Algorithm

这篇关于统计学习--HMM的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1031040

相关文章

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

IDEA与MyEclipse代码量统计方式

《IDEA与MyEclipse代码量统计方式》文章介绍在项目中不安装第三方工具统计代码行数的方法,分别说明MyEclipse通过正则搜索(排除空行和注释)及IDEA使用Statistic插件或调整搜索... 目录项目场景MyEclipse代码量统计IDEA代码量统计总结项目场景在项目中,有时候我们需要统计

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

在Linux终端中统计非二进制文件行数的实现方法

《在Linux终端中统计非二进制文件行数的实现方法》在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看,例如,在处理大型日志文件、数据文件时,了解... 目录在linux终端中统计非二进制文件的行数技术背景实现步骤1. 使用wc命令2. 使用grep命令

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示