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

news2025/2/27 2:53:02

一. 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/1585390.html

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

相关文章

Spring Boot项目获取resources目录下的文件并返回给前端

学无止境,气有浩然! 新开通公众号,欢迎大家关注,后续会持续分享技术和相关资料 文章目录 前言方案1.getResourceAsStream2.ResourceLoader3.Value配合Resource 打完收工! 前言 最近项目需要下载一个模板文件用来修改…

32.768khz晶振时间跑不准有偏差的原因

32.768kHz晶振是一种常见的晶振频率,广泛应用于实时钟电路、计时电路和低功耗设备中。然而,有时候会发现32.768kHz晶振的时间跑不准,存在一定的偏差。JF晶发电子将介绍几个可能导致32.768kHz晶振时间跑不准的原因。 1. 温度变化:…

vue3页面导出为PDF文件

vue3页面导出为PDF文件 尝试了很多方法,都没有找到完美的解决方法 目前网上有个思路,就是将页面先转存为图片,然后将图片另存为PDF文件 记录一下完整过程 一、安装必备包 安装两个第三方插件 npm i html2canvas npm i jspdfhtml2canvas…

八股面试——数据库——索引

索引的概念 B树的概念: 索引的作用 聚簇索引与非聚簇索引 聚簇索引就是主键值,在B树上,通过主键大小(数据在B树叶子节点按主键顺序排序)寻找对应的叶子节点,叶子节点保存的一整条记录。 非聚簇索引&#x…

【vim 学习系列文章 22 -- vim 实现 linux 多行快速标准注释】

文章目录 vim 实现 linux 多行快速标准注释 vim 实现 linux 多行快速标准注释 不多说了&#xff0c;直接上动图&#xff1a; 上代码&#xff1a; function! CommentBlock()" 获取Visual模式选中的起始和结束行号let old_start_line line("<")let old_end…

项目4-图书管理系统2+统一功能处理

1. 拦截器&#xff08;Interceptor&#xff09; 我们完成了强制登录的功能, 后端程序根据Session来判断用户是否登录, 但是实现⽅法是比较麻烦的。 所需要处理的内容&#xff1a; • 需要修改每个接⼝的处理逻辑 • 需要修改每个接⼝的返回结果 • 接⼝定义修改, 前端代码也需…

vue简单使用一(vue的声明)

首先引入vue的js文件&#xff1a; <script src"js/vue.js" type"application/javascript"></script> vue.js文件去vue官网下载即可 html代码 <div class"vuePro"><div> vue的属性信息都得放在这个标签下面哪怕是同级也是…

轻松玩转TikTok:TK防关联引流系统实现一键式多账号管理

TK防关联引流系统是为TikTok平台量身打造的全方位引流解决方案&#xff0c;不仅解决了传统跨境电商在TikTok运营中遇到的诸多难题&#xff0c;还通过创新技术实现了自动化、高效化的全球引流。以下是该系统的主要优势及功能特点&#xff1a; 系统核心优势 1.全球真实环境模拟…

论文| Convolutional Neural Network-based Place Recognition - 2014

2014-Convolutional Neural Network-based Place Recognition

推荐!6个实用工具类微信小程序,提升效率的神器,工作生活中一定用得到!

亲爱的时间管理小能手们&#xff0c;你们是否经常感叹一天24小时不够用&#xff1f;是不是也经历过在杂乱无章的app海洋中寻找那一个刚好满足需求的小众工具&#xff1f;别急&#xff0c;今天我要给你揭秘六款实用到哭的小程序神器&#xff0c;它们就像你口袋里的多功能瑞士军刀…

Qt——示波器/图表 QCustomPlot

一、介绍 QCustomPlot是一个用于绘图和数据可视化的Qt C小部件。它没有进一步的依赖关系&#xff0c;提供友好的文档帮助。这个绘图库专注于制作好看的&#xff0c;出版质量的2D绘图&#xff0c;图形和图表&#xff0c;以及为实时可视化应用程序提供高性能。QCustomPlot可以导出…

Hackthebox IClean

靶机信息IP/难度Medium网址https://app.hackthebox.com/machines/IClean状态Active系统Linux Python XSS, SSTI 端口扫描 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.6 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 256 2cf9077…

48V转15V,48V转12V,48V转24V高效率降压恒压芯片SL3041电路简单

在现代电子设备中&#xff0c;电源转换是一个关键且常见的技术。特别是对于那些需要将48V电压转换为更低电压&#xff08;如15V、12V或24V&#xff09;的设备&#xff0c;一个高效、可靠的降压恒压芯片至关重要。本文将详细介绍一款名为SL3041的高效率降压恒压芯片&#xff0c;…

Ant Design Vue 表单验证手机号的正则

代码&#xff1a; pattern: /^1[3456789]\d{9}$/ 1. <a-form-item label"原手机号" v-bind"validateInfos.contactTel"><a-inputstyle"width: 600px"allow-clear:maxlength"20"placeholder"请输入原手机号"v-mo…

JavaWeb中的Servlet是什么?怎么使用?

文章目录 一、什么是Servlet二、Servlet的基本内容1、Servlet的作用2、Servlet接口3、Servlet接口实现类4、Servlet接口实现类开发步骤5、Servlet对象生命周期6、HttpServletResquest接口7、HttpServletResponse接口8、请求对象和响应对象流程图9、请求对象和响应对象生命周期1…

centos7部署zabbix6.4.9

文章目录 [toc]一、环境准备1&#xff09;部署lnmp2&#xff09;修改配置文件3&#xff09;安装数据库 二、部署zabbix1&#xff09;下载zabbix2&#xff09;安装zabbix服务端3&#xff09;修改配置4&#xff09;开机启动5&#xff09;安装客户端 三、登录配置1&#xff09;访问…

面试算法-170-二叉树的最大深度

题目 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3 解 class Solution {public int maxDepth(TreeNod…

C语言 | Leetcode C语言题解之第16题最接近的三数之和

题目&#xff1a; 题解&#xff1a; int comp(const void *a, const void *b) { return *(int *)a - *(int *)b; } int threeSumClosest(int *nums, int numsSize, int target) {int n numsSize;qsort(nums, n, sizeof(int), comp);int best 1e7;// 根据差值的绝对值来更新答…

常见安全漏洞及其解决方案

1、 SQL注入漏洞 漏洞描述&#xff1a; SQL注入被广泛用于非法入侵网站服务器&#xff0c;获取网站控制权。它是应用层上的一种安全漏洞。通常在设计存在缺陷的程序中&#xff0c;对用户输入的数据没有做好过滤&#xff0c;导致恶意用户可以构造一些SQL语句让服务器去执行&…

2024第十九届中国(温州)机械装备展9月20-22日举行

第十九届中国&#xff08;温州&#xff09;机械装备展览会 THE 19TH CHINA (WENZHOU) MACHINERY EQUIPENT EXHIBITION 第十九届中国&#xff08;温州&#xff09;国际紧固件博览会 THE 19TH CHINA (WENZHOU) NTERNATIONAL FASTENER EXPOSITION 时间&#xff1a;2024年9月…