HMM Algorithm Theory

【信息科学与工程学】计算机科学与自动化——第三百零五篇 计算机系统中的各类运算操作01 编号类型领域运算操作运算类型算法算法的详细设计及数学分析参数列表及参数的数值设计应用场景 (100+条)集合运算​1集合运算关系代数并集 (Union)集合运算归并排序去重合并两个集合,去除重复元素。时间复杂度 O(n+m),n,m为两集合大小。输入:集合A, B。输出:A∪B。数据集成、多表结果合并、去重后的全量数据提取。2集合运算关系代数交集 (Intersection)集合运算哈希交集找出同时属于两个集合的元素。平均时间复杂度 O(min(n,m)),最坏 O(n*m)。输入:集合A, B。输出:A∩ 阅读详情

0. 简述

    本文主要参考"A Tutorial On Hidden Markov Models",这个文章可以在http://vision.ai.uiuc.edu/dugad/上面找到。主要是通过阅读这篇技术报告来了解一些HMM的学习算法,即分段K-Means和向前向后算法(也称为BaumWelch算法)。

    前面两篇文章介绍过HMM的基础了,这里就更多的直接上公式了。那两篇文章是:隐马尔可夫模型-HMM-简述-1-原理-示例,隐马尔可夫模型-HMM-简述-2-评估-解码-学习。

1. 关于符号说明   

    这里简单说明一下,这篇文章将隐藏状态简称为状态,将观察状态简称为符号。

    N:状态的种类,M:符号的种类,T:符号序列长度(这里假设观察样本长度都是有一样长的)。

    i_t:t时刻的状态。

    {V}:符号集合。

    Π:状态的初始概率向量。

    a_i_j:P(t+1时刻处于状态j | t时刻处于状态i),这是状态之间的转移,是相邻时间的,t时刻到t+1时刻。

    b_j(k):P(t时刻的符号是k | t时刻处于状态j),这是状态到符号的条件概率,是同一时间的,都是t时刻。

    O_t:t时刻的符号。

    λ=(A,B,Π):HMM模型,或者说是HMM的参数。

    原文中的符号说明:    

2. 评估

    评估问题:已知HMM参数,计算符号序列的概率,即P(O | λ)。

    首先介绍一种直接的计算方式,计算该符号序列对应每一种状态序列的概率,然后将这些概率值求和,即为这个符号序列的概率。 

    I = i_1,i_2,...,i_T表示任意一个状态序列,O = O_1,O_2,...,O_T表示任意一个符号序列。

    P(O,I | λ) = P(O | λ,I) * P(I | λ)

    P(O | λ,I) = b_i_1(O_1) * b_i_2(O_2) * ··· * b_i_T(O_T)

    P(I | λ) = Π_i_1 * a_i_1_i_2 * ··· * a_i_T-1_i_T

    P(O,I | λ)对所有的I求和,即为P(O | λ)

    这样计算复杂度较高,对于每个状态I,计算时间为2T,状态I序列的数量为N^T,所以时间复杂度为2T * N^T,是T的指数函数。原文中的公式推导:

    下面给出向前算法,来解决这个问题。首先定义向前因子,α_t(i)=P(O_1,O_2,...,O_t, i_t=i | λ),就是P(O, I|λ)从时刻1到时刻t的概率。这个α_t(i)是可以动态规划计算的。
    α_1(i) =  Π_i * b_i(O_1), 1<=i<=N
    α_t+1(j) =  Σ_i (α_t(i) * a_i_j) * b_j(O_t+1)
    P(O|λ) = Σ_i α_T(i)
  这里公式与前面公式中下标的区别值得注意,前面公式遍历每一种状态序列,i_1表示状态序列i的第一个状态,向前算法以及后面的向后算法,只是单纯针对状态来说的,因此1表示第一个状态。
    这样求α_1到α_T,一共T次,每次计算需要2*N^2次乘法,复杂度为2T * N^2。
    原文的公式推导:
    
    下面给出向后算法,来解决这个问题。定义向后因子,β_t(i) = P (O_t+1,O_t+2, ...O_T | i_t=i, λ)。递推公式如下:
    β_T(i) = 1, 1<=i<=N。
    β_t(i) = Σ_j (a_i_j) * b_j(O_t+1) * β_t+1(j),从状态i转移到状态j,然后从状态j确定符号O_t+1,然后就是递归
    P(O|λ) = Σ_i  Π_i * b_i(O_1) * β_1(i) 
    向后算法的复杂度与向前算法一样,也是2T*N^2。
    
