【自然语言处理】— 隐马尔可夫模型详解、例解
【自然语言处理】— 隐马尔可夫模型
- 【自然语言处理】— 隐马尔可夫模型
- 引例
- 隐马尔可夫模型概念
- 隐马尔可夫模型的关键
- 隐马尔可夫模型的数学表示
- 隐含状态与观测结果
- 状态转移矩阵
- 观测概率矩阵
- 初始状态概率向量
- 小结
【自然语言处理】— 隐马尔可夫模型
引例
假设有三种不同的骰子,分别是立方体,正四面体,正八面体,分别有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 s1→st,o1→ot,相当于一次一次掷骰子,t就代表第几次掷骰子

在HMM中,状态序列是隐藏的,无法被观测到,因此状态变量是一个隐变量,隐藏的状态序列是由一个马尔可夫链,随机生成的
隐马尔可夫模型的关键
在隐马尔可夫模型中, 包含了四个关键因素,分别是:
- 隐含状态
- 可见状态
- 隐含状态转换
- 可见状态输出

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

隐含状态会输出可见状态,隐含状态和可见状态之间有一个输出概率,不同隐含状态到可见状态的输出概率可能不同
例如,隐含状态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 q1到qnn种状态
观测结果集合 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 v1到vmm种可能的结果
在掷骰子的案例中, 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 v1到v8对应数字1到8

状态转移矩阵
状态转移的概率矩阵 A A A是一个是一个 N ∗ N N*N N∗N的矩阵

其中 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 3∗3的状态转移概率矩阵,其中的每个元素都是 0.33 0.33 0.33,

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

其中 b i j b_ij bij代表了在时刻 t t t,状态 q i q_i qi输出观测结果 v j v_j vj的概率。
例如,在掷骰子时,根据三种骰子的输出,可以得到一个 3 ∗ 8 3*8 3∗8的概率矩阵,第一行对应六面骰子,输出1到6的概率是1/6,输出7和8的概率是0,而第二行和第三行,分别代表投掷四面骰子和八面骰子的输出1到8的概率

初始状态概率向量
初始状态的概率向量是 π \pi π,它是一个 N ∗ 1 N*1 N∗1的列向量, π 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 A、B、π共同决定,使用三元符号 λ = ( 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 先把以前的卸载,…...
基于音频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ÿ…...
我测试用的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.…...
从原理到实践:深入理解Shellcode免杀技术及其对抗策略
Shellcode免杀技术的深度解析与对抗策略演进 在网络安全攻防对抗的永恒博弈中,Shellcode免杀技术始终占据着特殊地位。不同于传统的恶意软件检测规避,Shellcode免杀更注重代码层面的"隐形"能力,其核心在于让关键载荷在内存中执行时…...
5分钟掌握SQLite在线查看器:浏览器中的数据库管理革命
5分钟掌握SQLite在线查看器:浏览器中的数据库管理革命 【免费下载链接】sqlite-viewer View SQLite file online 项目地址: https://gitcode.com/gh_mirrors/sq/sqlite-viewer 在数据驱动的时代,SQLite数据库无处不在——从移动应用到嵌入式设备&…...
Kivy中文显示乱码?3步搞定字体配置(附免费字体下载)
Kivy中文显示乱码?3步搞定字体配置(附免费字体下载) 当你在Kivy应用中看到中文变成一堆问号或方框时,别急着怀疑人生——这通常是字体配置的小问题。作为Python生态中最受欢迎的跨平台GUI框架之一,Kivy默认使用Roboto字…...
ESLint-Plugin-Unicorn规则优先级设置终极指南:如何平衡代码质量和开发效率
ESLint-Plugin-Unicorn规则优先级设置终极指南:如何平衡代码质量和开发效率 【免费下载链接】eslint-plugin-unicorn More than 100 powerful ESLint rules 项目地址: https://gitcode.com/gh_mirrors/es/eslint-plugin-unicorn ESLint-Plugin-Unicorn是一个…...
Evolutionary Architecture by Example:如何避免过度工程化陷阱
Evolutionary Architecture by Example:如何避免过度工程化陷阱 【免费下载链接】evolutionary-architecture-by-example Navigate the complex landscape of .NET software architecture with our step-by-step, story-like guide. Unpack the interplay between m…...
YOLOv8显存溢出?CPU轻量版部署教程让资源占用降低80%
YOLOv8显存溢出?CPU轻量版部署教程让资源占用降低80% 1. 项目背景与价值 你是不是遇到过这样的情况:想用YOLOv8做目标检测,结果一运行就显存溢出,或者GPU资源被占满导致其他程序卡顿?这种情况在资源有限的开发环境中…...
如何轻松备份微信聊天记录:WeChatMsg完整指南让数据掌控权回归你手
如何轻松备份微信聊天记录:WeChatMsg完整指南让数据掌控权回归你手 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trend…...
Delphi网络编程实战:UDP通信与多线程网络优化详解
前两篇文章分别讲解了Delphi中基于Indy组件的TCP点对点通信、HTTP/HTTPS接口交互,覆盖了可靠连接、Web对接两大常用场景。本篇将深入讲解UDP通信,同时补充多线程网络编程、数据传输防护、常见故障排查等进阶内容,补齐Delphi网络开发的核心模块…...
从SENet到KAN卷积:一文搞懂注意力机制如何从‘加权’进化到‘学习’(附演进路线图)
注意力机制的进化图谱:从SENet到KAN卷积的技术跃迁 在计算机视觉领域,注意力机制已成为提升模型性能的关键技术。本文将带您深入探索注意力机制从早期通道注意力到最新动态结构学习的完整演进历程,揭示这一技术如何从简单的特征重标定发展为能…...
3个核心技巧:快速掌握免费在线PPT编辑器PPTist的创作秘诀
3个核心技巧:快速掌握免费在线PPT编辑器PPTist的创作秘诀 【免费下载链接】PPTist PowerPoint-ist(/pauəpɔintist/), An online presentation application that replicates most of the commonly used features of MS PowerPoint, allowing…...
