隐马尔可夫模型(HMM),了解一下?

2024-05-12 06:38

本文主要是介绍隐马尔可夫模型(HMM),了解一下?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

隐马尔可夫模型(HMM)

  • 隐马尔可夫模型(HMM)
    • 1. 隐马尔可夫模型基本概念
      • 1.1 定义
      • 1.2 观测序列生成过程
      • 1.3 3个基本问题
    • 2. 概率计算方法
      • 2.1 直接计算法
      • 2.2 前向算法
      • 2.3 后向算法
    • 3. 学习算法
      • 3.1 监督学习方法
      • 3.2 非监督学习方法 EM算法 Baum-Welch算法
    • 4. 预测算法
      • 4.1 近似算法
      • 4.2 维特比算法

1. 隐马尔可夫模型基本概念

1.1 定义

  • 隐马尔可夫模型,又叫做HMM,是关于时序的概率模型,描述一个由隐藏的马尔科夫链随机生成不可观测的状态随机序列,再由各个状态生成一个可观测的观测随机序列的过程。
  • 状态序列(state sequence): 由隐藏的马尔可夫链生 成的状态的序列;
  • 观测序列(observation sequence): 每个状态生成一个观测,由此产生一个观测序列;
  • 序列的每一个位置可以看做一个时刻;
  • 隐马尔可夫模型属于生成模型。在语音识别、自然语言处理等领域应用广泛

三元组来表示一个隐马尔可夫模型 -w93

  • π 初始状态概率向量。 表示第1个时刻处于各个状态的概率
  • A 状态转移概率矩阵。 Aij 表示由状态i转移到状态j的概率
  • B 观测概率矩阵。 每一行对应一个状态,每一列对应一个观测,表示在该状态下,出现某个观测的概率

两个基本假设:

  • 齐次马尔可夫性假设。隐藏的马尔可夫链在任意时刻t的状态,只依赖于他前一个时刻的状态。与其他的状态和观测无关
  • 观测独立性假设。任意时刻的观测只依赖于该时刻的状态。与其他的观测和状态无关

应用:标注。
标注问题是给定观测序列预测其对应的标记序列。这是标记序列对应着状态序列。可以假设标注问题的数据是由隐马尔可夫模型生成的。

再多的公式也不如一个例子:
掷骰子,非常经典的问题,三种骰子,给出一个观测到的结果序列,那么对应的骰子序列,就是对应的隐藏状态序列。
-w360
-w360
-w360

1.2 观测序列生成过程

  • 按照初始状态概率分布 π 产生初始时刻 t=1 的状态
  • 按照观测概率矩阵,产生在此状态下的观测
  • 按照状态转移概率矩阵,得到下一个时刻 t=2 的状态
  • 依次直到t=T为止,就产生了一个长度为T的观测序列和状态序列

1.3 3个基本问题

  1. 概率计算。给定模型-w93
    ,以及观测序列 O ,求该观测序列出现的概率
  2. 学习问题。已知观测序列 O ,求模型参数A, B, π,使得该模型下该观测序列出现的概率最大,即用极大似然估计的方法估计参数
  3. 预测问题。给定模型和观测序列,求对应的最有可能的状态序列。即最大化条件概率P(I|O)

2. 概率计算方法

给出模型 + 观测序列。求该观测序列出现的概率

2.1 直接计算法

把所有可能出现该观测序列的状态序列,全部枚举出来。然后计算每一个状态序列+观测序列对应的概率。取其中最大的一个作为该观测序列的概率。
当马尔可夫链比较长的时候,枚举的情况太多,导致此方法理论可行,实际往往不行。

2.2 前向算法

先说一个简单的问题,假如你知道了隐藏的状态序列,让你求当前观测的序列概率。

-w182

那么概率的计算无非就是各个概率的相乘:(包括状态到状态的转移概率,以及状态到观测的概率)
-w844

现在问题升级:不知道隐藏状态序列,如何求出观测序列概率?

解法也很简单:对于t=1时刻,依次假设当前处于某一个状态,然后计算该状态下得到观测O(1)的概率。那么把所有的状态计算出来的概率**求和**,就得到了t=1时刻,出现该观测的概率(也就是我们要求的结果)。
然后开始递推,假设已经求出来t=T-1时刻,每一个状态对应的概率。那么对于t=T时刻,我们依旧遍历当前处于的状态,然后依据t=T-1的各状态概率计算结果,来得到t=T时刻,处于各个状态并得到T时刻观测的概率。遍历各个状态的概率,**求和**就得到了T时刻观测的概率,这个概率就是出现整个观测序列的概率,也就是我们要求的最终结果.
这就是前向算法(forward algorithm)。

比如下面这个例子:我们模型参数(骰子及各个概率),要求出出现观测1,6,3的概率是多少?

首先,如果我们只掷一次骰子:

观测结果为1。产生这个结果的总概率可以按照如下来计算,总概率为0.18:

