【NLP】隐马尔可夫(HMM)与条件随机场(CRF)简介

news2024/11/16 0:02:29

一. HMM

隐马尔可夫模型(Hidden Markov Model, HMM)是一种用于处理含有隐藏状态的序列数据的统计学习模型。通过建模隐藏状态之间的转移关系以及隐藏状态与观测数据的生成关系,HMM能够在仅观察到部分信息的情况下进行状态推理、概率计算、序列标注以及模型参数学习,从而服务于各种实际应用中的序列数据分析和预测任务。
所以,HMM特别适用于那些只能观察到部分信息(即观测序列),而系统的实际状态(即隐藏状态)无法直接观察的情况。

1.1 HMM中的基本概念

  1. 隐藏状态(Hidden States):系统的真实状态序列,通常表示为 S = S 1 , S 2 , . . . , S T S={S_1, S_2, ..., S_T} S=S1,S2,...,ST,其中每个状态 S t S_t St在某一时刻 t t t 独立地取值于一个离散状态集。这些状态是不可直接观察的,即我们不能直接看到系统处于哪个状态。
  2. 观测状态(Observation States):对应于隐藏状态序列的可观测数据序列,记为 O = O 1 , O 2 , . . . , O T O={O_1, O_2, ..., O_T} O=O1,O2,...,OT。每个观测 O t O_t Ot是隐藏状态 S t S_t St生成的,且与该时刻的隐藏状态相关联。
  3. 初始状态分布(Initial State Distribution):用 π π π表示,描述系统在起始时刻处于各个隐藏状态的概率分布,即 P ( S 1 = s ) P(S_1 = s) P(S1=s)
  4. 状态转移概率(Transition Probabilities):用状态转移矩阵 A A A 表示,描述系统从一个隐藏状态转移到另一个隐藏状态的概率。 A i j A_{ij} Aij表示在任一时刻,系统从状态 i i i 转移到状态 j j j 的概率。
  5. 观测概率(Emission Probabilities):用观测概率矩阵 B B B 表示,给出在给定隐藏状态下生成某个观测值的概率。 B j ( k ) B_{j(k)} Bj(k) 表示在隐藏状态 j j j 下观测到符号 k k k 的概率。

1.2 HMM的运作机制

HMM的核心是通过已知的观测序列来推断隐藏状态序列以及模型参数。主要涉及以下三个基本问题:

  • 概率计算问题(Evaluation Problem):给定一个HMM模型(M)和一个观测序列 O O O,计算该观测序列出现的概率 P ( O ∣ M ) P(O|M) P(OM)
  • 解码问题(Decoding Problem):给定一个HMM模型和一个观测序列 O O O,找出最有可能产生这个观测序列的隐藏状态序列,即求最大后验概率路径 a r g m a x S P ( S ∣ O , M ) argmax_S P(S|O, M) argmaxSP(SO,M)
  • 学习问题(Learning Problem):根据观测序列数据估计或学习HMM的参数(初始状态分布 π π π、状态转移矩阵 A A A 和观测概率矩阵 B B B),使得模型能够最好地解释给定的数据。

为了解决这些问题,HMM采用动态规划算法,如前向算法、后向算法、维特比算法(Viterbi algorithm)和Baum-Welch算法(也称EM算法)等,求解模型中给定观测序列下最可能的隐藏状态序列。
具体来说,维特比算法避免了对所有可能的隐藏状态序列进行枚举,而是通过动态规划实现了对最可能路径的高效搜索,时间复杂度为 O ( T × N 2 ) O(T×N^2) O(T×N2),其中 T T T 是观测序列长度, N N N 是隐藏状态数量。

1.3 HMM中的先验概率和后验概率

