当前位置: 首页 > news >正文

【自然语言处理】— 隐马尔可夫模型详解、例解

【自然语言处理】— 隐马尔可夫模型

  • 【自然语言处理】— 隐马尔可夫模型
    • 引例
    • 隐马尔可夫模型概念
    • 隐马尔可夫模型的关键
    • 隐马尔可夫模型的数学表示
      • 隐含状态与观测结果
      • 状态转移矩阵
      • 观测概率矩阵
      • 初始状态概率向量
    • 小结

【自然语言处理】— 隐马尔可夫模型

引例

假设有三种不同的骰子,分别是立方体,正四面体,正八面体,分别有1-6,1-4,1-8,分别记作D6、D4、D8。每个面出现的概率分别是1/6,1/4,1/8。
在这里插入图片描述

在不观察的情况下,从三个骰子中随机选一个,进行抛掷,结果可能是1-8中的任意数字。依照这种方式,随机选择骰子,重复抛掷,可以得到一串数字,这串数字对我们是可见的,并且直接记录下来了,因此将这串数字记作可见状态链
在这里插入图片描述
在抛掷的过程中,被我们随机选择的骰子编号也组成了一串序列,因为我们是随机选择的骰子,因此将这串序列称为隐含状态链
在这里插入图片描述
实验过程中产生了两个数据链,隐含状态链和可见状态链,隐马尔可夫模型=隐含状态链➕可见状态链
在这里插入图片描述

隐马尔可夫模型概念

隐马尔可夫模型(Hidden Markov Model),简称HMM,它是关于时序的概率模型,该模型包含随机生成的不可观测序列,该序列被称为状态序列,使用S表示,每个不可观测状态都会产生一个可观测的结果,这样会得到一个观测序列,使用O表示。

在这里插入图片描述

每个状态和时刻都会与一个时刻进行对应,如果有t个时刻,就产生了 s 1 → s t , o 1 → o t s_1→s_t,o_1→o_t s1sto1ot,相当于一次一次掷骰子,t就代表第几次掷骰子
在这里插入图片描述

在HMM中,状态序列是隐藏的,无法被观测到,因此状态变量是一个隐变量,隐藏的状态序列是由一个马尔可夫链,随机生成的

隐马尔可夫模型的关键

在隐马尔可夫模型中, 包含了四个关键因素,分别是:

  1. 隐含状态
  2. 可见状态
  3. 隐含状态转换
  4. 可见状态输出

在这里插入图片描述

各个隐含状态之间会进行转换,存在着对应的转换概率

隐含状态会输出可见状态,隐含状态和可见状态之间有一个输出概率,不同隐含状态到可见状态的输出概率可能不同

例如,隐含状态D6输出可见状态1到6概率是 1 6 \cfrac{1}{6} 61,隐含状态D4输出可见状态1到4概率是 1 4 \cfrac{1}{4} 41

在这里插入图片描述

隐马尔可夫模型的数学表示

为了进一步讨论隐马尔可夫模型,需要使用数学符号来表示HMM,其中包括隐含状态 Q Q Q和观测结果 V V V两个集合,状态转移概率矩阵 A A A,观测概率矩阵 B B B,初始状态概率向量 π \pi π,三个概率矩阵。

隐含状态与观测结果

例如,隐含状态集合 Q = { q 1 , q 2 , . . . , q n } Q = \{q_1,q_2,...,q_n\} Q={q1,q2,...,qn}包括 q 1 到 q n n q_1到q_n n q1qnn种状态
观测结果集合 V = { v 1 , v 2 , . . . , v m } V=\{v_1,v_2,...,v_m\} V={v1,v2,...,vm}包括 v 1 到 v m m v_1到v_m m v1vmm种可能的结果

在掷骰子的案例中, n = 3 q 1 , q 2 , q 3 对应 D 6 , D 4 , D 8 n=3\ \ \ q_1,q_2,q_3对应D_6,D_4,D_8 n=3   q1,q2,q3对应D6,D4,D8
m = 8 v 1 到 v 8 对应数字 1 到 8 m=8 \ \ \ v_1到v_8对应数字1到8 m=8   v1v8对应数字18

在这里插入图片描述

状态转移矩阵

状态转移的概率矩阵 A A A是一个是一个 N ∗ N N*N NN的矩阵
在这里插入图片描述

其中 a i j a_{ij} aij代表了状态 q i q_i qi转移到状态 q j q_j qj的概率
在这里插入图片描述
具体地, a i j 等于在 s t = q i 的条件下, s t + 1 = q j 的概率 a_{ij}等于在s_t = q_i的条件下,s_{t+1}=q_j的概率 aij等于在st=qi的条件下,st+1=qj的概率

在这里插入图片描述
例如,3个骰子,选择任意骰子的概率都是 1 3 \cfrac{1}{3} 31,那么就得到了 3 ∗ 3 3*3 33的状态转移概率矩阵,其中的每个元素都是 0.33 0.33 0.33

