首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

隐马尔科夫模型笔记

互联网 · 机器学习 · 产品分析

关注SeekJoy觅乐一网打尽

笔记为个人理解后的思想,避免过于专业的术语,如果需要详细的定义请点击这里或者参考李航老师的《统计机器学习》。

1.隐马的基本概念

隐马模型是一个的。

主要包含两个序列:和。中的每一个“状态”对应一个中的一个“观测”。(注意前面提到过,这个序列是关于时序的,所以是严格按照时间先后顺序的)。

“状态”这玩意我们是看不到的(即隐藏的),我们只能看到由其生成的“观测”结果。所以我们希望从“观测”去研究这个隐藏的“状态”,所以一般问题中的已知条件中只有

O

O

,希望用

O

O

来研究

I

I

· 各种可能的我们用集合

Q

Q

表示,各种可能的我们用集合

V

V

来表示。

· 从一个状态转换到另一个状态,也是以一定的概率进行转换的,这就是,用

A

A

表示。在不同状态下所对应的观测概率,叫做,用

B

B

表示。第一天的观测结果来自各个状态的概率(即状态概率初始化向量)用

π

π

表示。

· 用I来表示,其对应的用

O

O

表示。

2.举个栗子

有点抽象了吧?这里举个稍微通俗的例子,讲给没有基础的朋友听,都说能听懂。

状态转移矩阵

A

A

我举个例子:有一个精神分裂患者,他有三个状态:‘精神正常’、‘精神异常’、‘半正常半异常’。

如果他今天精神正常,那么第二天精神状况会怎样呢?假设他今天正常,第二天正常、异常、半正常的概率假设是[0.5, 0.2, 0.3];如果他今天精神就异常了,那么第二天正常、异常、半正常的概率假设是[0.1, 0.7, 0.2];如果今天半正常,第二天正常、异常、半正常的概率假设是[0.5, 0, 0.5]。

这种从一个“状态”转移到另一个“状态”的概率叫做“状态转移概率”。

我们可以写成矩阵的形式,这个就是:

状态转移矩阵

观测概率矩阵

B

B

假设这个人每天都要给自己做饭:精神正常时他做饭的概率是0.9(不做饭的概率是0.1,比如万一他有其他急事耽误做饭了呢);而在精神异常的状况下,他做饭的概率是0.1(不做饭的概率0.9,毕竟发疯的时候哪还知道做饭这回事);精神半正常半异常时做不做饭的概率对等都为0.5。

直观理解就是:在不同的状态下,做同样事的概率是不同的。做饭这件事就是可以直观看到的(“观测”是可见的),而精神状态我们很难用肉眼来判断(“状态”是隐藏的)。

把不同“状态”下的各种“观测”出现的概率携程矩阵的形式,这个就是:

观测概率矩阵

初始概率向量

π

π

我们希望初始化第一天,在这个例子中就是第一天他精神状况的概率,假设是

π=

0.3,0.3,0.4

π=0.3,0.3,0.4

即在观测的第一天当天,他精神有30%的可能是正常和不正常的,40%的可能是半正常。

当然这些数据都是我随便编的,假设的而已,真实的实际数据需要根据统计得到(这里不讨论,就假装是我统计得到的已知条件)。

A

A

B

B

π

π

是HMM的三要素

A

A

B

B

π

π

被称为”隐马尔科夫模型的三要素“!

即可用

λ=

A,B,π

λ=A,B,π

来描述一个HMM模型,这三者是构成HMM的必要元素!后续问题也是针对这三个要素展开。

3. HMM的三类基本问题

到现在,我们已知的信息有:

π

π

假设有一天他的家人“观测”了他三天的做饭情况分别是(这就是,是可以直接看到的)。但是状态序列是隐藏的,我们也不知道状态序列

I

I

到底是怎样的组合,即无法得知这个人这三天的精神状况分别是怎样。

这时候提出HMM主要的三类基本问题:

问题1:概率计算问题

给定了

λ=

A,B,π

λ=A,B,π

和观测序列

O

O

之后,想要计算针对这个人(即在

λ=

A,B,π

λ=A,B,π

的情况下),观测序列

O

O

出现的概率是多少?

在这个精神病的例子中,观测任意三天结果是

O

O

=[做饭,不做饭,做饭]的概率是多少?即[第一天做饭,第二天没有做饭,第三天又开始做饭]这个事件的概率

P={O

λ}

P={Oλ}

是多少。概率计算的方法主要有“前向算法”和“后向算法”。

问题2:学习问题

给定一个观测序列

O

O

,估计这个模型

λ=

A,B,π

λ=A,B,π

参数。

在这个例子中,给定一个观测到的序列

O

O

=[做饭,不做饭,做饭],我们来反推这个精神病人的

A

A

B

B

π

π

分别最可能是多少的。这也就是极大似然估计,并且这个地方会用到机器学习十分重要的算法——“EM算法”。

问题3:预测问题

给定了

λ=

A,B,π

λ=A,B,π

和观测序列

O

O

之后,这个

O

O

对应的状态序列

I

I

最可能是什么(即概率最大的I)。

预测问题也是我们比较关心的问题,即知道病人的观测序列是

O

O

=[做饭,不做饭,做饭],想知道他这三天每天最可能的精神状态(即隐藏的状态序列

I

I

)是什么,总不可能随便乱猜他每天正常不正常吧。解决这个问题经典算法是“维比特算法”。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180213G01Q5D00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券