3. 解码
    解码问题:已知HMM参数,求产生某个符号序列概率最大的状态序列。即计算概率最大的那个P(O,I | λ)。这个问题实际上,可以使用前面的直接方法,向前算法呢和向后算法分别解决。直接方法就是算每个P(O,I | λ),然后取最大值。向前算法和向后算法就是将公式中的求和变成求最大值即可。
    向前算法的变化:   
    α_1(i) =  Π_i * b_i(O_1), 1<=i<=N
    α_t+1(j) =  max{ (α_t(i) * a_i_j)  } * b_j(O_t+1), 1<=i<=N
    max{ P(O, I|λ) } = max{ α_T(i) }, 1<=i<=N
    最大状态序列= {i_1, i_2, ..., i_T}, 其中α_t(i_t) = max{a_t(j)}, 1<=j<=N
    向后算法类似,这里忽略了。解码常用的算法是维特比算法,即Viterbi Alogrithm,其实就是向前算法的变化,把概率变为-ln(概率),这样通过乘法求最大值,变成了通过加法求最小值,计算量大大减小了。
    原文公式推导:   

    

4. 学习

    学习问题:根据符号序列和与其相关的状态集合,计算是符号序列概率最大的HMM参数。

    有两个方法,一个是分段KMeans(The Segmental K-means Algorithm),另一个是向前向后算法(也称为Baum-Welch算法)。

    The Segmental K-means Algorithm:通过最大化P(O,I | λ),来调整λ=(A,B,Π),其中I根据解码方法得到的最优状态序列。

    The Baum-Welch re-estimation Formulas:通过增加P(O | λ)到一个最大值,来调整λ=(A,B,Π)。P(O | λ)的计算需要针对涉及所有的状态序列I,通过将P(O,I | λ)求和得到。因此这个算法关注的是所有的状态序列,而segmental K-means关注的是最优的状态序列。

4.1 分割K-means算法 (The Segmental K-means Algorithm)

    假设λ为当前参数,λ'为新计算的参数,I为λ对应计算出的最优状态序列,I'为λ'计算出的最优状态序列,如果P(O,I|λ) < P(O,I'|λ'),那么继续迭代,令λ=λ'。训练这个模型,我们需要一些符号序列。假设有w个符号,每个符号序列为O=O1,O2,...,OT,长度都为T。每个符号假设是一个D(>=1)的向量。这个算法由以下几个步骤组成:

   第一步,随机选择N个符号(D维的向量),然后将wT个符号的每一个符号,分到与其欧氏距离最小的类别中。这样产生了N个类,每个类称为一个状态(从1到N)。这个初始类的划分不会决定最终HMM的参数,但是会决定得到最终HMM参数需要迭代的次数。在我们的例子中,我们均匀的选取N个符号序列,使得这N个符号序列之间相间的符号序列个数相同,并且从每个符号序列中选取一个符号,即在第1个序列中选择第1个符号,在2个序列中选择第2个符号,...,在第N个符号序列中选取第N个符号。具体如何选择可以根据个人意愿进行选择。

    第二步,计算初始概率和转移概率,估计Π_i和a_i_j。Π_i=在类别i中O1的个数 / O1的个数。这个很好理解,比如,初始有w个符号序列,那么就有w个O1,分母就是w,分子就是这w个O1有多少个被分到类别i中。a_i_j=O_t在类别i中且O_t+1在类别j中的个数 / O_t在类别i中的个数。

     

    第三步,计算每个状态(指每个类别)的均值和方差。   

    

    第四步,估计观察状态到符号的概率。通过计算符号在每个状态(分类)中的分布来估计。这里假定符号的分布服从高斯分布。
    

    第五步,根据估计的HMM参数,计算每个观察序列的最优状态序列I'。如果I'与I不同,那么对应不同的Oi会被重新分配,比如I'与I在第3个元素上不同,那么O3就会重新分配到I'第三个元素对应的分类上去。

    第六步,如果在第二步中有重新分配的情况,那么跳转到第二步,进行迭代。

    分段K-means算法,在一些观察密度函数和我们假设的高斯密度函数上,收敛到“状态最优似然函数”。

