深入浅出談 隐马尔可夫的概念(1/ 2)

文章目录

  • 一、说明
  • 二、Markov Chain
  • 三、Introduction
  • 四、State Sequence
  • 五、Comment
  • 六、介绍隐藏式马可夫法则。
  • 七、隐藏马尔可夫Introduction
  • 八、结论

一、说明

在许多机器学习的章节中,常常遇见 HMM ,往往看到它的数学式子后,就当没看到似的跳过去了,其实它的基础理论并不难,尤其是 Markov Chain 在高中数学课本就已经出现过了,但…那么久远的事,相信大家都忘得差不多了,现在一起来回顾一下吧!!

二、Markov Chain

在状态空间中,了解当前的状态与下一个状态发生的随机过程。
(疴…有讲等于没讲,来看一下 Key point 吧! )

Key point:
如左下图,现有三间大型卖场在AIA附近,分别是Costco、爱买、大润发,已知顾客今日在各个卖场间流动的固定几率(invariant),亦即图上的数字,值得注意的是,从每间卖场画出去箭头上的数字相加起来为1 (ex: Costco 0.7+0.2+1 = 1)。 接着来看一下范例吧…
在这里插入图片描述

今天刚来AIA报到的学员圆仔,看到卖场广告后,会到三间卖场的机率分别为0.5、0.1、0.4,那么上课第三天圆仔会到Costco逛的机率是多少? (解法如下)

在这里插入图片描述
在这里插入图片描述

三、Introduction

透过上述例子可以知道,当前的状态跟上一个状态有关,是不是有些感觉了咧? 接下来,就跟着一起走进数学的世界吧!!!

符号介绍:
•假设有 N 个状态,分别标示为 s₁, s₂, …, s_N
•假设从当前状态 si 变成 sj 的机率为 aij,可表示成转移矩阵(Transition Matrix) A,如下…
在这里插入图片描述

•我们纪录第 t 秒的状态在第 i 个状态为 qt = i
•起始时间选定某个状态 si 的机率为 πi ,又可标为 P(q₀ = j)

四、State Sequence

一开始我们会选定一个起状态,然后每过一个单位时间,就会选择走过某一条与当下状态相关的边,到达下一个状态,经过 T 秒后,我们就会得到一条有 T 条边、 T+1 个状态的有序路径(亦称之,state sequence)。
在这里插入图片描述

如果上述说的实在抽象,我们用3个状态、5个时间单位说明吧! 如左图和表格,我们经过5个时间点,会得到6个状态的一条路径,因此我们可以算得形成这条路径的机率是多少?

机率 = π₁ a₁₃ a₃₂ a₂₂ a₂₁ a₁₃

上述的例子,应该可以让大家比较有深刻的感触吧! 不免俗的,还是用数学式子写一下…在有 T 个时间单位下…我们会得到 state sequence Q
在这里插入图片描述

最后,可以得到 Q 的机率为

在这里插入图片描述

五、Comment

在固定状态转换 (invariant)的机率下,一切如上述,似乎单纯,如果我们再加入一些变动因素,举两个常见的例子来看看啦!

(1)学员圆仔每日到卖场的机率,会加入他当日出差路线而有异动,即是与时间相关的非固定状态 (time variant)啦! 其实也没那么复杂,底下的图,让你秒懂这一切。
在这里插入图片描述

(2)学员圆仔每日到某卖场的机率,会受到前一日或是前两日去过哪间卖场的影响,前者称为 first-order,后者称为 second-order,听起来很难,其实也没什么,图画出来就知道简单了。

在这里插入图片描述

这些东西到底哪时候才会用到呢? 只要有时间关系的,例如,RNN、NLP、RL,都可以用 Markov chain 的变化形态来解释喔!

下一章 Hidden Markov Model_part2 会带大家认识闻风丧胆的「Hidden Markov Model」,敬请期待吧!!

六、介绍隐藏式马可夫法则。

Key point:
我们用 part 1 的例子做延伸,如下图,每天都有一定的机率到某间卖场里购物,同时也会有某个机率在该间卖场买瓶饮料。

在这里插入图片描述
在起始机率分别为0.5、0.1、0.4下,圆仔三天来逛卖场的顺序为Q(爱买,Costco, 大润发),每到一间卖场他都会买一瓶饮料,三天来分别买了O(雪碧,可乐,绿茶),请问发生Q和O的共同机率为多少呢?
在这里插入图片描述
现在换个问题来想想,如果已知连续三天到卖场买的饮料依序为O(红茶,雪碧,绿茶),请问有几种可能路线呢? 每条路线分别发生的机率又有多少呢?
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

