HMM——隐马尔可夫模型

本文介绍了隐马尔科夫模型(HMM),它本质是模型,可解决三类问题。一是概率求解问题,有前向、后向概率等;二是参数估计问题,推荐Baum - Welch法;三是预测问题,推荐Viterbi算法。这些问题的解决都基于模型的三个参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 概述

首先需要明确的是HMM不是算法,它本质上是一个模型,但是借助该模型能够解决三种问题,概括而言,隐马尔科夫模型针对的三类问题为

1)求解概率问题
2)求解模型参数问题
3)预测问题

这三类问题的解决都是建立在模型的三个参数上的,常见的HMM有关的模型描述中都会出现同一句话“给定HMM模型 λ=(A, B, π)”,这一句话中即已经包含HMM模型所涉及到的三个关键参数,对三个参数的解释首先需要通过隐马尔科夫链进行说明,

隐马尔可夫链在实际问题中常常是由两部分组成,假设总的时刻长度为T,从开始到最终T时刻的时间里,会出现如下两条链,

序列链含义
观测序列链每个时刻观察到的观测值,O={O1, O2, O3, ……, OT}
状态序列链每个时刻观测时的状态,I={I1, I2, I3,……, IT}

由这两条链引出了HMM模型的三个重要参数,A、B和π,下面是对每个参数的解读,

参数含义解释
A状态转换矩阵t时刻观测值Ot对应的状态It,t+1时刻观测值Ot+1对应的状态It+1,HMM的基本假设之一是“当前状态仅与上一时刻状态有关”,所以由 It转到任何一种可能的t+1时刻的状态 It+1的概率会形成一个矩阵。假设整个观测过程可能存在n种状态,则状态转换矩阵的维度为n×n。
B观测概率矩阵假设整个过程中观测值可能有m种不同的情况,t时刻时候状态为 It,这一状态下每一种观测值都有其出现的的可能性。假设整个观测过程存在n种状态,则观测矩阵的维度为n×m。
π初始概率矩阵在t=1时,状态为I1,整个观测过程的n种状态都可能在t=1时刻出现,但是每种状态的初始概率可能不同,所以形成了一个维度为 1×n的初始概率矩阵,表示每种状态作为I1出现的概率。

以一个3种可能状态,4种可能观测的HMM模型作为示范,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
有了隐马尔科夫链和三个参数的概念,就能够解决三个重要的问题。

解决问题1:概率求解问题

概率求解问题的条件:给定HMM模型λ=(A, B, π),同时给定观测序列 O={O1, O2, O3, ……, OT},求某一时刻t的状态为 qi 的概率。这一概率又分为前向概率后向概率,对这两种概率进行说明,

概率说明符号表示
前向概率αt(i)给定模型λ=(A, B, π)的条件下,从开始到t时刻的观测序列为 O={O1, O2, O3, ……, Ot},且t时刻状态为 qi 的概率。P(O1,O2,O3,……Ot, It=qi | λ)
后向概率βt(i)给定模型λ=(A, B, π),且t时刻状态为 qi的条件下,从t时刻开始到T时刻的观测序列 O={Ot+1, Ot+2, Ot+3, ……, OT}的概率。P(Ot+1,Ot+2,Ot+3,……OT | It=qi, λ)

对于这两种概率分别进行推导。

前向概率

前向概率的说明如上表所示,一般情况下,将 P(O1,O2,O3,……Ot, It=qi | λ) 表示为αt(i),求解前向概率有两种计算方式,

1)暴力求解

在这里插入图片描述
这种计算方式理论上是可行的,但是在实际的操作过程中如果观测序列极长,此时就会出现内存不够用的情况,由此引出了更简洁的计算方式。

2)前向算法

在这里插入图片描述

后向概率

后向概率的说明如上表所示,一般情况下,将 P(Ot+1,Ot+2,Ot+3,……OT | It=qi, λ) 表示为βt(i)。,后向概率的推导过程比前向概率复杂,下面的推导过程可以多看几次,对理解后向概率的推导很有帮助。

后向概率推导建立在两个假设上面,

假设1:当前时刻的状态仅与前一时刻有关。
假设2:当前时刻的观测结果仅与当前时刻的状态有关,与其他时刻观测无关。

一定要记住这两个假设,它们在推导过程中很重要)