先验概率在HMM中用于设定模型学习的起点或约束,而后验概率则是模型学习的结果,反映了在已知观测数据条件下对隐藏状态和模型参数的最可靠估计。在实际应用中,后验概率常用于状态解码(找到最可能的隐藏状态序列)、模型评估、参数调整以及后续的决策过程。

  • 先验概率
    • 模型参数的先验:在训练HMM时,如果采用贝叶斯方法,可以为模型的转移概率矩阵(状态间的转移概率)和发射概率矩阵(状态生成观测的概率)指定先验分布。这些先验分布反映了在观察数据之前对模型参数的主观信念或基于领域知识的猜测,有助于引导参数估计过程,尤其是在数据稀疏时避免过度拟合。
    • 隐藏状态的先验:对于某个具体的HMM实例,在开始观测序列之前,每个隐藏状态被观察到的概率称为状态的先验概率。在模型初始化或无观测数据可用时,这些概率可以是均匀分布,即假设所有隐藏状态在开始时具有相同的可能性,也可以基于其他信息设定不同的初始分布。
  • 后验概率
    • 模型参数的后验:通过应用贝叶斯定理,结合先验分布和观测数据(似然函数),可以计算出模型参数的后验分布。这些后验概率反映了在观察到实际数据后,对模型参数的更新认知,是参数估计和模型推理的基础。
    • 隐藏状态的后验:对于给定的观测序列,计算每个隐藏状态在生成该序列条件下的概率,这就是状态的后验概率。这是HMM中最核心的计算之一,通常通过前向-后向算法或维特比算法实现。

1.4 HMM的应用

在自然语言处理中,HMM常用于词性标注任务。隐藏状态代表词性类别(如名词、动词、形容词等),观测状态则是实际的单词。模型通过学习文本数据中的上下文信息来预测每个单词的最可能词性。

二. CRF

条件随机场(Conditional Random Field, CRF)是一种统计建模工具,主要用于处理序列数据的标注问题,如自然语言处理中的词性标注、命名实体识别、语块划分、语音识别的音素标注等任务。CRF是一种鉴别式(discriminative)概率模型,与生成式模型(如隐马尔可夫模型HMM)不同,它直接对观察数据进行建模以预测其对应的标签序列,而不是同时建模数据的生成过程。

2.1 CRF的概率计算

CRF是一种特殊的随机场,它是在给定一组观测序列(例如文本中的单词序列)的条件下,对另一组相关随机变量(例如每个单词的词性标签序列)建模。
对于给定的观测序列 X X X,CRF的目标是找到最可能的标签序列 Y Y Y,即求解 a r g m a x Y P ( Y ∣ X ) argmax_Y P(Y|X) argmaxYP(YX)。这涉及到对所有可能的标签序列求和来计算归一化常数(分母),即所有路径的概率总和,实际应用中常采用动态规划算法(如维特比算法)有效地求解最优标签序列(分子)

2.2 特征函数与线性链CRF:

CRF的概率模型通常通过定义一组特征函数 f k ( Y , X ) f_k(Y,X) fk(Y,X)来描述观测 X X X 和标签 Y Y Y 之间的关系。这些特征函数可以编码各种上下文信息,如词性标注中某个单词的上下文词性组合、生物序列中特定基序的出现等。
00

在最常用的线性链CRF中(如上图所示),特征函数通常依赖于当前位置 i i i 的标签 y i y_i yi、前一个位置 i − 1 i-1 i1 的标签 y i − 1 y_{i-1} yi1 以及与位置 i i i 相关的观测 x i x_i xi。其中,每个观测 x i x_i xi均对应着一个标签 y i y_i yi ,这一步对应的就是发射分数,它指示了当前的输入应该对应什么样的标签;而在每两个标签之间的连线则表示当前位置的标签向下一个位置的标签的一种转移,这就是状态转移分数

