尝试用摸鱼学来解释隐马尔可夫模型

假如小明一周工作六天,每天工作状态都不相同,比如有活少、活多、心情好、心情差和双倍工资5种状态,不同工作状态下工作效率也不相同,活少和心情差的时候摸鱼时间多,活多、心情好和双倍工资的时候摸鱼时间少。

从小明的工作日常中可以提炼出5种状态和2种观测和观测6天。

状态:活少、活多、心情好、心情不好、双倍工资

观测:摸鱼、认真上班

将涉及到的可能情况展开如下图所示。

每一行对应相同状态,每一列对应每一天。其中红色块在矩形中的占比表示一天中摸鱼的程度,也就是摸鱼的观测概率。蓝色箭头表示不同状态间的转移概率。那么状态序列总共有5^6种。

假设天数为T(列数),状态数为N(行数)。

问题1(概率计算问题):假如观察小明的六天,得到的观测序列为:摸鱼 -> 认真工作 -> 摸鱼 -> 认真工作 -> 摸鱼 -> 认真工作,并且已知蓝色箭头的状态转移概率和摸鱼的观测概率,请问该观测序列的概率为多少?

从上图就可以知道只要求出所有能够得到该观测序列的状态序列概率之和就行了。总共有N^T种状态序列(穷举所有蓝色箭头路径),并且每种状态序列需要T个观测概率相乘(每个状态一个观测概率),所以总的计算复杂度为O(N^T)。这种暴力求解的方法计算复杂度太高了,可以用前向-后向算法来减少计算量。

以前向算法为例(后向算法可以认为是状态序列的反转,计算方法相同),简单来说,就是利用分治和动态规划的思想,把6天拆分成5个重复单元,然后先计算出第一个重复单元红色虚线框中每个状态的观测概率,并且保存下来当作下一个重复单元的初始状态,循环5次就得了最终的观测概率。每个重复单元总共有N^2种状态序列,并且每种状态序列需要2个观测概率相乘,所以一个重复单元的计算复杂度为O(N^2),那么总的计算复杂度为O(TN^2)。比起暴力求解观测概率,复杂度大大降低。

问题2(学习问题):已知小明加上同事,总共有10人的观测序列,请问如何估计不同状态之间的转移概率和摸鱼的观测概率呢?

如图所示,红色块和蓝色箭头是需要通过10人的观测序列估计出来的。这里需要用到Baum-Welch算法,简单来说,就是通过EM算法构建出带隐函数的优化函数Q,然后用拉格朗日函数求解。

问题3(预测问题):假如观察小明的六天,得到的观测序列为:摸鱼 -> 认真工作 -> 摸鱼 -> 认真工作 -> 摸鱼 -> 认真工作,并且已知蓝色箭头的状态转移概率和摸鱼的观测概率,请问该观测序列最有可能的状态序列是什么?

这个问题跟问题1很相似,不同的地方在于问题1是求该观测序列的所有状态序列概率之和,而问题3求的是该观测序列的所有状态序列中最有可能出现的状态序列。

所以求解方式和问题1类似,只不过需要从所有可能状态序列中找出概率最大的状态序列。上图绿色路径可能就是概率最大的状态序列。

可见隐马尔可夫模型简直太有用了!老板可以通过公司的规章制度来引导员工的身心健康!或者根据员工的摸鱼情况来预测员工的身心健康,从而更好的优化公司的规章制度!


往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑温州大学《机器学习课程》视频
本站qq群851320808,加入微信群请扫码:

