【NLP冲吖~】二、隐马尔可夫模型(Hidden Markov model, HMM)

0、马尔可夫模型

某一状态只由前一个状态决定,即为一阶马尔可夫模型;
状态间的转移依赖于前n个状态的过程,即为n阶马尔可夫模型

马尔科夫链:

如果 S t + 1 S_{t+1} St+1只依赖于前一时刻 S t S_t St,不依赖于 S 1 , . . . , S t − 1 S_1,...,S_{t-1} S1,...,St1,则称 S 1 , S 2 , . . . , S T , . . . {S_1,S_2,...,S_T,...} S1,S2,...,ST,...为马尔科夫链,这种性质叫做马尔可夫性。

∗ ∗ S 1 , . . . , S t − 1 , S t , S t + 1 ∗ ∗ **S_1, ...,S_{t-1},S_{t},S_{t+1}** S1,...,St1,St,St+1

S 1 , . . . , S t − 1 S_1, ...,S_{t-1} S1,...,St1表示过去; S t S_t St表示现在; S t + 1 S_{t+1} St+1表示未来。
马尔可夫性想告诉我们的是,未来只与现在有关,与过去无关。

马尔可夫模型定义:

存在一类重要的随机过程:如果一个系统有N个状态 S 1 S_1 S1, S 2 S_2 S2, S 3 S_3 S3,…, S N S_N SN,随着时间的推移,该系统从一个状态转移到另一个状态。如果用 q t q_t qt表示系统在时间 t t t的状态变量,那么 t t t时刻的状态取值为 S j ( 1 < = j < = N ) S_j(1<=j<=N) Sj(1<=j<=N)的概率取决于前 t − 1 t-1 t1个时刻(1,2,3,…,t-1)的状态,该概率为:
P ( q t = S j ∣ q t − 1 = S i , q t − 2 = S k , . . . ) P(q_t = S_j | q_{t-1} = S_i, q_{t-2} = S_k, ...) P(qt=Sjqt1=Si,qt2=Sk,...)

1、假设一:如果在特定情况下,系统在时间t的状态下只与其在时间 t − 1 t-1 t1的状态相关,则该系统构成一个离散的一阶马尔可夫链:
P ( q t = S j ∣ q t − 1 = S i , q t − 2 = S k , . . . ) = P ( q t = S j ∣ q t − 1 = S i ) P(q_t = S_j | q_{t-1} = S_i, q_{t-2} = S_k, ...) = P(q_t = S_j | q_{t-1} = S_i) P(qt=Sjqt1=Si,qt2=Sk,...)=P(qt=Sjqt1=Si)

2、假设二:如果只考虑独立于时间 t t t的随机过程,状态与时间无关,那么
P ( q t = S j ∣ q t − 1 = S i ) = a i j P(q_t = S_j | q_{t-1} = S_i) = a_ij P(qt=Sjqt1=Si)=aij
其中 1<=i,j<N
即: t t t时刻状态的概率取决于前 ( t − 1 ) (t-1) (t1)个时刻(1,2,3,…,t-1)的状态,且状态的转移与时间无关,则该随机过程为马尔可夫模型。

马尔可夫模型的两个要素是 初始状态分布 和 状态转移概率矩阵。

1、隐马尔可夫模型

在马尔可夫模型中,每个状态表示了一个可观察的事件,所以,马尔可夫模型又称为可视化马尔可夫模型(visibleMarkovmodel,VMM),这使得模型的适应性有所限制。

隐马尔可夫模型(HMM)就是为了解决这样的限制而产生的。在这样的情景下,系统中会有两组状态,一组是不可观察、隐藏的状态,另一种是可观察的状态。模型具体的状态序列是未知的,状态转移的概率是已知的。因此,该模型是一个双重随机过程,包括模型的状态转换和特定状态下可观察的事件的随机。