三. CRF与HMM的区别

  • 模型类型:HMM是生成式模型,它同时建模观测序列和隐藏状态序列(相当于标签序列)的联合分布 P ( X , Y ) P(X,Y) P(X,Y),然后通过贝叶斯规则推导条件概率 P ( Y ∣ X ) P(Y|X) P(YX)。而CRF直接建模条件概率 P ( Y ∣ X ) P(Y|X) P(YX)更专注于学习决策边界,通常能更好地利用观测数据的特性。
  • 特征表达能力:HMM依赖于固定的转移概率和发射概率,而CRF通过特征函数可以灵活地捕获更复杂的观测与标签之间的关系,允许模型学习到更多的上下文信息。
  • 参数学习:HMM通常使用期望最大化(EM)算法进行参数估计,而CRF通常采用极大似然估计或正则化的极大似然估计,配合梯度上升、拟牛顿法等优化算法求解参数。

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

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

相关文章

Spring Security——06,授权_封装权限信息

授权_封装权限信息 一、权限系统的作用二、授权基本流程三、限制访问资源所需权限四、封装权限信息4.1 权限信息封装到LoginUser4.2 LoginUser 添加权限4.3 过滤器封装权限信息 五、断点测试5.1 有权限的访问5.2 没有权限的访问 一键三连有没有捏~~ 一、权限系统的作用 例如一…

数据结构(3)----栈和队列

目录 一.栈 1.栈的基本概念 2.栈的基本操作 3.顺序栈的实现 •顺序栈的定义 •顺序栈的初始化 •进栈操作 •出栈操作 •读栈顶元素操作 •若使用另一种方式: 4.链栈的实现 •链栈的进栈操作 •链栈的出栈操作 •读栈顶元素 二.队列 1.队列的基本概念 2.队列的基…

物联网实战--驱动篇之(三)LoRa(sx1278)

目录 一、LoRa简介 二、sx1278模块 三、硬件抽象层 四、SX1278初始化 五、发送时间计算 六、发送模式 七、接收模式 八、总结 一、LoRa简介 LoRa在物联网传输领域有着举足轻重的地位,平时大家可能比较少听说,因为它主要还是在行业应用&#xff0…

精心整理-数据分类分级赋能企业数据安全建设资料合集

以下是资料目录,如需下载请前往知识星球下载:https://t.zsxq.com/18KTZnJMX 企业数据安全建设数据分类分级架构.pdf 企业数据分类分级模板.xls 数据分类分级的实践与挑战.pdf 数据分类分级制度评述.pdf 电信和互联网大数据安全管控分类分级实施指南.pdf …

嵌入式学习49-单片机2

指令周期 1M 机器周期 12M (晶体震荡器产生) 中断两种方式 …

STL--list和vector有什么区别

list 和 vector 是 C STL 中的两种常见容器,它们在底层实现、性能特性和适用场景方面有着显著的区别: 底层数据结构: vector 底层是一个动态数组,提供快速的随机访问,但在中间插入或删除元素效率较低。 list 是一个双…

鸿蒙ArkUI实例:【自定义组件】

组件是 OpenHarmony 页面最小显示单元,一个页面可由多个组件组合而成,也可只由一个组件组合而成,这些组件可以是ArkUI开发框架自带系统组件,比如 Text 、 Button 等,也可以是自定义组件,本节笔者简单介绍一…

ERC314协议代币开发及合约开发详解

ERC314 是一种新的代币标准,旨在为 BASE 链上的代币提供更便捷、高效的交易体验。它由 DAPJ 项目团队开发,并于 2023 年 8 月首次发布。 ERC314 的特点 无需依赖 DEX 或 SWAP 进行交易: ERC314 代币可以像原生代币一样直接转账,无需借助 DEX …

Lightroom Classic 2024成就专业摄影梦想mac/win版

Lightroom Classic 2024是一款功能强大的数字图像处理和管理工具,专为摄影师和摄影爱好者设计。它提供了丰富的照片调整、处理、管理和分享功能,帮助用户轻松管理、编辑和展示他们的照片。 Lightroom Classic 2024软件获取 首先,Lightroom C…

Vector Laboratories的凝集素--莲藕凝集素(Lotus Tetragonolobus Lectin)