4.2 向前向后算法(Baum-Welch 算法)

  这个方法首先假设有一个初始的HMM模型,然后通过下文介绍的方法来改进HMM模型使得P(O|λ)最大化。一个初始的HMM模型可以使用任何的方法构造,但是我们可以使用分段K-means算法的前五步来构造,这样可以得到一个相对合理的HMM的估计。不管怎样,我们经假设一个初始的HMM是已知的。这个算法通过调整参数λ,来使得P(O | λ)最大化。这个优化标准被称为最大似然标标准。P(O | λ)被称为似然函数。

    下面首先说明一些计算变量:
     γ_t(i)表示t时刻处于状态i的概率,分子刚好是向前因子与向后因子的乘积。
    

   ξ_t(i,j)表示t时刻在状态i,t+1时刻在状态j的概率。

    参数估计的公式为:   

    

    其中,Π_i的公式感觉应该是Π_i= γ_1(i),即第一个时刻是状态i的概率。(不知道作者是不是写错了,感觉是写错了)
    a_i_j的分子是从i状态转移到j状态的联合概率,分母是i状态的概率,相除刚好是从i状态到j状态的转移概率。
    b_j(k)的分子是在j状态且符号为k的联合概率,分母是在j状态的概率,相除刚好是已知j状态,输出符号为k的条件概率。

    这样计算分两个步骤:第一,根据λ,计算λ';第二,如果P(O | λ')>P(O | λ),那么更新λ为λ'迭代计算,否则停止计算。

    Baum-Welch算法需要很多乘法,因此数值可能容易溢出,这需要一些可能的处理技术。而Segmental K-means算法使用Viterbi算法来产生I,因此溢出问题不严重。Segmental K-means的优势在于,有时我们比较关注最优状态序列产生的观察序列,而对所有状态序列产生的观察序列并不关心。此外Segmental K-means的计算量很小。

【信息科学与工程学】计算机科学与自动化——第十篇 芯片设计00 芯片中的基础学科知识03 湿度加速:Peck模型 AF = (RH_stress/RH_use)^n exp(Ea/k(1/T_use-1/T_stress))热循环加速因子:Arrhenius AF = exp(Ea/k (1/T_use - 1/T_stress))等离子体鞘层厚度:d_s = (2/3)√(2e/m) V^{3/4} / (ω_p √(J))过程能力Cpk = min((USL-μ)/(3σ), (μ-LSL)/(3σ))薄膜应力:Stoney公式 σ_f = (E_s t_s²)/(6t_f R) 阅读详情

相关推荐

【信息科学与工程学】【数据科学】第十八篇 数值分析 系列二 数值算法设计01

编号类型领域问题问题的数学分析及数值分析算法逐步推理思考的数学表达式参数列表及参数的边界范围及条件及常数关联知识1数值积分数值逼近计算定积分 I=∫ab​f(x)dx的近似值。数学分析:将积分区间等分,利用插值多项式近似被积函数,构造机械求积公式。数值分析:Newton-Cotes公式是等距节点的插值型求积公式。高阶公式(n≥8)因Cotes系数有正负,数值不稳定。偶阶公式(如Simpson)具有n+1次代数精度。为提高精度,常采用复化求积法(将区间细分后应用低阶公式)。