【机器学习】用摸鱼学来解释隐马尔可夫模型(HMM)相关推荐

  1. 用摸鱼学来解释隐马尔可夫模型(HMM)

    尝试用摸鱼学来解释隐马尔可夫模型 假如小明一周工作六天,每天工作状态都不相同,比如有活少.活多.心情好.心情差和双倍工资5种状态,不同工作状态下工作效率也不相同,活少和心情差的时候摸鱼时间多,活多.心 ...

  2. 用机器学习识别不断变化的股市状况—隐马尔可夫模型(HMM)股票指数预测实战

    "了解不同的股市状况,改变交易策略,对股市收益有很大的影响. 弄清楚何时开始或何时止损,调整风险和资金管理技巧,都取决于股市的当前状况. ▼ 有些策略在波澜不惊的股市中表现良好,而有些策略可 ...

  3. 机器学习知识点(二十五)Java实现隐马尔科夫模型HMM之jahmm库

    1.隐马尔可夫模型HMM的应用场景,关乎于序列和状态变化的都可以.    发现java有可库,专为开发HMM,可惜只能在CSDN上有得下载.     2.jahmm是java开发隐马尔科夫模型的一个j ...

  4. 【机器学习算法】隐马尔可夫模型HMM(一)

    目录 一.马尔可夫模型 1. 马尔可夫性 2. 马尔可夫链 3. 马尔可夫链案例 二.隐马尔可夫模型HMM 1. named entity recognition(命名实体识别)问题概述 2. 什么是 ...

  5. 隐马尔科夫模型 HMM 与 语音识别 speech recognition (1):名词解释

    0.引言 想在 CSDN 上看一下隐马尔科夫模型,简称HMM(Hidden Markov Model)的例子,找了几篇博文,却发现大部分都是转载的,转载的还没有出处,文中的表述与逻辑也看的人晕头转向, ...

  6. 机器学习知识点(二十四)隐马尔可夫模型HMM维特比Viterbi算法Java实现

    1.隐马尔可夫模型HMM    学习算法,看中文不如看英文,中文喜欢描述的很高深.    http://www.comp.leeds.ac.uk/roger/HiddenMarkovModels/ht ...

  7. 机器学习算法拾遗:(七)隐马尔科夫模型(前向后向算法、鲍姆-韦尔奇算法、维特比算法)

    1.隐马尔科夫模型HMM 隐马尔科夫模型的图结构如下 从上图中主要有两个信息:一是观测变量xi 仅仅与与之对应的状态变量yi 有关:二是当前的状态变量yi 仅仅与它的前一个状态变量yi-1 有关. 隐 ...

  8. python地图匹配_基于隐马尔科夫模型(HMM)的地图匹配(Map-Matching)算法

    1. 摘要 本篇博客简单介绍下用隐马尔科夫模型(Hidden Markov Model, HMM)来解决地图匹配(Map-Matching)问题.转载请注明网址. 2. Map-Matching(MM ...

  9. 【ML】【HMM】【转】隐马尔可夫模型(HMM)简介

    隐马尔可夫模型(HMM)简介 转自:http://xiaofeng1982.blog.163.com/blog/static/315724582009824103618623/ 请各位读者深吸一口气- ...

最新文章

  1. KEIL和source insight混合编辑时,文本对齐的方式
  2. javascript函数上的prototype属性的理解
  3. Smartforms Debug
  4. msdn中C#中常用词汇概念(转帖)
  5. sdh管理单元指针_SDH设备上STM-1接口是啥玩意
  6. html批量导入excel表格,html 导入excel表格数据格式-如何将网页中的表格快速复制到EXCEL中...
  7. (五)自动化MLOps部署到Kubernetes
  8. 一道BT的面试题之我见
  9. XML学习总结(一)——XML介绍
  10. IP是什么?动态IP和静态IP有什么区别?
  11. 瑞典计算机最好的大学排名,瑞典前十大学一览表
  12. Mybatis批量插入数据到Oracel
  13. 区块链:信仰亦需理性
  14. 13个可以激励自己的名言
  15. 经典的卷积网络架构(二)——GoogLeNet [inception v1] 详解
  16. Flink的Source端和Sink端大全
  17. 艾宾浩斯记忆曲线——定期、及时复习的重要性
  18. 安装Google Chrome OS 操作系统
  19. 陆军计算机ip等级,作战计算是科学不是技能,重点领域发布!
  20. android学习心得【安卓入门一】

热门文章

  1. UVA Mapping the Swaps
  2. bzoj:3110: [Zjoi2013]K大数查询
  3. GitHub入门与实践 读书笔记一:欢迎来到GitHubde世界
  4. Golang 函数function
  5. 动态代理案例1:运用Proxy动态代理来增强方法
  6. UploadHandleServlet
  7. mysql merge表介绍
  8. SQLServer转义问题
  9. DirectX 3D学习笔记(一)
  10. 关于团队发展的若干想法(欢迎讨论)