莲藕凝集素(lotustetragonolobus lectin)是一个密切相关的糖蛋白家族,对含α-linked L-fucose具有相似的特异性。虽然莲藕凝集素的许多结合特性与荆豆凝集素I相似,但这些岩藻糖特异性凝集素之间的结合亲和力和某些寡糖特异性明显不…

【小白学机器学习11】假设检验之2:Z检验(U检验,正态检验)

目录 1 什么是Z检验 1.1 Z检验的别名 Z-test /U-test / 正态检验 1.2 维基百科定义 1.2 百度百科定义 1.3 定义提炼关键点 1.4 Z检验量 : Z(X-θ)/s (X-u)/s 2 Z检验量的构造 2.1 Z检验量 : Z(X_-u)/s 2.2 Z检验变量的构造 2.4 Z检验量的核心参数 2.4.1 原始公式 …

性能优化-如何爽玩多线程来开发

前言 多线程大家肯定都不陌生,理论滚瓜烂熟,八股天花乱坠,但是大家有多少在代码中实践过呢?很多人在实际开发中可能就用用Async,new Thread()。线程池也很少有人会自己去建,默认的随便用用。在工作中大家对…

数据库表设计18条黄金规则

前言 对于后端开发同学来说,访问数据库,是代码中必不可少的一个环节。 系统中收集到用户的核心数据,为了安全性,我们一般会存储到数据库,比如:mysql,oracle等。 后端开发的日常工作&#xff…

基于ARM内核的智能手环(day8)

心率模块 输入模拟量 MPU6050 IIC 接线引脚: 因为这两个模块官方都提供了详细的资料和源码,这里不再过多赘述 项目结果展示 待机页面 有开场动画 所有页面无操作20s自动返回待机页面 主页 展示时间和温度到达预定时间蜂鸣器响起,按键后关…

损失函数L1Loss、L2loss区别

损失函数 L1Loss 平均绝对误差(Mean Absolute Error,MAE) 预测值和真实值之差的绝对值 L2Loss 均方误差(Mean Square Error,MSE) 是预测值和真实值之差的平方 Smooth L1 Loss/Huber Loss 平滑版本的…

wordpress全站开发指南-面向开发者及深度用户(全中文实操)--php数组与基本循环

php数组与基本循环 <?php$myName"xixi";$namesarray(xixi1,xixi2,xixi3); ?> <p> Hi ,my name is <?php echo $myName; ?> </p> <p> Hi,my name is <?php echo $names[0] ?> </p> <p> Hi,my name is <?…

全国月度平均风速空间分布数据/月度降雨量分布/月均气温分布

引言 风速是指空气相对于地球某一固定地点的运动速率。一般来讲&#xff0c;风速越大&#xff0c;风力等级越高&#xff0c;风的破坏性越大。平均风速&#xff0c;一定时段内&#xff0c;数次观测的风速的平均值。一般表达方式为[m/s]。 正文 我国位于欧亚大陆东部、太平洋西岸…

哪些医疗器械申请FDA,需要准备网络安全文件?需要提交的文件都是什么样的?

一、什么类型的医疗器械需要递交网络安全文件&#xff1f; FD&C法案第524B条(c) 条将“网络设备”定义为&#xff1a; 1&#xff09;经申请人验证、安装或授权的软件或设备&#xff1b; 2&#xff09;具备连接互联网的能力&#xff1b; 3&#xff09;包含经申请人验证、…

YOLO算法改进Backbone系列之:PVT

摘要&#xff1a;尽管基于CNNs的backbone在多种视觉任务中取得重大进展&#xff0c;但本文提出了一个用于密集预测任务的、无CNN的的简单backbone——Pyramid Vision Transformer&#xff08;PVT&#xff09;。相比于ViT专门用于图像分类的设计&#xff0c;PVT将金字塔结构引入…

每日OJ题_两个数组dp①_力扣1143. 最长公共子序列

目录 力扣1143. 最长公共子序列 解析代码 力扣1143. 最长公共子序列 1143. 最长公共子序列 难度 中等 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 &#xff0c;返回 0 。 一个字符串的 子序列 是指这样…