weixin_49199313的博客 159

隐马尔可夫模型(HMM)攻略

隐马尔可夫模型 (Hidden Markov Model,HMM) 最初由 L. E. Baum 和其它一些学者发表在一系列的统计学论文中,随后在语言识别,自然语言处理以及生物信息等领域体现了很大的价值。平时,经常能接触到涉及 HMM 的相关文章,一直没有仔细研究过,都是蜻蜓点水,因此,想花一点时间梳理下,加深理解,在此特别感谢 52nlp 对 HMM 的详细介绍。   考虑下面交通灯的例子

likelet的专栏 22万+

巴塞瓦尔能量守恒定理

巴塞瓦尔能量守恒定律

渣渣小码农的博客 2186

语音信号处理-2-----语音信号处理的常用算法1(HMM)

这个Blog主要介绍语音信号处理中隐马尔科夫模型。 一些小常识 HMM在语音识别中的地位一直很高,只是最近这八九年间被深度学习给取代了。对于HMM应用于语音识别这一领域,我们就需要夸一夸李开复大佬,正是他把HMM带入了语音识别。此处应有呱唧呱唧!!! HMM--隐马尔科夫模型 HMM又叫隐马尔科夫模型,顾名思义跟跟线性代数中出名马尔科夫链肯定有着千丝万缕的联系。从课本上的定义:“HMM是一...

zhangming0411的博客 3019

A tutorial on hidden Markov models

HMM相关论文

tutorial on hmm and applications

---tutorial on hmm and applications------tutorial on hmm and applications------tutorial on hmm and applications------tutorial on hmm and applications------tutorial on hmm and applications------tutorial on hmm and applications---

HMM的概率计算问题

HMM的概率计算问题 HMM的概率计算问题是指,给定模型参数λ=(A,B,π)λ=(A,B,π)\lambda = (A,B,\pi) 和观测序列O=(o1,o2,...,oT)O=(o1,o2,...,oT)O = (o_1,o_2,...,o_T),计算在模型λλ\lambda下,观测序列OOO出现的概率:P(O|λ)P(O|λ)P(O | \lambda)。 直接计算 按概率公...

Joyliness 2707

“傻瓜”stata入门——熟悉操作界面

小白开始学习stata和matlab,零基础上手

nnpersistent的博客 4457

HMM之前向后向算法

