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

一. 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.rhkb.cn/news/304677.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一分钟了解机器人自由度

目录 自由度的定义 自由度的分类 自由度的影响 影响自由度的主要参数 关节类型和数量 机械结构 控制系统 自由度控制的硬件架构原理 传感器 执行器 控制器 通信接口 软件和算法 机器人的自由度是指机器人在空间中可以独立移动的方向和角度的数量,它是衡…

面向对象设计原则实验“依赖倒置原则”

高层模块不应该依赖于低层模块。二者都应该依赖于抽象。抽象不应该依赖于细节。细节应该依赖于抽象。 (开闭原则、里氏代换原则和依赖倒转原则的三个实例很相似,原因是它之间的关系很紧密,在实现很多重构时通常需要同时使用这三个原则。开闭…

【C++】模版

目录 一、泛型编程二、函数模板2.1 函数模板概念2.2 函数模板格式2.3 函数模板的原理2.4 函数模板的实例化2.5 模板参数的匹配原则 三、类模板3.1 类模板的定义格式3.2 类模板的实例化 四、非类型模板参数五、模板的特化5.1 概念5.2 函数模板特化5.3 类模板特化5.3.1 全特化5.3…

天书奇谈_源码_搭建架设_3D最新天启版_自带假人

本教程仅限学习使用,禁止商用,一切后果与本人无关,此声明具有法律效应!!!! 一. 效果演示 天书奇谈_源码_搭建架设 环境: centos7.6 , 放开所有端口 源码获取 https://…

泰山众筹:电商新模式解析与优势探讨

一、泰山众筹模式概述 泰山众筹,是一种创新的电商模式,其核心在于通过产品销售与积分众筹的结合,实现用户与平台的共赢。用户购买产品获得积分,随后可将积分投入众筹活动,成功出局者可获得奖励并提现。 二、泰山众筹的…

智能运维场景 | 科技风险预警,能实现到什么程度?

[ 原作者:擎创夏洛克,本文略做了节选和改编 ] 每次一说到“风险预警”,就会有客户问我们能做怎样的风险预警。实际上在智能运维厂商来说,此风险非彼风险,不是能做银行的业务上的风险预警(比如贷款风险等&a…

Java工具类:批量发送邮件(带附件)

​ 不好用请移至评论区揍我 原创代码,请勿转载,谢谢! 一、介绍 用于给用户发送特定的邮件内容,支持附件、批量发送邮箱账号必须要开启 SMTP 服务(具体见下文教程)本文邮箱设置示例以”网易邮箱“为例&…

基于Springcloud可视化项目:智慧工地可视化大数据云平台源码

目录 技术架构 智慧工地系统在实际推行过程中遇到的问题 智慧工地接纳程度较低 基础设施条件有待完善 智慧工地整体生态尚未完善 智慧工地平台各功能模块 施工过程工信程息信管息理管模理块 人员管理模块 生产管理模块 技术管理模块 质量管理模块 安全管理模块 绿…

从零开始学Spring Boot系列-SpringApplication

SpringApplication类提供了一种从main()方法启动Spring应用的便捷方式。在很多情况下, 你只需委托给 SpringApplication.run这个静态方法 : SpringBootApplicationpublic class SpringbootLearningApplication {public static void main(String[] args) …

ACL实验

要求:1、PC1可以telnet登录R1,不能ping通R1 2、PC1可以ping通R2,但不能登录R2。 3、PC2的所有规则与pc1相反。 第一步、如图配置IP地址 第二步、运行静态路由协议,使全网可达 [R2]ip route-static 192.168.2.0 24 192.168.1.1…

Python学习之-pyechart详解

前言: 什么是pyechart? Pyecharts 是一个用于生成 Echarts 图表的 Python 库。Echarts 是一个由百度开源的数据可视化工具,它提供的图表种类丰富,交互性强,兼容性好,非常适合用于数据分析结果的展示。Pyec…

深入K8S实战

K8S: 深入K8S实战进阶篇 1、搭建 Kubernetes 集群 1.1、搭建方案 1.1.1、minikube minikube 是一个工具, 能让你在本地运行 Kubernetes。 minikube 在你的个人计算机(包括 Windows、macOS 和 Linux PC)上运行一个一体化(all-i…

「C1N短网址教程」短链接之网上生成的短链接可以用多久

网上生成的短链接可以用多久?很多人发现自己生成的短链接一会儿就失效了,今天我们就站在业内人士的角度说说网上生成的短链接可以用多久。 因为短链接生成之后是固定的,它就像我们网站的链接一样,只是披了层外衣,所以从理论上来说…

盘点MySQL热门话题(200条)

1、使用MySQL管理软件进行数据库备份,关键词:数据库备份,MySQL管理软件 2、优化MySQL查询性能的方法,关键词:MySQL查询优化,性能调优 3、如何使用MySQL进行分页查询,关键词:分页查…

透视 Insilico 英矽智能:AI 制药明星企业的飞跃、困境与破局

衰老,从古至今困扰了无数仁人志士。无论是千古一帝秦始皇,还是雄才大略汉武帝,亦或者挥斥方遒唐太宗,这些伟大的帝王无一例外的都留下了许多追求长生的故事。当时光的指针落在了 21 世纪的第二个十年,随着全球老龄化问…

四大生成式模型的比较——GAN、VAE、归一化流和扩散模型

比较四大模型的本质 four modern deep generative models: generative adversarial networks, variational autoencoders, normalizing flows, and diffusion models 待写

盘点最新十大热门靠谱一手接单平台,都说好用!

夸克网盘、头条网盘、迅雷网盘等网盘类项目可以说是比较炙手可热的项目,它因为操作简单,可复制强伸手拉新人士的喜欢,但是从哪里能对接到一手项目,官网渠道,今天小推给大家罗列了十个比较不错的拉新项目分发平台。 一…

VIM支持C/C++/Verilog/SystemVerilog配置并支持Win/Linux环境的配置

作为一个芯片公司打杂人口,往往需要一个皮实耐打上天入地的编辑器… 一、先附上github路径,方便取走 git clone gitgithub.com:qqqw4549/vim_config_c_verilog.git 二、效果展示 支持ctrl]函数/模块跳转,支持cscope字串全局代码搜索 依赖&am…

栈|逆波兰表达式求值

逆波兰表达式求值 题目算法原理代码实现补充 stoi的实现 题目 逆波兰表达式求值 逆波兰表达式就是后缀表达式,我们平时写的带括号的是中缀表达式。区分中缀表达式和后缀表达式 就是 操作数 和 操作符 的先后关系。 操作符在后 就是后缀表达式 后缀表达式 的用途就…