上一篇我们简单的回顾了下马尔可夫链,这一章我们来详细介绍隐马尔可夫模型。

1.HMM 隐马尔可夫模型

隐马尔科夫模型从名字上就可以知道它一定离不开马尔可夫模型,事实也是这样,回看马尔可夫链的定义,我们只需要关注状态序列的状态转移矩阵以及初始状态分布,也就是说马尔可夫链关注点为可以直观观测的观测序列,而隐马尔可夫模型在马尔可夫链的基础上增加了隐藏序列。

对于隐马尔可夫模型,我们首先假设Q是所有可能的隐藏状态的集合,V是所有可能的观测状态的集合

当着这里是状态的可能性的集合,所以N和M的关系是未知的。

然后我们给出一个序列T,长度为t,O为观测序列,H为隐藏序列。当然这两个序列的长度和序列T的长度是相同的,都是t。

完成上述的基本定义后,HMM模型做出了2个假设。

假设一

齐次马尔科夫链假设。这个假设也就是上一篇我们介绍马尔可夫链提到的“无记忆性”,也被叫做马尔可夫性质。即任意时刻的隐藏状态只依赖于它前一个隐藏状态。当然这样假设有点极端,因为很多时候我们的某一个隐藏状态不仅仅只依赖于前一个隐藏状态,可能是前两个或者是前三个。但是这样假设的好处就是模型简单,便于求解。

假设二

 观测独立性假设。即任意时刻的观察状态只仅仅依赖于当前时刻的隐藏状态,这也是一个为了简化模型的假设。这也是HMM相比于MC新增加的假设。

我在笔记上画了一个简单的图来解释这两个假设。

当然上面的解释是用白话描述来的,我们还需要用数学语言来描述这两个假设。

第一个假设其实任然用MC中的状态转移概率矩阵来阐述假设一。

如果在时刻t的隐藏状态 i(t) 是 q(i) ,在时刻 t+1 的隐藏状态是 i(t+1) = q(j) ,则从时刻 t 到时刻 t+1 的HMM状态转移概率 a(ij) 可以表示为上图。这样状态转移概率矩阵就可以表示为:

                   

第二个假设我们采用观测序列概率生成矩阵来描述。

如果在时刻 t 的隐藏状态是 i(t)=q(i) 对应的观察状态为  o(t)=v(k),则该时刻观察状态 �� 在隐藏状态q(i)下生成的概率 v(k) 满足:

          

  观测序列概率生成矩阵定义如下:     

                  

确定了状态转移矩阵和观测序列概率生成矩阵,再只需要一个初始状态I即可构成HMM。由上可得,HMM可以被定义为一个三元组MC。HMM = (I,A,B),I代表初始状态,A代表状态转移矩阵,B代表观测序列概率生成矩阵,确定了这三个因素,我们便确定了HMM,那确定了HMM,我们用HMM要解决什么问题呢?

其实,HMM有3个基本问题:

1.概率计算问题

这种问题是给定HMM模型 HMM = (I,A,B)和观测序列 O = (o1,o2....)。我们需要计算在给定HMM模型下观测序列O出现的概率。

2.学习问题

这种问题是在给定观测序列O的情况下,我们需要估计模型HMM的参数使得模型在这组参属下得到观测序列O的概率最大。

3.预测问题

这种问题是给定模型和观测序列,我们需要计算获得最有可能的对应的状态序列。

这样说太抽象了,我们用几个例子来说明这几个问题。

概率计算问题例子:

这个例子参考bilibili博主 ”简博士“ 机器学习系列视频 ”隐马尔科夫模型“ 中的三硬币问题。

上图为HMM模型的三要素已经确定。我们有三枚硬币,硬币正反的概率参考B观测序列生成概率矩阵,初始状态认为3个硬币随机选取,概率均为1/3。现在我们观测到第一次扔硬币为正面,那发生的情况的概率如何计算呢?

上图我详细的写了如何计算一次为正的概率,同时我们还提出了新的问题就是抛两次硬币两次都为正面的概率是多少,这种情况是9种情况的全概率公式。分别为第一次为A硬币为正,第二次为A/B/C为正。这是三种情况,以此类推,为第一次为B为正,第二次为A/B/C为正,还有第一次为C一共9种情况,我们需要全部计算并进行累加。

这便是第一种概率问题的一个例子。

今天我们就写到这,有问题请指正。接下来我们还会持续更新剩余的2个问题以及一些模型应用。

参考:

统计学习方法(第2版) (豆瓣)

隐马尔可夫模型(5):隐马尔可夫模型的小栗子——三硬币模型(下)_哔哩哔哩_bilibili

60分钟看懂HMM的基本原理 - 知乎

机器学习算法之——隐马尔可夫(Hidden Markov ModelsHMM)原理及Python实现 - 知乎

隐马尔可夫模型HMM - 知乎

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