具体的推导过程如下,前向概率从t=0时刻开始推导,后向概率与之相反,从最终时刻T向前一时刻推导,
在这里插入图片描述

其他重要概率

前向概率和后向概率的计算式整个HMM过程的基础,由这两个概率可以拓展延伸得到其他一些很重要的概率,这些概率在HMM的其他两个问题的解决中是起到决定性作用。

1)求取γt(i)

通过在这里插入图片描述
在这里插入图片描述

2)求取ξt(i, j)

在这里插入图片描述

3)观测序列为O时,任意时刻出现状态qi的概率

在这里插入图片描述从初始时刻1到终止时刻T期间均有可能出现状态qi

4)观测序列为O时,任意时刻从状态qi转移到qj的概率

在这里插入图片描述从初始时刻1到终止时刻T-1期间均有可能出现状态qi。

解决问题2:参数估计问题

此时状态序列和观测序列都已知,给出一直状态和观测序列 {I, O} = { (I1, O1), (I2, O2), (I3, O3), …(IT, OT) } ,通过运用算法得到一组最优的HMM模型的参数A、B和 π。有两种方法能够解决这个问题。

方法1:极大似然估计(不推荐使用)

可以简单地理解为一般的求解先验概率,
在这里插入图片描述
其中,N 表示存在N种不同的状态;M 表示每个状态下都存在相同的M种观测值;
Aij 是在状态i 转换到状态j 的总次数,aij 的极大似然概率就是在状态i 转换不同的N 种状态的总次数中,从状态i 转换到状态j 的占比。
bjk 是在状态j 的条件下观测值为k的总次数,bjOk 表示在状态j 下观测到

方法2:Baum-Welch法(推荐使用)

极大似然法求取各项参数的过程很简单,通过对频率的计算就能够得到。但是一般情况下,状态序列 I 是不可见的,只有观测序列 O 是可见的,存在隐变量时,不能简单使用极大似然法求取先验概率,正确的方式是使用EM算法(EM:期望最大化)。该算法可以分为E步和M步。

下面的推导依旧建立在有不同的 N种状态,每种状态都有相同的 M种观测值的前提假设之上。

E步

假设当前模型的参数的估计值为 λ ‾ \overline{λ} λ,而模型的最优参数为 λ \lambda λ
在这里插入图片描述

M步

M步通过多轮的迭代得到最优的一组参数值。为了使得期望E最大化,可以分别针对上面的每一项求最大值,最大值时对应的参数 λ \lambda λ 即为HMM模型的最优参数。对上式中的三项中的每一个进行拆解,每一项都可以用拉格朗日乘子法得到一组最优的解。

第一项进行拆解,
在这里插入图片描述
故初始概率 π \pi π 能够使用概率问题中的相关计算得到。注意:上面的推导过程中 γ \gamma γt(i)对应HMM模型的概率 γ \gamma γ1(i),即 P(I1=qi | O ⃗ \vec{O} O , λ \lambda λ),其中 O ⃗ \vec{O} O ={ O1, O2, …, OT }。而 γ \gamma γ则是拉格朗日乘子法的乘子。

第二项进行拆解,
在这里插入图片描述
在这里插入图片描述
上式最后可以转换为上一节内容中的两个简洁的符号表示,
在这里插入图片描述
第三项进行拆解,
在这里插入图片描述
可以进一步的简化表示为,
在这里插入图片描述

解决问题3:预测问题(解码问题)

已知模型 λ \lambda λ = (A, B, π \pi π) 和 观测序列 O ⃗ \vec{O} O = (O1,O2, …, OT),求给定观测序列和模型参数的条件下,使得概率 P( O ⃗ \vec{O} O | λ \lambda λ) 最大时对应的状态序列 I ⃗ \vec{I} I = (i1, i2, …, iT)。

同样存在两种方式求解这一类问题。

方法1:近似算法(不推荐)

在整个观测过程的每个时刻t,选取最有可能出现的状态 i,对于给定模型 λ \lambda λ和观测序列 O ⃗ \vec{O} O ,t时刻状态为 i 的概率在前向、后向概率计算的一节中已经有讲解,
在这里插入图片描述
则t时刻最有可能的状态为,
在这里插入图片描述
即N种不同的状态中,使得 γ   t   ( i ) \gamma~t~(i) γ t (i)最大时所对应的状态。

