隐马尔可夫模型

时间:2022-07-19 23:30:04

隐马尔可夫模型(HMM)是一种统计模型

先来看一个*提供的例子:

https://en.wikipedia.org/wiki/Hidden_Markov_model

假设你有一个住得很远的朋友,他每天跟你打电话告诉你他那天做了什么。你的朋友仅仅对三种活动感兴趣:公园散步,购物以及清理房间。他选择做什么事情只凭天气。你对于他所住的地方的天气情况并不了解,但是你知道总的趋势。在他告诉你每天所做的事情基础上,你想要猜测他所在地的天气情况。

你知道这个地区的总的天气趋势,并且平时知道你朋友会做的事情.也就是说这个隐马尔可夫模型的参数是已知的

这就是一个简单的 HMM,天气状况属于状态序列,而她的行为则属于观测序列。而根据天气的不同,有相对应的概率产生不同的行为。在这里,为了简化,把天气情况简单归结为晴天和雨天两种情况。雨天,他选择去散步,购物,收拾的概率分别是0.1,0.4,0.5, 而如果是晴天,他选择去散步,购物,收拾的概率分别是0.6,0.3,0.1。而天气的转换情况如下:这一天下雨,则下一天依然下雨的概率是0.7,而转换成晴天的概率是0.3;这一天是晴天,则下一天依然是晴天的概率是0.6,而转换成雨天的概率是0.4. 同时还存在一个初始概率,也就是第一天下雨的概率是0.6, 晴天的概率是0.4.

 

隐马尔可夫模型

我们的观察集合是: 

V={散步,购物,收拾};

所有的可能的观察数:

M=3;

观察者只能看到朋友的行为序列,却不能看到朋友所在地区的天气。

我们的状态集合是:

Q={雨天,晴天};

所有的可能的状态数:

N=2

初始状态分布为:

π=(0.6,0.4)T

状态转移概率分布矩阵A:

 隐马尔可夫模型

观测状态概率矩阵B:

 隐马尔可夫模型
 

现在,重点是要了解并解决HMM 的三个问题:
问题1,已知整个模型, 朋友告诉我,连续三天,他下班后做的事情分别是:散步,购物,收拾。那么,根据模型,计算产生这些行为的概率是多少。
问题2,同样知晓这个模型,同样是这三件事, 朋友要我猜,这三天他下班后北京的天气是怎么样的。这三天怎么样的天气才最有可能让他做这样的事情。
问题3,最复杂的, 朋友只告诉我这三天他分别做了这三件事,而其他什么信息我都没有。他要我建立一个模型,晴雨转换概率,第一天天气情况的概率分布,根据天气情况他选择做某事的概率分布。

 

具体如何解决这三大问题。需要数学基础,概率基础。

问题1的解决1:遍历算法。

要计算产生这一系列行为的概率,那我们把每一种天气情况下产生这些行为都罗列出来,那每种情况的和就是这个概率。

有3天,每天有2种可能的天气情况,则总共有

隐马尔可夫模型

种情况

举例其中一种情况 :

P(下雨,下雨,下雨,散步,购物,收拾)= P(第一天下雨)P(第一天下雨去散步)P(第二天接着下雨)P(下雨去购物)P(第三天还下雨)P(下雨回家收拾)=0.6X0.1X0.7X0.4X0.7X0.5=0.00588
当然,这里面的 P(第二天接着下雨)当然是已知第一天下雨的情况下,第二天下雨的概率,为0.7.
将八种情况相加可得,三天的行为为{散步,购物,收拾}的可能性为0.033612. 看似简单易计算,但是一旦观察序列变长,计算量就会非常庞大


问题1 的解决2:向前算法。

1)先计算 t=1时刻,发生‘’散步‘’一行为的概率:

1.1)如果下雨,则为

隐马尔可夫模型

1.2)如果晴天:

隐马尔可夫模型

2)t=2 时刻,发生“购物”的概率,当然,这个概率可以从 t=1 时刻计算而来:

2.1)如果t=2下雨,则

隐马尔可夫模型

2.2)如果 t=2晴天,则

P(第一天散步,第二天购物,第二天晴天)=0.0486 (同理可得)

3)t=2 时刻:

3.1)如果 t=3,下雨,则

隐马尔可夫模型

3.2)如果t=3,晴天,则

P(第一天散步,第二天购物,第三天收拾,第三天晴天)= 0.004572

那么 P(第一天散步,第二天购物,第三天收拾),这一概率则是第三天,下雨和晴天两种情况的概率和:

0.02904+0.004572=0.033612

以上例子可以看出,向前算法计算了每个时间点时,每个状态的发生观测序列的概率,看似繁杂,但在 T 变大时,复杂度会大大降低。

 

问题1的解决3:向后算法

顾名思义,向前算法是在时间 t=1的时候,一步一步往前计算。而相反的,向后算法则是倒退着,从最后一个状态开始,慢慢往后推。
给定的模型 隐马尔可夫模型,观测序列O,定义t时刻状态为qi 的条件下,从t+1到T时刻的部分部分观察序列为Oi +1, Oi+2, ... , OT, 记作:
 
隐马尔可夫模型

可以用递归的方式求得后向概率

隐马尔可夫模型

及观测概率

隐马尔可夫模型

(1)初始化后向概率:

隐马尔可夫模型

隐马尔可夫模型

(2)递推:

 隐马尔可夫模型

其中第一项则是转移概率,第二天下雨转到第三天下雨的概率为0.7;第二项则是观测概率,第三天下雨的状况下,在家收拾的概率为0.5;第三项就是我们定义的向后变量

同理,可得

隐马尔可夫模型

(3)终止:

隐马尔可夫模型

三种算法的答案是一致的