在这里插入图片描述

观测概率矩阵

观测概率矩阵为 B B B,由于每一个状态 q q q都可以输出一个观测结果 v v v,因此B是一个 N ∗ M N*M NM的矩阵

在这里插入图片描述
其中 b i j b_ij bij代表了在时刻 t t t,状态 q i q_i qi输出观测结果 v j v_j vj的概率。

例如,在掷骰子时,根据三种骰子的输出,可以得到一个 3 ∗ 8 3*8 38的概率矩阵,第一行对应六面骰子,输出1到6的概率是1/6,输出7和8的概率是0,而第二行和第三行,分别代表投掷四面骰子和八面骰子的输出1到8的概率

在这里插入图片描述

初始状态概率向量

初始状态的概率向量是 π \pi π,它是一个 N ∗ 1 N*1 N1的列向量, π i \pi_i πi代表在时刻 t = 1 t=1 t=1时,状态为 q i q_i qi的概率,例如,掷骰子时,三种骰子的概率都是1/3
在这里插入图片描述

小结

π 和 A \pi和A πA确定了隐藏的马尔可夫链,也就是如何生成不可观测的状态序列 S S S B B B确定了如何从隐藏状态产生观测状态序列 O O O,隐马尔可夫模型由 A 、 B 、 π A、B、\pi ABπ共同决定,使用三元符号 λ = ( A , B , π ) λ=(A,B,\pi) λ=(A,B,π)表示。
在这里插入图片描述

参考视频:什么是HMM隐马尔可夫模型,自然语言处理中的最基础算法之一_哔哩哔哩_bilibili

相关文章:

【自然语言处理】— 隐马尔可夫模型详解、例解

【自然语言处理】— 隐马尔可夫模型 【自然语言处理】— 隐马尔可夫模型引例隐马尔可夫模型概念隐马尔可夫模型的关键隐马尔可夫模型的数学表示隐含状态与观测结果状态转移矩阵观测概率矩阵初始状态概率向量 小结 【自然语言处理】— 隐马尔可夫模型 引例 假设有三种不同的骰…...

运行的 akrun 会打印信息到控制台,如何取消打印 -- chatGPT

gpt: 如果运行的程序 akrun 打印信息到控制台,但您希望取消或禁止它的输出,可以尝试以下方法: 1. **重定向输出到空文件**:您可以将程序的标准输出重定向到一个空文件,从而禁止信息输出到控制台。执行以下命令&#…...

【React】03-React面向组件编程2

文章目录 2.6. 组件的生命周期2.6.1. 效果2.6.2. 理解2.6.3. 生命周期流程图(旧)2.6.4. 生命周期流程图(新)2.6.5. 重要的勾子2.6.6. 即将废弃的勾子2.6.7 getSnapshotBeforeUpdate 2.7. 虚拟DOM与DOM Diffing算法2.7.1. 效果2.7.2. 基本原理图 2.6. 组件的生命周期 2.6.1. 效…...

【python编程】python无法import模块的一种原因分析

python系统路径添加错误 报错原因原因分析解决办法补充 最近写代码的时候遇到一个问题,就是想添加工程下fu_convert文件夹下自己编写的convert_fw.py模块,但是出现报错,是个比较低级的问题,但还是简单记录一下 报错原因 无法找到…...

vue3.0与vue2.0的区别

前言 Vue 3.0是一个用于构建用户界面的JavaScript框架。相比于Vue 2.x,Vue 3.0在性能、体积和开发体验上都有了很大的提升。 以下将从不同的角度上去分析Vue 3.0与Vue 2.0的区别: 一、项目架构 从项目搭建和打包工具的选择来看: Vue 2.0 中…...

09_Webpack打包工具

1 初识Webpack 1.1 什么是Webpack Webpack打包工具对项目中的复杂文件进行打包处理,可以实现项目的自动化构建,并且给前端开发人员带来了极大的便利。 目前,企业中的绝大多数前端项目是基于Webpack打包工具来进行开发的。 1.2 Webpack的安…...

小程序 | 小程序后端用什么语言开发比较好

目录 ♣️ 引言 选择合适的后端语言 推荐使用Node.js Node.js 的优点 其他备选语言 ♣️ 小结 ♣️ 引言 小程序的兴起已经成为了当今移动互联网时代的热点之一,而小程序后端的好坏直接影响着小程序的使用体验,因此,选择一种好的语言来…...

Websocket升级版

之前写过一个关于websocket的博客,是看书时候做的一个demo。但是纸上得来终觉浅,这次实战后实打实的踩了不少坑,写个博客记录总结。 1.安装postman websocket接口调试,需要8.5以及以上版本的postman 先把以前的卸载&#xff0c…...

基于音频SOC开发板的主动降噪ANC算法源码实现