七、隐藏马尔可夫Introduction

第二个例子说明了,当只知观察值,而状态被隐藏的时候,如何找出「最佳的路径」。 但是,既然是 model 一定是需要训练的,到底什么东西是需要被训练的呢?
在实际遇到的问题中,我们并不会知道「机率转移矩阵」实际的机率是多少,换句话说,我们不知道上述所指的 「转移矩阵 A」和「转移矩阵 B」,只会有一堆数据。
在此,我们用已知的转移矩阵条件下,举一个实际的分类问题,熊猫团团、圆圆、圆仔,半年来,每周买饮料(观察值)的依序清单,至于可能的路线,及多少机率会买到对应的饮料,皆是未知,根据个别的买卖习惯分析,训练对应的模型,找出对应的「转移矩阵」,最后我们要预测,当随便给一周的饮料的清单,最有可能是哪只熊猫的喜好。

在这里插入图片描述
(上图为 HMM,其中一种方法,目的试算出在指定事件的发生状态下,算出此事件发生的最大机率之路径 )

八、结论

HMM模型特点:

  1. HMM 是针对有关时间序列的数据所建立的模型。
  2. 是所有时间模型的鼻祖 (ex: RNN、NLP、RL 等)

讲到这边,大家对于 HMM 能处理的问题,应该有所认识了,part 3 将会带大家了解要如何训练 model ,找出可能的状态栏,不过这部分有很多的数学式在里面,千万别看到就头晕了,所以慎入呀

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

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

相关文章

springboot事务操作

事务操作 事务处理就是将一个方法中的全部操作当初一个整体,如果其中一个地方报出异常,我们就需要回滚回之前的操作,防止数据混乱,数据缺失 1、Transactional springboot为我们提供了Transactional注解,该注解可以用于…

2-5 基于matlab的信号的希尔伯特-黄变换

基于matlab的信号的希尔伯特-黄变换,IMF分解,对IMF进行Hilbert处理,绘制二维/三维时-频图,时间-能量图(瞬时能量谱) ,频率-能量图(希尔伯特谱)。程序已调通,可直接运行。 2-5 希尔伯…

Bytebase 2.19.0 - 支持 DynamoDB

Bytebase 2.19.0 支持 DynamoDB 支持独立的 SQL 审核工单。 支持为工单事件配置 Slack 私信通知。 file 支持 PostgreSQL 的 DML 变更事前备份。 为 SQL Server 添加 SQL 审核规则:禁止冗余索引。 重大变更 创建多数据库工单时,不同数据库会共享同…

python之面向对象详解(一)

一.类与对象 1.1类和对象的创建 类提供了创建对象的蓝图。对象是类的实例,拥有类中定义的属性和方法。self 参数是对类实例自身的引用,用于访问类的属性和方法。 案例: 下面举一个“长方形”类的例子,包含长,宽属性…

前端进阶-js查漏补缺

1、部分语法基础 1.1、let、const 特性:// 1、暂时行死区 // 比如有这一个例子 let aa "111" function test(){console.log(aa)let aa "22" } // 会报错引用错误,就是因为在函数test作用域内存在暂时性死区,如果把aa…

python pandas处理股票量化数据:笔记2

有一个同学用我的推荐链接注册了tushare社区帐号https://tushare.pro/register?reg671815,现在有了170分积分。目前使用数据的频率受限制。不过可以在调试期间通过python控制台获取数据,将数据保存在本地以后使用不用高频率访问tushare数据接口&#xf…

Scala的字符串插值

Scala的字符串插值 期待您的关注 ☀Scala学习笔记 目录 Scala的字符串插值 1. s插值器: 2. f插值器: 3. raw插值器: 在Scala中,字符串插值是一种方便的方式,可以在字符串中插入变量或表达式的值。Scala支持三种类型…

Mybatis用Map接收返回值可能出现的问题

先看一个示例 明明定义了Map<String,String> 实际内部存放的是Integer resultType是Map 也就是说Mybatis是通过反射将类型放进去的 躲过了编辑器检查 但是这样取值时候就会报类型转换错误 解决方式 resultMap 另外一种方式 用Number Integer和Double的父类 Ma…

大学生计算机基础题(二)

嗨&#xff0c;大家好&#xff0c;我是异星球的小怪同志 一个想法有点乱七八糟的小怪 如果觉得对你有帮助&#xff0c;请支持一波。 希望未来可以一起学习交流。 一、单选题&#xff08;20小题&#xff0c;共30分&#xff09; 1、已知a2,b3,print((ab)%b)的输出结果为&…

Excel/WPS《超级处理器》功能介绍与安装下载

