隐藏马尔科夫模型 HMM 学习笔记1 生成模式与隐藏模式

一 序

本文属于《HMM 自学教程》读书笔记。我自己作为一个NLP初学者,数学有限对于大多数博客介绍数学公式推导的过程比较头大。

无意中看到HMM 学习最佳范例  ,直觉就是这篇很接地气。用通俗易懂的语言来解释深奥的原理。适合入门。当然也有大佬做了进一步修订,请看:https://blog.csdn.net/itplus/article/details/15335811

二 生成模式(Generating Patterns)

 我们通常都习惯寻找一个事物在一段时间里的变化模式(规律),本教程中我们将考虑的一个典型的系统类型。

    首先,我们将介绍产生概率模式的系统,如晴天及雨天间的天气波动。然后,我们将会看到这样一个系统,我们希望预测的状态并不是观察到的——其底层系统是隐藏的。在上面的例子中,观察到的序列将是海藻而隐藏的系统将是实际的天气。最后,我们会利用已经建立的模型解决一些实际的问题。比如已知一周的天气,预测之后的天气将会是什么?

2.1 确定性模式

  确定性模式(Deterministic Patterns)

   交通信号灯的例子,红黄绿的状态切换是有规律的,也是确定的。

2.2 非确定性模式

非确定性模式(Non-deterministic patterns)

 作者举了天气的例子,假设有3种状态:晴天、多云、下雨。与交通信号灯例子不同,三个天气状态之间的变化是不确定的。

为了寻找规律,一种假设模型的当前状态仅仅依赖于前面的几个状态,这被称为马尔科夫假设,它极大地简化了问题。显然,这可能是一种粗糙的假设,并且因此可能将一些非常重要的信息丢失。

由于这样经过简化的系统可以用来分析,我们常常接受这样的知识假设。

一个马尔科夫过程是状态间的转移仅依赖于前n个状态的过程。这个过程被称之为n阶马尔科夫模型,其中n是影响下一个状态选择的(前)n个状态。最简单的马尔科夫过程是一阶模型,它的状态选择仅与前一个状态有关。这里要注意它与确定性系统并不相同,因为下一个状态的选择由相应的概率决定,并不是确定性的。

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

hmm3

 下面的状态转移矩阵显示的是天气例子中可能的状态转移概率:

 -也就是说,如果昨天是晴天,那么今天是晴天的概率为0.5,是多云的概率为0.375。注意,每一行的概率之和为1。

要初始化这样一个系统,我们需要确定起始日天气的(或可能的)情况,定义其为一个初始概率向量,称为π向量。

hmm5

也就是说,第一天为晴天的概率为1。
  现在我们定义一个一阶马尔科夫过程如下:
   状态:三个状态——晴天,多云,雨天。
   pi向量:定义系统初始化时每一个状态的概率。
   状态转移矩阵:给定前一天天气情况下的当前天气概率。
 任何一个可以用这种方式描述的系统都是一个马尔科夫过程。

2.3总结


  我们尝试识别时间变化中的模式,并且为了达到这个目我们试图对这个过程建模以便产生这样的模式。我们使用了离散时间点、离散状态以及做了马尔科夫假设。在采用了这些假设之后,系统产生了这个被描述为马尔科夫过程的模式,它包含了一个π向量(初始概率)和一个状态转移矩阵。关于假设,重要的一点是状态转移矩阵并不随时间的改变而改变——这个矩阵在整个系统的生命周期中是固定不变的。

三 隐藏模式(Hidden Patterns)

 3.1、马尔科夫过程的局限性

      在某些情况下,我们希望找到的模式用马尔科夫过程描述还显得不充分。天气那个例子,传说天气和水藻的状态是紧密相关的。在这个例子中我们有两组状态,观察的状态(水藻的状态)和隐藏的状态(天气的状态)。

     另一个例子是语音识别,我们听到的声音是来自于声带、喉咙大小、舌头位置以及其他一些东西的组合结果。一些语音识别装置工作的原理是将内部的语音产出看作是隐藏的状态,而将声音结果作为一系列观察的状态,这些由语音过程生成并且最好的近似了实际(隐藏)的状态。在这两个例子中,需要着重指出的是,隐藏状态的数目与观察状态的数目可以是不同的。一个包含三个状态的天气系统(晴天、多云、雨天)中,可以观察到4个等级的海藻湿润情况(干、稍干、潮湿、湿润);纯粹的语音可以由80个音素描述,而身体的发音系统会产生出不同数目的声音,或者比80多,或者比80少。

     在这种情况下,观察到的状态序列与隐藏过程有一定的概率关系我们使用隐马尔科夫模型对这样的过程建模,这个模型包含了一个底层隐藏的随时间改变的马尔科夫过程,以及一个与隐藏状态某种程度相关的可观察到的状态集合。     

3.2 隐马尔科夫模型

   下图显示的是天气例子中的隐藏状态和观察状态。假设隐藏状态(实际的天气)由一个简单的一阶马尔科夫过程描述,那么它们之间都相互连接。

hidden-weather-example

隐藏状态和观察状态之间的连接表示:在给定的马尔科夫过程中,一个特定的隐藏状态生成特定的观察状态的概率。这很清晰的表示了‘进入’一个观察状态的所有概率之和为1,在上面这个例子中就是Pr(Obs|Sun),Pr(Obs|Cloud) 及 Pr(Obs|Rain)之和。

除了定义了马尔科夫过程的概率关系,我们还有另一个矩阵,定义为混淆矩阵(confusion matrix),它包含了给定一个隐藏状态后得到的观察状态的概率。对于天气例子,混淆矩阵是:

weather-b-matrix

注意矩阵的每一行之和是1。

3.3 总结(Summary)

  我们已经看到在一些过程中一个观察序列与一个底层马尔科夫过程是概率相关的。在这些例子中,观察状态的数目可以和隐藏状态的数码不同。
  我们使用一个隐马尔科夫模型(HMM)对这些例子建模。这个模型包含两组状态集合和三组概率集合:

  * 隐藏状态:一个系统的(真实)状态,可以由一个马尔科夫过程进行描述(例如,天气)。
  * 观察状态:在这个过程中‘可视’的状态(例如,海藻的湿度)。
  * π向量:包含了(隐)模型在时间t=1时一个特殊的隐藏状态的概率(初始概率)。
  * 状态转移矩阵:包含了一个隐藏状态到另一个隐藏状态的概率
  * 混淆矩阵:包含了给定隐马尔科夫模型的某一个特殊的隐藏状态,观察到的某个观察状态的概率。
  因此一个隐马尔科夫模型是在一个标准的马尔科夫过程中引入一组观察状态,以及其与隐藏状态间的一些概率关系。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值