隐马尔科夫模型(Hidden Markov Models) 系列之一

  • 介绍(introduction)
  • 生成模式(Generating Patterns)
  • 隐含模式(Hidden Patterns)
  • 隐马尔科夫模型(Hidden Markov Models)
  • 前向算法(Forward Algorithm)
  • 维特比算法(Viterbi Algorithm)
  • 前向后向算法(Forward-Backward Algorithm)
  • 总结

介绍(introduction)

通常我们总是对寻找某一段时间上的模式感兴趣,这些模式可能出现在很多领域:一个人在使用电脑的时候使用的命令的序列模式;一句话中的单词的序列;口语中的音素序列。总之能产生一系列事件的地方都能产生有用的模式。

考虑一个最简单的情况:有人(柯南?)试图从一块海藻来推断天气的情况。一些民间的传说认为“soggy”的海藻意味着潮湿(wet)的天气,“dry”的 海藻预示着晴朗(sun)。如果海藻处于中间状态“damp”,那就无法确定了。但是,天气的情况不可能严格的按照海藻的状态来变化,所以我们可以说在一 定程度上可能是雨天或是晴天。另一个有价值的信息是之前某些天的天气情况,结合昨天的天气和可以观察到的海藻的状态,我们就可以为今天的天气做一个较好的 预报。

这是在我们这个系列的介绍中一个非常典型的系统。

  • 首先我们介绍一个可以随时间产生概率性模型的系统,例如天气在晴天或者雨天之间变动。
  • 接下来我们试图去预言我们所不能观察到的"隐形"的系统状态,在上面的例子中,能被观察到的序列就是海藻的状态吗,隐形的系统就是天气情况
  • 然后我们看一下关于我们这个模型的一些问题,在上面那个例子中,也许我们想知道
  1. 如果我们观察一个星期每一天的海藻的状态,我们是否能知相应的其天气情况
  2. 如果给出一个海藻状态的序列,我们是否能判断是冬天还是夏天?我们假设,如果海藻干(dry)了一段时间,那就意味着是夏天如果海藻潮湿(soggy)了一段时间,那可能就是冬天。

生成模式(Generating Patterns)

 

  • 确定的模式(Deterministic Patterns)

考虑交通灯的例子,一个序列可能是红-红/橙-绿-橙-红。这个序列可以画成一个状态机,不同的状态按照这个状态机互相交替

我们可以注意到,每一个状态都只依赖于此前的状态,如果当前的是绿灯,那么接下来就是橙灯,这就是一个确定型的系统。确定型的系统更容易理解和分析,只要这些状态转移都是已知的。

  • 不确定的模式(Non-Deterministic Patterns)

为了让之前那个天气的例子更贴近现实,我们可以添加一个状态-多云。和交通灯的例子不同,我们不能得到一个确定的状态转移系统,但是我们还是希望能得到一个天气的模式。

一种办法就是假设这个模型的每个状态都只依赖于之前的状态,这个假设被称为马尔科夫假设,这个假设可以大大的简化这个问题。显然,这个假设可能是一个非常糟糕的假设,导致很多重要的信息都丢失了。

当涉及到天气的时候,马尔科夫假设假设如果我们知道之间一些天 的天气的信息,不考虑风力、气压等因素,那么我们就能预言今天的天气。当然,和其他许多例子一样,这个列子也是不合实际的。但是,这样一个简化的系统可以 有利于我们的分析,所以我们通常接受这样的假设,因为我们知道这样的系统能让我们获得一些有用的信息,尽管不是十分准确的。

一个马 尔科夫过程就是指过程中的每个状态的转移只依赖于之前的n个状态,这个过程被称为1个n阶的模型,其中n是影响转移的状态的数目。最简单的马尔科夫过程就 是一阶过程,每一个状态的转移只依赖于其之间的那一个状态。注意这和确定型的系统不一样,因为这种装因是有概率的,而不是确定的。下面这个图展示了天气这 个例子中所有可能的一阶转移:

注意一个含有M个状态的一阶过程有M的平方个状态转移。每一个转移的概率叫做状态转移概率(state transition probability),就是从一个状态转移到另一个状态的概率。这所有的M的平方个概率可以用一个状态转移矩阵来表示。注意这里有一个假设,概率不随时间的变化而变化,这又是一个不现实但很重要的假设。下面就是一个状态转移矩阵的列子:

这个矩阵的意思是,如果昨天是晴天,那么今天又50%的可能是晴天,37.5%的概率是阴天,12.5%的概率会下雨,很明显,每一行的和都是1。

为了初始化这样一个系统,我们需要一个初始的概率向量:

这个向量表示第一天是晴天。