注:本文中所有公式和思路来自于邹博先生的《机器学习升级版》,我只是为了加深记忆和理解写的本文。 前文已经详细介绍了HMM模型的结构、参数等等,本文将介绍HMM的三个基本问题中的第一个:概率计算问题 在说前向后向算法之前我们需要先讲一下概率计算的暴力求解是怎么做的(不会白讲的,后边会用到) 暴力求解 按照概率公式,列举所有可能的长度为T的状态序列I = {i1

人生就是不断Boost的过程 最好永远都不要收敛 4818

Realtek 10GbE芯片组解析:低成本高速网络方案

10GbE(万兆以太网)技术通过提升网络带宽,显著改善了数据传输效率,成为现代网络架构的核心组件。其工作原理基于高速串行通信协议,通过优化信号处理和编码技术实现低延迟、高吞吐量。在技术价值上,10GbE不仅满足数据中心和企业网络的高需求,还逐步渗透到消费级市场,推动家庭和小型企业的网络升级。应用场景包括NAS存储、视频编辑工作站和云服务接入等。Realtek最新发布的RTL8127、RTL8159和RTL8261C芯片组,以低功耗和低成本优势,进一步降低了10GbE的普及门槛。这些芯片支持PCIe Gen4

weixin_36427956的博客 587

引入 CloudWeGo 后飞书管理后台平台化改造的演进史

飞书管理后台是飞书套件专为企业管理员提供的信息管理平台,它通过引入 Kitex 泛化调用对飞书管理后台进行平台化改造,成为了企业统一数字化管理平台。本文将从三个方面为大家讲解 Kitex 泛化调用在飞书管理后台平台化改造过程中的落地实践。...

weixin_44186218的博客 1762

通信原理:确知信号

(一)确知信号的类型 1.周期信号:信号每隔一段时间呈周期性变化 s(t)=s(t+T0),−∞<t<+∞s(t)=s(t+T_0) , -\infty<t<+\inftys(t)=s(t+T0​),−∞<t<+∞ 2.功率信号与能量信号 (1)能量(有限)信号 能量:0<E=∫−∞+∞s2(t)dt<+∞能量 :0<E=\int_{-\infty}^{+\infty}s^2(t)dt<+\infty能量:0<E=∫−∞+∞​s2(t)d

weixin_45366970的博客 2182

保姆级教程:用PyTorch从零实现SDE扩散模型(附完整代码与MNIST实战)

本文提供了一份详细的PyTorch教程,指导读者从零开始实现SDE扩散模型,并附有完整的代码示例和MNIST数据集实战。通过解释随机微分方程(SDE)的核心概念、模型架构设计、训练流程实现以及采样生成过程,帮助开发者掌握扩散模型的构建与应用。

weixin_28677005的博客 265

HMM(隐马尔可夫模型)的理解1

概念角色类比贝叶斯概率规则:怎么用证据更新信念法律中"证据→更新定罪概率"的推理法则持续证据场景:证据源源不断,而非一次给齐庭审中证人陆续出庭作证HMM模型:真相(状态)藏在水面下且在流动,只能通过涟漪(观测)持续推断根据每天看到的"有人带伞"持续推断看不见的天气变化所以回到你之前问的 Rabiner 教程:HMM 的第一个基本问题(评估)和滤波问题,本质就是在持续证据流下做贝叶斯推理;而 Baum-Welch(EM)则是反过来,用贝叶斯方法从证据中学习模型参数本身。通俗解释。

shimingwang的博客 513

rk3576 点亮 LCD(eDP)

RK3576 处理器集成了对 **eDP (Embedded DisplayPort)** 接口的支持,主要用于驱动嵌入式或笔记本电脑的内置屏幕。支持 **eDP 1.3 版本协议**, 最大可支持 ****4K@120Hz**。

weixin_35723192的博客 354

【AUTOSAR-DEM】-2.1-APP SWC设置UDS/OBD DTC检出和恢复

点击返回「《Autosar_BSW高阶配置》总目录」 案例背景(共6页精讲): DEM模块提供两种不同类型的Event: • BSW-related events:DEM_EVENT_KIND_BSW(通过C-API报告 - Dem_SetEventStatus) • SW-C-related events:DEM_EVENT_KIND_SWC(通过RTE operation - SetEventStatus) 下面我们讲讲在APP SWC中设置BusOff(总线关闭) DTC故障成立/恢复(其它

「汽车电子助手」的博客 3944

机器学习系列: EM算法

EM算法是一种通过迭代优化处理含隐变量概率模型的参数估计方法。该文系统介绍了EM算法的发展历程、基本原理、推导过程及收敛性证明。算法通过E步计算完整数据对数似然关于隐变量后验分布的期望(Q函数)和M步最大化Q函数实现参数更新,确保似然函数单调递增至局部最优。文中以三硬币模型为例演示了EM算法的具体应用,并给出MATLAB实现代码。EM算法广泛应用于高斯混合模型、隐马尔可夫模型等非监督学习任务,为处理缺失数据问题提供了有效解决方案。

2201_75572389的博客 291

揭秘LLM如何预测下一个词

Transformer结构的大语言模型(LLM)通过自回归训练学习预测下一个词汇,其核心能力源自权重矩阵的动态优化。自注意力层的Wq/Wk/Wv矩阵捕捉语义关联,前馈网络的W1/W2矩阵进行非线性特征提取,LM Head的W_{lm}矩阵将语义映射到词汇概率。训练过程中,这些矩阵通过反向传播不断调整,最终使模型能够根据上下文(如"我"→"爱")生成合理的后续词汇。这种基于矩阵变换的数学机制是LLM智能生成文本的本质原因。(150字)

ZhangJiqun&191cm&85kg 376

《通信原理》樊昌信、《移动通信》——知识点总结

什么是信号 有时间,有幅值可以是电压电流 信号的时移对信号的频域只会引起相位变化 第2、3章 频率与谱、随机信号 傅里叶变换十大公式 2.1 频谱、频谱密度函数、 功率谱、能量谱 均方值:先平方再去平均值——m(t)2‾\overline{m(t)^2}m(t)2​——平均功率R(0)R(0)R(0) 均值的平方:先求均值再进行平方——m(t)‾2\overline{m(t)}^2m(t)​2——直流功率R(∞)R(\infty)R(∞) 正弦信号的有效值A2/2A^2/2A2/2 研究信号时域的能量和功率

qq_44292038的博客 3万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

2020-12-26

数字信号处理巴塞伐尔定理证明

weixin_45628383的博客 468

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

隐马尔科夫模型-HMM-A Tutorial On Hidden Markov Models

0. 简述     本文主要参考"A Tutorial On Hidden Markov Models",这个文章可以在http://vision.ai.uiuc.edu/dugad/上面找到。主要是通过阅读这篇技术报告来了解一些HMM的学习算法,即分段K-Means和向前向后算法(也称为BaumWelch算法)。     前面两篇文章介绍过HMM的基础了,这里就更多的直接上公式了。那两篇文章...

weixin_34295316的博客 300

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

通信原理前两章

该篇为通信原理第一章和第二章的笔记: 第一章 首先要牢记下列基本概念: •消息:信息的载体 信息的物理形式 •信息:消息中包含的有效内容 •信号:信息的传输载体 •信源:发送信号 •信道:传输信号 •信宿:接受信号 •单工:单方向传输 •半双工:通信双方都能收发消息,但是不能同时收发 普通对讲机 •全双工:双方可以同时收发消息 傅里叶变换; 傅里叶逆变换: ...

Cherylzzx的博客 1140

隐马尔科夫模型Hmm的研究

隐马尔科夫模型Hmm的研究摘要 隐马尔可夫模型(Hidden Markov Model,HMM)作为一种统计分析模型,创立于20世纪70年代。80年代得到了传播和发展,成为信号处理的一个重要方向,现已成功地用于语音识别,行为识别,文字识别以及故障诊断等领域。 本文主要从以下几个方面研究了hmm。第一,分析了hmm经典三大问题及其推导过程。第二,总结hmm在语音信号处理上一个经典的应用——应用hmm说

Terrenceyuu的博客 1909

A tutorial on Hidden Markov Models and Selected Applications in Speech Recognition---第一部分

说明:原论文《A tutorial on Hidden Markov Models and Selected Applications in Speech Recognition》是一篇隐马尔可夫模型在语音识别中的应用的经典论文,翻译还在修改之中,纰漏较多望大家批判吸收,多提意见。 隐马尔可夫模型指南及其在语音识别中的应用 (翻译初稿) 原作者:LAWRENCE R. RABINER, FE

jkkl2016的专栏 4148

第五章-信源编码(二)

接上一节信源编码(一)简单介绍第五章的主要内容,下面介绍编码的具体定义     5.1 编码的定义 信源输出符号序列长度L=1,信源符号集A(a1,a2,…,an),信源概率空间为 若将信源X通过二元信道传输,就必须把信源符号ai变换成由0,1符号组成的码符号序列,这个过程就是信源编码。 码可分为两类: 固定长度的码,码中所有码字的长度     都相同,如表5-1中的码1就是定长

zm1_1zm 1万+
上一篇: Bessel不等式与Cauchy不等式以及Holder不等式
下一篇: Calculus of Variation
shareCode
博客等级 码龄15年 125粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值