超级处理器是基于Excel或WPS开发的一款插件&#xff0c;拥有近300个功能&#xff0c;非常简单高效的处理表格数据&#xff0c;安装即可使用。 点击此处&#xff1a;超i处理器安装下载 Excel菜单&#xff0c;显示如下图所示&#xff1a; WPS菜单显示&#xff0c;如下图所示&am…

15.混合专家模型(MoEs)技术揭秘

混合专家模型&#xff08;MoEs&#xff09;技术揭秘 混合专家模型&#xff08;Mixture-of-Experts, MoEs&#xff09;技术发展简史 Mixtral 8x7B &#xff1a;质效并举的稀疏混合专家模型 Mixtral 8x7B &#xff1a;质效并举的稀疏混合专家模型 MoEs 技术发展简史 MoEs 开山…

matplotlib twinx多y轴但单个图例

matplotlib 用 twinx 画多 y 轴参考 [1]。现想在画图例时&#xff0c;多个 y 轴的图例画在一起&#xff0c;写法参考 [2]。本文展示一个简例&#xff0c;效果&#xff1a; Code 要手动指定颜色&#xff0c;否则原 y 轴的用色和新 y 轴会重合。 import matplotlib.pyplot as…

永磁同步直线电机(PMLSM)控制与仿真2-永磁同步直线电机数学模型搭建

文章目录 1、公式总结2、电压方程模型3、运动方程4、推力方程5、转化关系 写在前面&#xff1a;原本为一篇文章写完了永磁同步直线电机数学模型介绍&#xff0c;永磁同步直线电机数学模型搭建&#xff0c;以及永磁同步直线电机三环参数整定及三环仿真模型搭建&#xff0c;但因为…

Dockerfile小技巧(通过变量指定程序配置文件内容)

思路&#xff1a;Dockerfile中定义变量&#xff0c;程序配置文件中使用占位符暂时代替变量内容&#xff0c;最后使用变量值替换占位符实现&#xff0c;这样就可以实现通过定义变量来定义程序启动时的一些参数了。 1、我以构建Nginx镜像为例&#xff0c;作为演示&#xff0c;Do…

TCP及UDP协议

tcp是点到点的&#xff0c;只有一条路径&#xff0c;到达顺序和发送顺序是相同的 回复的确认号是序发送端的序列号加上data的长度 1910 发送端的序列号也是那么算的 ack和下一个seq一样 那就没问题 三次握手四次挥手&#xff1a; 为啥是三次呢&#xff1f; 假如一次&#xf…

关于Linux ping 不通外网

网关为第三段为137那么子网ip第三段必须为137且IPaddr必须为137 将主机虚拟适配器连接到此网络必须勾上&#xff0c;不然vmnet适配器在windows将找不到 ping www.baidu.com不行的话试着勾上桥接模式应该是不行在勾上取消勾上桥接模式最后勾上nat模式

Spring框架的原理及应用详解(四)

本系列文章简介&#xff1a; 在当今的软件开发世界中&#xff0c;随着应用复杂性的不断增加和技术的快速发展&#xff0c;传统的编程方式已经难以满足快速迭代、高可扩展性和易于维护的需求。为此&#xff0c;开发者们一直在寻求更加高效、灵活且易于管理的开发框架&#xff0c…

【2024亲测无坑】在Centos.7虚拟机上安装Oracle 19C

目录 一、安装环境准备 1、linux虚拟机安装 2、虚拟机快照 3、空间检查&软件上传 二、Oracle软件安装 1.preinstall安装及其他配置准备 2.oracle安装 三、数据库实例的安装 1.netca——网络配置助手 2.dbca——数据库配置助手 四、ORACLE 19C 在linux centos 7上…

Linux rm命令由于要删的文件太多报-bash: /usr/bin/rm:参数列表过长,无法删除的解决办法

银河麒麟系统&#xff0c;在使用rm命令删除文件时报了如下错误&#xff0c;删不掉&#xff1a; 查了一下&#xff0c;原因就是要删除的文件太多了&#xff0c;例如我当前要删的文件共有这么多&#xff1a; 查到了解决办法&#xff0c;记录在此。需要使用xargs命令来解决参数列表…

Vue3 和 Vue2 对比分析及示例代码解析(初级)

Vue3 和 Vue2 的主要区别在于 Vue3 引入了 Composition API&#xff0c;这是一种新的组织和复用代码的方式。而 Vue2 主要依赖于 Options API。 先来看一个 Vue2 的示例&#xff1a; // Vue 2 export default {data() {return {count: 0}},methods: {increment() {this.count…