常见30种数学建模模型_数学建模_隐马尔可夫模型HMM

2023-11-16

1:要解决的问题?

例如: 

1:我要用键盘输入一大段文字,如果在手动输入时,能不能有一个输入法能猜测出我想要录入的句子供我选择?

2: 和别人对话,听到一串连续的声音,能不能有个机器能预测他实际想要表达的内容?

3:希望根据当前天气的情况来预测未来天气情况

现在打字写笔记,我在键盘上敲出来的一系列字符就是观测序列,

而我实际想写的一段话就是隐藏序列。输入法的任务就是从敲入的一系列字符尽可能的猜测我要写的一段话,并把最可能的词语放在最前面让我选择,这就可以看做一个HMM模型了。再举一个,我在和你说话,我发出的一串连续的声音就是观测序列,而我实际要表达的一段话就是状态序列,你大脑的任务,就是从这一串连续的声音中判断出我最可能要表达的话的内容。

隐马尔科夫模型(Hidden Markov Model,以下简称HMM)是比较经典的机器学习模型了,它在语言识别,自然语言处理,模式识别等领域得到广泛的应用。

HMM模型时我们的问题一般有这两个特征:

我们的问题是基于序列的,比如时间序列,或者状态序列

我们的问题中有两类数据,一类序列数据是可以观测到的,即观测序列;而另一类数据是不能观察到的,即隐藏状态序列,简称状态序列。

2:数学知识:

马尔可夫过程 (Markov Process):

马尔科夫过程描述的是空间状态经过一个状态到另一个状态转换的随机过程Markov Property(马尔科夫的性质):

104175e9-842b-eb11-8da9-e4434bdf6706.svg

t+1时刻的状态与t时刻之前的状态已经没有关系

马尔可夫过程:

满足马尔可夫性质的过程,就叫做马尔可夫过程。

马尔可夫链

时间和状态都是离散的马尔可夫过程称为马尔可夫链。

马尔可夫链的实际应用:预测股市广告收益预测

状态转移概率:

是指从一个马尔科夫状态s跳转到后继状态s'的概率

马尔科夫随机序列由元组表示。S 代表有限状态集,P 是状态转移概率矩阵。公式114175e9-842b-eb11-8da9-e4434bdf6706.svg,描述了一个状态转移到另一个状态发生的概率。

所有状态的转移概率:

6eea4aea35969828a9a0eb1ae6dc53a5.png

模型

生成模式(Generating Patterns)

确定性模式(Deterministic Patterns)交通信号灯

因为状态间的转移是完全已知的。

非确定性模式(Non-deterministic patterns): 天气预报

一个马尔科夫过程是状态间的转移仅依赖于前n个状态的过程。这个过程被称之为n阶马尔科夫模型,其中n是影响下一个状态选择的(前)n个状态。最简单的马尔科夫过程是一阶模型,它的状态选择仅与前一个状态有关。

 对于有M个状态的一阶马尔科夫模型,共有M^2个状态转移,因为任何一个状态都有可能是所有状态的下一个转移状态。每一个状态转移都有一个概率值,称为状态转移概率——这是从一个状态转移到另一个状态的概率。所有的M^2个概率可以用一个状态转移矩阵表示。注意这些概率并不随时间变化而不同——这是一个非常重要(但常常不符合实际)的假设。

3: 隐马尔科夫模型(Hidden Markov Models):

定义(Definition of a hidden Markov model):

数学符号:

模型包含两个状态集合和三组概率:

隐藏状态:Q ={ 144175e9-842b-eb11-8da9-e4434bdf6706.svg}     一个系统的(真实)状态         

观察状态:在这个过程中可视的状态  V ={ 154175e9-842b-eb11-8da9-e4434bdf6706.svg}

164175e9-842b-eb11-8da9-e4434bdf6706.svg向量:包含了(隐)模型在时间t=1时一个特殊的隐藏状态的概率

 164175e9-842b-eb11-8da9-e4434bdf6706.svg ={ 1b4175e9-842b-eb11-8da9-e4434bdf6706.svg}  (初始概率)

状态转移矩阵:一个隐藏状态到另一个隐藏状态的转移概率

    A  = 1d4175e9-842b-eb11-8da9-e4434bdf6706.svg   

    1e4175e9-842b-eb11-8da9-e4434bdf6706.svg 表示状态i直接转移到状态j的概率。

混淆矩阵:状态生成观测序列的概率也称发射矩阵

204175e9-842b-eb11-8da9-e4434bdf6706.svg

214175e9-842b-eb11-8da9-e4434bdf6706.svg表示在状态234175e9-842b-eb11-8da9-e4434bdf6706.svg生成观察 244175e9-842b-eb11-8da9-e4434bdf6706.svg的概率

隐马尔可夫模型三大假设:

1:齐次马尔可夫假设。又叫一阶马尔可夫假设,即任意时刻的状态只依赖前一时刻的状态,与其他时刻无关。符号表示为:

2:观测独立性假设。任意时刻的观测只依赖于该时刻的状态,与其他状态无关

推广:n阶马儿可夫模型:任意时刻的状态只依赖前面n个时刻的状态,与其他时刻无关。

3:参数不变性假设。上面介绍的三大要素不随时间的变化而改变,即在整个训练过程中一直保持不变。

隐马尔可夫模型三个问题:

应用(Uses associated with HMMs):

第一个问题: 概率计算问题

已知模型 b148239fe0d139bb329452943d0b35df.png, 和观测序列O={ 264175e9-842b-eb11-8da9-e4434bdf6706.svg},求274175e9-842b-eb11-8da9-e4434bdf6706.svg观察序列的概率

方法: 

  1. 直接计算(暴力求解)

  2. 前向算法 forward

  3. 后向算法 backward

第二个问题: 学习问题

已知观测序列O={ 264175e9-842b-eb11-8da9-e4434bdf6706.svg},估计模型参数b148239fe0d139bb329452943d0b35df.png,使得在该模型下274175e9-842b-eb11-8da9-e4434bdf6706.svg出现的概率最大。(极大释然估计)

方法:

  1. 训练数据如果有对应的隐藏状态,监督学习 极大释然估计

  2. 无监督学习,b148239fe0d139bb329452943d0b35df.png参数学习可以由EM算法实现(Baum-Welch)

第三个问题:deconding 解码问题(预测问题)

已经模型b148239fe0d139bb329452943d0b35df.png,和观测序列O={ 264175e9-842b-eb11-8da9-e4434bdf6706.svg},和状态Q ={ 144175e9-842b-eb11-8da9-e4434bdf6706.svg}  求给的观测序列条件概率P(I | O)最大的状态序列,搜索最有可能生成一个观察序列的隐藏状态序列(解码)

方法:

  1. 近似算法:(贪心)

  2. 维特比算法 动态规划

4: 观测序列的生成过程

根据隐马尔可夫模型定义,可以将一个长度为T的观测序列 c40e2784346351d3fa67c86e8672a9fa.png的生成过程描述如下:

算法(观测序列的生成)

输入:隐马尔可夫模型670545b4fdea7406103af74be93843cc.png,观测序列长度

输出:观测序列c40e2784346351d3fa67c86e8672a9fa.png

(1)按照初始状态分布e0b962397415e8e63c01e17fed4ce06a.png产生状态f327d39750c12c5ec99a8f681f171b7a.png

(2)令t=1

(3)按照状态f327d39750c12c5ec99a8f681f171b7a.png的观测概率分布334dd55333885c0779a4121cdd02b69a.png生成a898821323d40eab7d90c5520f3848f2.png

(4)按照状态f327d39750c12c5ec99a8f681f171b7a.png的状态转移概率分布8f8bb84e343f81644d67b0d7007d2af1.png产生状态54d947189447c82b304934ba8c94b416.png

532c2425b9353863b679f48825d09cf0.png;如果dfdc2c56ff8a53b4826a4fe738261988.png则转步(3);否则,终止。

5:概率计算算法

1:暴力求解 :不可取

给定模型,求给定长度为T的观测序列的概率,直接计算法的思路是枚举 所有 的长度T的状态序列,计算该状态序列与观测序列的联合概率(隐状态发射到观测),对所有的枚举项求和即可。在状态种类为N的情况下,一共有N^T种排列组合,每种组合计算联合概率的计算量为T,总的复杂度为 bfcfcd65d726beb1e7793f1585a7f50d.png

2:前向算法: 

定义(前向概率)给定隐马尔可夫模型74a479e7ce86e0eed7fe47472e4d7b27.png,定义到时刻t为止的观测序列为d6c8a3003b1750df8d0a8f8d35ff4577.png且状态为4a3b2659b97fdeaf881205b3159ec886.png的概率为前向概率,记作

d36e7542633de4d9ebc0ddcf12d20cec.png

可以递推地求得前向概率284676b0c1a25ad2cb53a41da6a4ad70.png及观测序列概率04d5bf5f82cd1c676ad8161935eb776c.png

算法(观测序列概率的前向算法)

输入:隐马尔可夫模型74a479e7ce86e0eed7fe47472e4d7b27.png,观测序列

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