到这里,我们就为一阶马尔科夫过程定义了以下三个部分:

  • 状态:晴天、阴天和下雨
  • 初始向量:定义系统在时间为0的时候的状态的概率
  • 状态转移矩阵:每种天气转换的概率

所有的能被这样描述的系统都是一个马尔科夫过程。

  • 总结(Summary)

我们为了找到随时间变化的模式,就试图去建立一个可以产生模式的过程模型。我们使用了具体的时间步骤、状态、并且做了马尔科夫假设。有了这些假设,这个能产生模式系统就是一个马尔科夫过程。一个马尔科夫过程包括一个初始向量和一个状态转移矩阵。关于这个假设需要注意的一点是状态转移概率不随时间变化。

转载于:https://www.cnblogs.com/549294286/archive/2013/06/08/3126497.html

隐马尔科夫模型(Hidden Markov Models) 系列之一相关推荐

  1. 隐马尔科夫模型(Hidden Markov Models) 系列之五

    隐马尔科夫模型(Hidden Markov Models) 系列之五 介绍(introduction) 生成模式(Generating Patterns) 隐含模式(Hidden Patterns) ...

  2. 隐马尔科夫模型(Hidden Markov Models) 系列之三

    隐马尔科夫模型(Hidden Markov Models) 系列之三 介绍(introduction) 生成模式(Generating Patterns) 隐含模式(Hidden Patterns) ...

  3. 隐马尔科夫模型(Hidden Markov Models) 系列之四

    隐马尔科夫模型(Hidden Markov Models) 系列之四 介绍(introduction) 生成模式(Generating Patterns) 隐含模式(Hidden Patterns) ...

  4. 机器学习算法之——隐马尔可夫模型(Hidden Markov Models,HMM) 代码实现

    @Author:Runsen 隐形马尔可夫模型,英文是 Hidden Markov Models,就是简称 HMM. 既是马尔可夫模型,就一定存在马尔可夫链,该马尔可夫链服从马尔可夫性质:即无记忆性. ...

  5. 【大道至简】机器学习算法之隐马尔科夫模型(Hidden Markov Model, HMM)详解(3)---学习问题:Baum-Welch算法推导及Python代码实现

    ☕️ 本文系列文章汇总: (1)HMM开篇:基本概念和几个要素 (2)HMM计算问题:前后向算法 (3)HMM学习问题:Baum-Welch算法 (4) HMM预测问题:维特比算法 ☕️ 本文来自专栏 ...

  6. 隐含马尔可夫模型——Hidden Markov models (HMM)

    本文首发于 算法社区 dspstack.com,转载请注明出处,谢谢. 写在前面# 统计学是个好东东,说它是个好东东,因为统计学不像其他有些学科,它不仅在科研领域应用广泛,在平常的生活中我们也会经常碰 ...

  7. 隐马尔科夫模型c#语言算法实现,HMM学习最佳范例四:隐马尔科夫模型

    四.隐马尔科夫模型(Hidden Markov Models) 1.定义(Definition of a hidden Markov model) 一个隐马尔科夫模型是一个三元组(pi, A, B). ...

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

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

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

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

最新文章

  1. 分享 14 个 Spring MVC 顶级技巧!
  2. 7 Papers Radios | 6年前的ResNet重回巅峰;AI辩手登上Nature封面
  3. java 解析注解_Java知识点总结(注解-解析注解)
  4. 从零开始的自学之路——css选择器
  5. java文件打包jar文件_Java打包成jar文件,以及将jar文件导出为exe文件方法汇总(图形说明)...
  6. 03-Bootstrap学习
  7. Android框架Volley使用:Post请求实现
  8. 锁住余额,为何还会更新异常?
  9. 在Docker里部署ReviewBoard4.0-RC
  10. 终端仿真程序-SecureCRT 绿色版提供下载
  11. ----uni-app之APP关联小程序实现扫描APP二维码跳转关联小程序----
  12. 期刊论文发表会有证书吗
  13. 数据分析五、Apriori 算法之关联分析
  14. Bezier曲线构造
  15. 让瓶子里的小人跟你互动,它是怎么做到的?
  16. 使用opencv将16位深度图转灰度图
  17. vue+element 获取中文首字母,转换成大写
  18. 信道容量的数值解法(非对称信道)
  19. 利用文本信息引导视觉的模型CLIP
  20. C++ RTMP直播流播放器

热门文章

  1. Swift 枚举简单使用
  2. ubuntu 安装Docker教程
  3. bzoj千题计划141:bzoj3532: [Sdoi2014]Lis
  4. hadoop上传文件报错
  5. 一个数据库的所见即所得的好工具
  6. 多特蒙德主题本地个人任务清单小demo,你值得尝试!
  7. 用 python 实现各种排序算法(转)
  8. 体验VMware View HTML Access
  9. VS2010SP1安装失败解决方法
  10. b站whats app