与马尔可夫模型相比,隐马尔可夫有三要素,分别是
初始状态为 I = ( i 1 , i 2 , . . . , i T ) I = (i_1, i_2, ..., i_T) I=(i1,i2,...,iT) i 1 i_1 i1为第1个时刻的初始状态;
状态空间为 Q = ( q 1 , q 2 , . . . , q N ) Q = (q_1, q_2, ..., q_N) Q=(q1,q2,...,qN),表示有N个状态可以相互转移;
由初始状态和状态空间可得初始状态分布
Π = ( π 1 , π 2 , . . . , π N ) Π = (π_1,π_2,...,π_N) Π=(π1,π2,...,πN),其中 π i = P ( i 1 = q i ) π_i = P(i_1 = q_i) πi=P(i1=qi) i 1 i_1 i1中的i与 q i q_i qi中的i含义不同】

状态转移矩阵 A = [ a 11 , . . . ] A = [a_{11},...] A=[a11,...] a 11 a_{11} a11表示状态1到状态1的转换概率,A为N行N列的矩阵,每行之和为1。

观测空间为 V = ( v 1 , v 2 , . . . , v M ) V = (v_1,v_2, ..., v_M) V=(v1,v2,...,vM),表示有M个观测状态;
观测状态为 O = ( O 1 , O 2 , . . . , O T ) O = (O_1,O_2,...,O_T) O=(O1,O2,...,OT) O 1 O_1 O1为初始观测状态。
观测概率矩阵 B = [ b 1 ( 1 ) , . . . ] B = [b_1(1),...] B=[b1(1),...] b 1 ( 1 ) b_1(1) b1(1)表示在第1个状态上得到第一个观测状态的概率。
b j ( k ) = P ( O t = v k ∣ i t = q j ) b_j(k) = P(O_t = v_k | i_t = q_j) bj(k)=P(Ot=vkit=qj)
B为N行M列的矩阵,每行之和为1。

2、算法

根据隐马尔可夫模型定义,可以将一个长度为T的观测序列 O = ( o 1 , o 2 , . . . , o T ) O = (o_1,o_2,...,o_T) O=(o1,o2,...,oT)的生成过程描述为以下算法:
输入:隐马尔可夫模型 λ = (A,B,π),观测序列长度T;
输出:观测序列O = (o_1,o_2,…,o_T);
(1)按照初始状态分布π产生状态 i 1 i_1 i1;
(2)令t=1;
(3)按照状态 i t i_t it的观测概率分布 b i t ( k ) b_{i_t}(k) bit(k)生成 o t o_t ot;
(4)按照状态 i t i_t it的状态转移概率分布{a_{i_t},i_{t+1}} 产生状态 i t + 1 , i t + 1 i_{t+1},i_{t+1} it+1,it+1 = 1,2,…,N;
(5)令 t = t + 1 t = t+1 t=t+1,如果 t < T t<T t<T,重复(3)-(5),否则,结束。

3、三个基本问题

给定一个隐马尔可夫模型(HMM),可以解决三个基本问题。

(1)评估【Evaluation】

给定HMM,即 μ = [ π , A , B ] μ = [π,A,B] μ=[πAB],求某个观测序列的概率。
例如:给定一段文本的隐马尔可夫模型,包括第一个单词的概率分布,单词转移概率矩阵,特定单词下该词词性的概率分布。求序列中每一个单词为某个词性的概率。

(2)解码【Decoding】

给定HMM,即 μ = [ π , A , B ] μ = [π,A,B] μ=[πAB],以及某个观测序列,求得其可观测序列。
例如:给定一段文本的隐马尔可夫模型,包括第一个单词的概率分布,词性转移概率矩阵,特定单词下该词词性的概率分布。并且已知每个单词的词性序列。求得词性序列对应的文本序列。

(3)学习【Learning】

给定一个观测序列,求得一个隐马尔可夫模型。
例如:已知一个文本序列。求得一个文本的隐马尔可夫模型,包含:第一个词的词性,词性转移概率矩阵,特定单词该词的词性概率分布。

4、关于三个问题的算法计算

参考大佬博客https://zhuanlan.zhihu.com/p/88362664

5、隐马尔可夫模型在NLP中的应用