方法2:Viterbi算法(推荐)

该方法是使用动态规划的思想求解HMM预测问题,通过已知的观测序列,求取最优的状态序列。

t=1时刻开始,递推t∈[1, T] 时刻状态为i的各部分路径的最大概率。当t=T时刻的最大概率即为最优解的路径P*,可以确定T时刻的状态 IT。由 IT向前可以逐步推得其余时刻 IT-1、 IT-2… I2、 I1,由此得到整个观测过程的状态。该状态对应最大的 P( O ⃗ \vec{O} O | λ \lambda λ)。VB算法的基本思路如下,
在这里插入图片描述
具体步骤为,
在这里插入图片描述

Viterbi算法示例

在这里插入图片描述
在这里插入图片描述
递推过程,
在这里插入图片描述
推导过程完毕,从最终的T时刻选取最优的路径终点,
在这里插入图片描述
回溯过程开始,
在这里插入图片描述

内容概要:本文详细介绍了扫描单分子定位显微镜(scanSMLM)技术及其在三维超分辨体积成像中的应用。scanSMLM通过电调透镜(ETL)实现快速轴向扫描,结合4f检测系统将不同焦平面的荧光信号聚焦到固定成像面,从而实现快速、大视场的三维超分辨成像。文章不仅涵盖了系统硬件的设计与实现,还提供了详细的软件代码实现,包括ETL控制、3D样本模拟、体积扫描、单分子定位、3D重建和分子聚类分析等功能。此外,文章还比较了循环扫描与常规扫描模式,展示了前者在光漂白效应上的优势,并通过荧光珠校准、肌动蛋白丝、线粒体网络和流感A病毒血凝素(HA)蛋白聚类的三维成像实验,验证了系统的性能和应用潜力。最后,文章深入探讨了HA蛋白聚类与病毒感染的关系,模拟了24小时内HA聚类的动态变化,提供了从分子到细胞尺度的多尺度分析能力。 适合人群:具备生物学、物理学或工程学背景,对超分辨显微成像技术感兴趣的科研人员,尤其是从事细胞生物学、病毒学或光学成像研究的科学家和技术人员。 使用场景及目标:①理解和掌握scanSMLM技术的工作原理及其在三维超分辨成像中的应用;②学习如何通过Python代码实现完整的scanSMLM系统,包括硬件控制、图像采集、3D重建和数据分析;③应用于单分子水平研究细胞内结构和动态过程,如病毒入侵机制、蛋白质聚类等。 其他说明:本文提供的代码不仅实现了scanSMLM系统的完整工作流程,还涵盖了多种超分辨成像技术的模拟和比较,如STED、GSDIM等。此外,文章还强调了系统在硬件改动小、成像速度快等方面的优势,为研究人员提供了从理论到实践的全面指导。
内容概要:本文详细介绍了基于Seggiani提出的渣层计算模型,针对Prenflo气流床气化炉中炉渣的积累和流动进行了模拟。模型不仅集成了三维代码以提供气化炉内部的温度和浓度分布,还探讨了操作条件变化对炉渣行为的影响。文章通过Python代码实现了模型的核心功能,包括炉渣粘度模型、流动速率计算、厚度更新、与三维模型的集成以及可视化展示。此外,还扩展了模型以考虑炉渣组成对特性的影响,并引入了Bingham流体模型,更精确地描述了含未溶解颗粒的熔渣流动。最后,通过实例展示了氧气-蒸汽流量增加2%时的动态响应,分析了温度、流动特性和渣层分布的变化。 适合人群:从事煤气化技术研究的专业人士、化工过程模拟工程师、以及对工业气化炉操作优化感兴趣的科研人员。 使用场景及目标:①评估不同操作条件下气化炉内炉渣的行为变化;②预测并优化气化炉的操作参数(如温度、氧煤比等),以防止炉渣堵塞;③为工业气化炉的设计和操作提供理论支持和技术指导。 其他说明:该模型的实现基于理论公式和经验数据,为确保模型准确性,实际应用中需要根据具体气化炉的数据进行参数校准。模型还考虑了多个物理场的耦合,包括质量、动量和能量守恒方程,能够模拟不同操作条件下的渣层演变。此外,提供了稳态求解器和动态模拟工具,可用于扰动测试和工业应用案例分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值