基于音频SOC开发板的主动降噪ANC算法源码实现 是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,+群附加赠送降噪开发资料,...

【Pytorch】深度学习之损失函数

文章目录 二分类交叉熵损失函数交叉熵损失函数L1损失函数MSE损失函数平滑L1(Smooth L1)损失函数目标泊松分布的负对数似然损失KL散度MarginRankingLoss多标签边界损失函数二分类损失函数多分类的折页损失三元组损失HingEmbeddingLoss余弦相似度CTC损失函数参考资料 学习目标&am…...

3.4 构造方法

思维导图: 3.4.1 定义构造方法 ### Java中的构造方法 #### **定义与目的** 构造方法,也称为构造器,是一个特殊的成员方法,用于在实例化对象时为对象赋值或执行初始化操作。其主要目的是确保对象在被创建时具有有效和合适的初始状…...

代码随想录

前言 代码随想录算法训练营day43 一、Leetcode 1049. 最后一块石头的重量 II 1.题目 有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分…...

2核4G游戏服务器推荐(阿里云/腾讯云/华为云)

2核4G游戏服务器推荐,首选腾讯云2核4G5M带宽轻量应用服务器218元一年、阿里云2核4G4M带宽轻量应用服务器297元一年,华为云2核2G3M云耀L服务器95元一年,阿腾云来详细说下2核4G游戏服务器推荐配置大全: 目录 2核4G游戏服务器推荐 …...

SQL标识列实现自动编号的步骤和技巧以及优势

目录 前言: 过程: 1.步骤: 2.标识种子和表示增量: 效果展示:​ 优势: 总结: 前言: 在.NET中的例子里面遇到这么一个问题,不能将NULL插入列‘ID’,表Login.dbo.Scores’;列不允许有NULL值。INSERT失败。这个问题很明显,我在SQL数据库中…...

【Debian】报错:su: Authentication failure

项目场景: 今天我重新刷了一个debian系统。 系统版本: # 查看系统版本 lsb_release -a 我的系统版本: No LSB modules are available. Distributor ID:Debian Description: Debian GNU/Linux 12 (bookworm&#xff…...

我测试用的mark down教程

Markdown 教程 欢迎使用 Markdown 你好,Markdown是一种类似 Word 的排版工具,你需要仔细阅读这篇文章,了解一下 Markdown 基础知识。 Markdown 功能和列表演示 Markdown 有以下功能,帮助你用它写博客: 数学公式代码高亮导航功能等等Markdown 的优点: 间接高效大厂支持…...

网络编程基础知识总结——IP,端口,协议

目录 1. 什么是网络编程? 2. 网络编程的三要素 3. IP 3.1 IP地址的概念 3.2 IP地址的分类 3.3 IPv4解析 3.4 Ipv6解析 4. IPv4 的使用细节 5. 特殊IP地址 4. 端口号 5. 协议 5.1 UDP协议 5.2 TCP协议 1. 什么是网络编程? 总的来说就是一句…...

【LeetCode力扣】297. 二叉树的序列化与反序列化

目录 1、题目介绍 2、解题思路 2.1、详细过程图解 2.2、代码描述 2.3、完整代码 1、题目介绍 原题链接:297. 二叉树的序列化与反序列化 - 力扣(LeetCode) 示例 1: 输入:root [1,2,3,null,null,4,5] 输出&#…...

Linux寄存器+Linux2.6内核进程调度队列+命令行参数+环境变量

目录 一、寄存器 二、Linux2.6内核进程调度队列 (一)优先级 (二)活动队列 (三)过期队列 (四)active指针和expired指针 三、命令行参数 (一)举例一 &…...

组合数(2)获取C(n,k)组合数列表的QT实现

1)工程文件 QT coreCONFIG c17 cmdline# You can make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomment the following line. #DEFINES QT_DISABLE_DEPRECATED_BEFORE0x060000 # disables all the APIs deprecated before Qt 6.…...

【Oracle APEX开发小技巧12】

有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...

稳定币的深度剖析与展望

一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...

push [特殊字符] present

push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用

文章目录 一、背景知识:什么是 B-Tree 和 BTree? B-Tree(平衡多路查找树) BTree(B-Tree 的变种) 二、结构对比:一张图看懂 三、为什么 MySQL InnoDB 选择 BTree? 1. 范围查询更快 2…...

Python竞赛环境搭建全攻略

Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型(算法、数据分析、机器学习等)不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...

Linux中《基础IO》详细介绍

目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...

【Kafka】Kafka从入门到实战:构建高吞吐量分布式消息系统

Kafka从入门到实战:构建高吞吐量分布式消息系统 一、Kafka概述 Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发,后成为Apache顶级项目。它被设计用于高吞吐量、低延迟的消息处理,能够处理来自多个生产者的海量数据,并将这些数据实时传递给消费者。 Kafka核心特…...