NLP中序列标注(文本词性标注、命名体识别)问题https://blog.csdn.net/echoKangYL/article/details/86983973

冷知识

马尔可夫是苏联人,他是切比雪夫的学生。

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

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

相关文章

Midjourney提示词风格调试测评

在Midjourney中提示词及风格参数的变化无疑会对最终的作品产生影响&#xff0c;那影响具体有多大&#xff1f;今天我我们将通过一个示例进行探究。 示例提示词&#xff1a; 计算机代码海洋中的黄色折纸船&#xff08;图像下方&#xff09;风格参考:金色长发的女人&#xff0c…

单片机——ISP下载、ICP下载、IAP下载

文章目录 ISPICPIAP ISP 在线系统编程&#xff0c;使用引导程序加上外围UART/SPI接口烧录 其本质是将程序的hex文件烧录到板子里的过程 可以使用flymcu这个软件 System memory是STM32在出厂时&#xff0c;由ST在这个区域内部预置了一段BootLoader&#xff0c; 也就是我们常说…

Hair Tool for Blender3D

CGer.com - Hair Tool for Blender3D - CGer资源网 Hair Tool 1.5 for Blender3D 链接: https://pan.baidu.com/s/1kVABn6n 密码: gwprHair Tool 1.65-1.8 for Blender链接: https://pan.baidu.com/s/1A7cW_Ms2baGQ2M0iE1dQhQ 密码: 81bqHair Tool for Blender 1.9.2链接: http…

SpringCache缓存快速实现注解

SpringCache是一个框架&#xff0c;只需要添加一个注解&#xff0c;就能实现缓存功能的实现&#xff0c;常用的就是Redis的缓存实现 依赖 spring-boot-starter-data-redis 与 spring-boot-starter-cache EnableCatching标注在启动类上&#xff0c;开启基于注解的缓存功能 …

【C++】C++的简要介绍

简单不先于复杂&#xff0c;而是在复杂之后。 文章目录 1. 什么是C2. C的发展史3. C的重要性3.1 语言的使用广泛度3.2 在工作领域3.3 在校招领域3.3.1 岗位需求3.3.2 笔试题 3.3.3 面试题 4. 如何学习C4.1 别人怎么学&#xff1f; 1. 什么是C C语言是结构化和模块化的语言&…

深度分析一款新型Linux勒索病毒

前言 DarkRadiation勒索病毒是一款全新的Linux平台下的勒索病毒&#xff0c;2021年5月29日首次在某平台上发布了此勒索病毒的相关的信息&#xff0c;6月中旬趋势科技针对这个新型的勒索病毒进行了相关的分析和报道。 DarkRadiation勒索病毒采用Bash脚本语言编写实现&#xff0…

Acwing---143. 最大异或对

最大异或对 1.题目2.基本思想3.代码实现 1.题目 在给定的 N个整数 A1&#xff0c;A2……AN 中选出两个进行 xor&#xff08;异或&#xff09;运算&#xff0c;得到的结果最大是多少&#xff1f; 输入格式 第一行输入一个整数 N。 第二行输入 N 个整数 A1&#xff5e;AN。 输…

最好的 4 个 Android 屏幕解锁锁软件免费下载

实际上&#xff0c;如今每个 Android 智能手机用户都将手机设置为图案锁定。此功能可以保护隐私&#xff0c;特别是当用户不在打电话时。通过绘制锁定屏幕图案&#xff0c;用户可以解锁手机&#xff0c;然后访问其主屏幕。如果用户被锁定在电话模式之外会发生什么&#xff1f;“…

基于SpringBoot3的快速迭代平台

SpringBoot3的快速开发平台 前言一、技术栈二、项目结构三、总结 前言 MateBoot是一个基于SpringBoot3的快速开发平台&#xff0c;采用前后端分离的模式&#xff0c;前端采用Element Plus组件&#xff0c;后端采用SpringBoot3、Sa-token、Mybatis-Plus、Redis、RabbitMQ、Fast…

华为第二批难题一:基于预训练AI模型的元件库生成