P1表示第一次掷,对应的每一行,一次表示当前投掷的时候,分别使用的是D6 D4 D8骰子。

情况拓展,投掷两次骰子:

看到结果为1,6.产生这个结果的总概率为0.05:

我们拿P2列,D6行来解释下:它表示第二次投掷用的是D6骰子,那么第一次用哪个那?都有可能!所以第二次观测到6的总概率,就是(第一次用D6并投出了1的概率 + 第一次用D4并投出了1 + 第一次用D8并投出了1) * 第二次用了D6 * D6投出了6.
也就是说,第二个状态是D6,那么他可能是怎么来的那?它是由第一个状态转化来的,而且每一种第一个状态都可能以不同的概率转换成第二个状态。(这里我们为了简单,认为都是1/3)
然后依次遍历第二个状态所有的状态,求出概率后,把概率加起来就是我们t=2时刻的观测出现的概率了。

继续拓展,投三次:

看到结果为1,6,3,总概率为0.03:

这样一步一步的计算,无论马尔可夫链有多长,总能算完。相比直接穷举这样复杂度会低很多。减少计算量的关键在于每一次计算都直接引用前一个计算的结果,避免了重复计算。局部计算前向概率,然后利用路径结构将前向概率递推到全局。

2.3 后向算法

与前向计算相对应的是后向计算。从后向前推,大体的思想也是利用之前计算的结果来计算当前时刻的概率。

3. 学习算法

学习算法。主要是给出观测概率,让我们估计模型参数。也就是学习这个模型是什么。是最常见的情况。

3.1 监督学习方法

如果给出了多个观测序列和对应的状态序列,那么就属于监督学习。
所谓的监督学习就是用频率来估计概率。属于极大似然估计
比如:统计每个状态序列t=1时刻的状态,那么状态的频率我们就认为是状态的初始概率π

3.2 非监督学习方法 EM算法 Baum-Welch算法

非监督学习利用的是EM算法来进行参数估计

只有观测序列,没有状态序列,目标是求出对应的隐马尔可夫模型参数。那么隐马尔可夫模型实际上是一个含有隐变量的概率模型:
-w244

  • 第一步:定义完全数据的对数似然函数。

定义完全数据为:-w274
完全数据的对数似然函数是-w104

  • 第二步:EM算法的E步:

利用当前模型参数的估计值,得到完全数据的对数似然函数的期望:
-w281

其中,-w18是当前模型参数的估计值。-w15是要极大化的模型参数。

  • 第三步:EM算法的M步:

将上面公式拆解成三部分,分别只包含π, A, B然后分别极大化每一部分。利用了概率和为1这个约束条件,再加上拉格朗日乘子法得到最终结果。

4. 预测算法

已知模型参数和观测序列,目标:求出最可能的状态序列

4.1 近似算法

思想非常简单:在每个时刻t选择在该时刻最优可能出现的状态,从而得到一个状态序列,作为最终的预测结果。

4.2 维特比算法

维特比算法是用动态规划解决隐马尔可夫预测问题。求概率最大路径,这时一条路径对应着一个状态序列。
最优路径特性:从路径中间截开,那么前面一段和后面一段都是最优的。
跟前向算法求观测概率一样,我们还是递推的来求,但是这次只关注如何选择状态可以得到一个最大概率,而不是概率的和。最大的那个概率对应的状态,就是我们预测的状态。
继续拿投骰子说事:
首先,如果我们只投一次骰子:

观测结果为1,对应最大概率的骰子序列就是D4,因为D4产生1的概率是1/4,大于1/6和1/8.

继续,投两次骰子:

观测结果为1,6. 这时我们需要计算三个值,分别是第二个骰子是D4,D6,D8的最大概率。

以第二个骰子是D6为例。第一个可选的状态为D4,D6,D8,分别计算出概率为:
-w482

最终,P2(D6)选上面三个中概率最大的一个。

依次计算出P2(D4)和P2(D8),然后从这些里面取最大概率值,作为第二轮的预测状态。

这里跟前向传播比较相似,只不过每次都只取最大值。同样是利用了之前的计算结果,所以减小了计算量。


欢迎关注公众号:机器学习荐货情报局
一起进步,一起学习,一起充电~
欢迎投稿,讨论,拍砖

这篇关于隐马尔可夫模型(HMM),了解一下?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

AI Toolkit + H100 GPU,一小时内微调最新热门文生图模型 FLUX

上个月,FLUX 席卷了互联网,这并非没有原因。他们声称优于 DALLE 3、Ideogram 和 Stable Diffusion 3 等模型,而这一点已被证明是有依据的。随着越来越多的流行图像生成工具(如 Stable Diffusion Web UI Forge 和 ComyUI)开始支持这些模型,FLUX 在 Stable Diffusion 领域的扩展将会持续下去。 自 FLU

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者