常见30种数学建模模型_数学建模_隐马尔可夫模型HMM 的相关文章

  • Oracle11.2.0.4升级补丁包

    Oracle11 2 0 4升级补丁包 说明 系统版本 RedHat 7 6 Oracle版本 11 2 0 4 64位 OPatch补丁版本 p6880880 112000 Linux x86 64 zip Oracle补丁版本 p317
  • Android Studio JDK设置详解

    Android Studio JDK设置详解 Android Studio是当前广泛用于Android应用开发的集成开发环境 IDE 在使用Android Studio进行开发时 必须配置Java Development Kit JDK 以
  • unity用虚拟相机截图

    1 工程 2 脚本 Capture cs using System Collections using System Collections Generic using UnityEngine using System IO public
  • Javascript 脚本语言

    JavaScript代码可以直接嵌在网页的任何地方 不过通常我们都把JavaScript代码放到中 JavaScript代码块一般放在script标签中 1 外链式 用script引入外部的js文件 2 内嵌式 在script标签之间直接写
  • kibana解决Kibana server is not ready yet问题

    我使用的是Docker进行安装的Elasticsearch7 8 0和Kibana7 8 0 安装之后 访问Elasticsearch的9200端口 能正常访问 但是访问Kibana的5601端口 则出现的了 Kibana server i
  • ubuntu 下安装vnc-server

    Ubuntu下安装VNC server 尽管我们在大部分情况下用ssh登录Ubuntu服务器就好了 但是有时候我们的程序需要在图形界面下运行 这时我们就要用到vnc server这个软件了 在Ubuntu下安装vnc server很简单的
  • Docker部署Redis

    Docker部署Redis 准备工作 在CentOS或者Linux创建部署目录 用于存放容器的配置和Redis数据 目的是当重装或者升级容器时 配置文件和数据不会丢失 执行以下命令 a 创建目录 mkdir p container redi
  • 17. 线性代数 - 矩阵的逆

    文章目录 矩阵的转置 矩阵的逆 Hi 您好 我是茶桁 我们已经学习过很多关于矩阵的知识点 今天依然还是矩阵的相关知识 我们来学一个相关操作 矩阵的转置 更重要的是我们需要认识 矩阵的逆 矩阵的转置 关于矩阵的转置 咱们导论课里有提到过 转置
  • 单片机程序中遇到的错误和警告小结

    warning C316 unterminated conditionals 头文件中条件编译或预编译错误 注意 ifndef和 endif的对应即可 还有一种警告情况是定义的参数没有用到 很多都忘记了 先贴这么多吧
  • MYSQL--架构--MGR--理论--02--架构

    MYSQL 架构 MGR 理论 02 架构 1 架构图 1 1 主要组成 APIs接口层 组件层 复制协议模块层 GCS API Paxos 引擎层 1 2 事务进入 MGR 层内部处理过程 应用发来的事务从 MySQL Server 经过
  • QT笔记-生成PDF文件(附带完整源码)绘制表格和文字

    项目链接 https download csdn net download C panpan 88268845 https download csdn net download C panpan 88268845 h public void
  • Ubuntu配置apt-get install自动补全功能

    1 执行以下命令 sudo apt get update sudo apt get upgrade 2 默认会安装bash completion 如果没有安装 请执行以下命令 sudo apt get install bash comple
  • JAVA实现文件的上传和下载

    目录 一 文件的上传和下载的作用 什么是文件上传 文件的下载及需求 为什么使用文件上传 二 文件上传 文件上传的关键 不同的框架提供了不同的获取输入流的方式 Servlet上传案例 文件上传细节 存储位置 文件上传问题 目录分离 三 文件下
  • 前端react框架的部分总结

    前端react框架的部分总结 react的优势 react相对其他框架优势 高性能高效率 实现了前端界面的高性能高效率开发 所以说react很擅长处理组件化的页面 和vue的区别 在React中 一切都是JavaScript 所有的组件的渲
  • Android APP应用启动页白屏(StartingWindow)优化

    转自 https www cnblogs com whycxb p 9312914 html 本人采用这种方法没有效果 启动图片出来第一帧 我应用的第一帧也出来了 启动背景颜色没有调试出来 Theme AppCompat Light Dar
  • Java基础-一些容易被人忽视却重要的Java基础知识(二)

    文章目录 一 重载和重写 1 重载 2 重写 一 重载和重写 1 重载 被重载的方法必须改变参数列表 参数个数或者类型 顺序不一样 被重载的方法可以改变返回类型 被重载的方法可以改变访问修饰符 可以使用新的或更广的检查异常 方法能够在同一类
  • java动态生成pdf文件的方法

    java动态生成pdf文件 文章目录 java动态生成pdf文件 前言 一 生成pdf模板 二 使用步骤 1 使用jar包 2 pdf实现方法 总结 前言 java开发过程中难免会遇到生成文件的需求 这里简单介绍一下关于pdf格式的文件的动
  • python常见的面试题,看你都掌握了吗

    前言 Python是目前编程领域最受欢迎的语言 在本文中 我将总结Python面试中最常见的50个问题 每道题都提供参考答案 希望能够帮助你在2019年求职面试中脱颖而出 找到一份高薪工作 这些面试题涉及Python基础知识 Python编

随机推荐