我的理解&#xff1a;华为的这个难道应该是想通过大模型技术&#xff0c;识别元件手册上的图文内容&#xff0c;与现有建库工具结合&#xff0c;有潜力按标准生成各种库模型。 正好&#xff0c;我们正在研究&#xff0c;利用知识图谱技术快速生成装配模型&#xff0c;其中也涉…

图像处理入门:OpenCV的基础用法解析

图像处理入门&#xff1a;OpenCV的基础用法解析 引言OpenCV的初步了解深入理解OpenCV&#xff1a;计算机视觉的开源解决方案什么是OpenCV&#xff1f;OpenCV的主要功能1. 图像处理2. 图像分析3. 结构分析和形状描述4. 动态分析5. 三维重建6. 机器学习7. 目标检测 OpenCV的应用场…

力扣热题100_哈希_49_字母异位词分组

文章目录 题目链接解题思路解题代码 题目链接 49. 字母异位词分组 给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs [“eat”, “tea”, “ta…

LeetCode魔塔游戏

题目描述 小扣当前位于魔塔游戏第一层&#xff0c;共有 N 个房间&#xff0c;编号为 0 ~ N-1。每个房间的补血道具/怪物对于血量影响记于数组 nums&#xff0c;其中正数表示道具补血数值&#xff0c;即血量增加对应数值&#xff1b;负数表示怪物造成伤害值&#xff0c;即血量减…

Java学习day30:Stream流入门、集合获取流对象、流对象的方法(知识点详解)

声明&#xff1a;该专栏本人重新过一遍java知识点时候的笔记汇总&#xff0c;主要是每天的知识点题解&#xff0c;算是让自己巩固复习&#xff0c;也希望能给初学的朋友们一点帮助&#xff0c;大佬们不喜勿喷(抱拳了老铁&#xff01;) 往期回顾 Java学习day29&#xff1a;线程池…

LeetCode--455.分发饼干

假设你是一位很棒的家长&#xff0c;想要给你的孩子们一些小饼干。但是&#xff0c;每个孩子最多只能给一块饼干。 对每个孩子 i&#xff0c;都有一个胃口值 g[i]&#xff0c;这是能让孩子们满足胃口的饼干的最小尺寸&#xff1b;并且每块饼干 j&#xff0c;都有一个尺寸 s[j]…

java_error_in_pycharm.hprof文件是什么?能删除吗?

java_error_in_pycharm.hprof文件是什么&#xff1f;能删除吗&#xff1f; &#x1f335;文章目录&#x1f335; &#x1f333;引言&#x1f333;&#x1f333;hprof格式文件介绍&#x1f333;&#x1f333;java_error_in_pycharm.hprof文件什么情况下能删除&#x1f333;&…

Transformer实战-系列教程11:SwinTransformer 源码解读4(WindowAttention类)

&#x1f6a9;&#x1f6a9;&#x1f6a9;Transformer实战-系列教程总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 点我下载源码 SwinTransformer 算法原理 SwinTransformer 源码解读1&#xff08;项目配置/SwinTr…

php 函数三

一 对称加密 1.1 openssl 1.1.1 openssl_get_cipher_methods(bool $aliases false) 获取可用的加密算法。包含可用加密算法的array。 请注意&#xff1a;在 OpenSSL 1.1.1 版本之前&#xff0c;返回加密算法的拼法大小写都有&#xff1b; 从 OpenSSL 1.1.1 开始&#xff0c…

【机器学习】数据清洗之识别缺失点

&#x1f388;个人主页&#xff1a;甜美的江 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;机器学习 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进步…

Linux笔记之expect和bash脚本监听输出并在匹配到指定字符串时发送中断信号

Linux笔记之expect和bash脚本监听输出并在匹配到指定字符串时发送中断信号 code review! 文章目录 Linux笔记之expect和bash脚本监听输出并在匹配到指定字符串时发送中断信号1.expect2.bash 1.expect 在Expect脚本中&#xff0c;你可以使用expect来监听程序输出&#xff0c;…