本文直接举实例说明ForwardAlgorithm (前向算法)
由马尔科夫模型MM可知:对于一个系统,由一个状态转至另一个状态的转换过程中,存在着转移概率,并且这种转移概率可以依据其紧接的前一种状态推算出来,与该系统的原始状态和此次转移前的马尔可夫过程无关。
隐马尔可夫模型(HiddenMarkov models,HMM)是马尔可夫链的一种,它的状态不能直接观察到,但能通过观测向量序列观察到,每个观测向量都是通过某些概率密度分布表现为各种状态,每一个观测向量是由一个具有相应概率密度分布的状态序列产生。
假设连续观察3天的海藻湿度为(Dry,Damp, Soggy),求出该观察序列的概率。天气只有三类(Sunny,Cloudy, Rainy),而且海藻湿度和天气有一定的关系。
已知:
1. 隐藏的状态:Sunny, Cloudy, Rainy;海藻湿度有四类{Dry,Dryish, Damp, Soggy }
2. 观察状态序列:{ Dry, Damp, Soggy };
3. 初始状态序列:Sunny(0.63), Cloudy(0.17),Rainy(0.20);
4. 状态转移矩阵:
|
Sunny |
Cloudy |
Rainy |
Sunny |
0.5 |
0.375 |
0.125 |
Cloudy |
0.25 |
0.125 |
0.625 |
Rainy |
0.25 |
0.375 |
0.375 |
Cloudy(昨天)->Sunny(今天)的概率是0.25;
Sunny(昨天)->Rainy(今天)的概率是0.125.
5. 混淆矩阵(海藻湿度与天气的相关性):
|
Dry |
Dryish |
Damp |
Soggy |
Sunny |
0.6 |
0.2 |
0.15 |
0.05 |
Cloudy |
0.25 |
0.25 |
0.25 |
0.25 |
Rainy |
0.05 |
0.10 |
0.35 |
0.50 |
观察到海藻湿度Dry,则当天Sunny的概率是0.6;Cloudy的概率是0.25;而当天Rainy的概率是0.05.
How to calculate the probability of this observation list?
即统计P(observation|Sunny, Sunny, Sunny)+P(observation| Sunny, Sunny, Cloudy)+ P(observation| Sunny,Sunny, Rainy)+ P(observation| Sunny, Cloudy, Sunny) + P(observation| Sunny, Cloudy,Cloudy) + P(observation| Sunny, Cloudy, Rainy) + …
总共的可能性有3^3种。
实际由于马尔科夫模型,我们得知其实第二天的状况只取决于第一天,第三天的天气已经与第一天的天气没有关系了。
我们可以先求P(Day1-Sunny),P(Day1-Cloudy), P(Day1-Rainy),Day1的海藻湿度是Dry.
P(Day1-Sunny) = 0.63*0.6;
P(Day1-Cloudy)=0.17*0.25;
P(Day1-Rain)=0.20*0.05;
继续求P(Day2-Sunny), P(Day2-Cloudy),P(Day2-Rainy), Day2的海藻湿度是Damp.
P(Day2-Suny)= (P(Day1-Sunny)*0.5 + P(Day1-Cloudy)*0.25 +P(Day1-Rainy)*0.25)* 0.15
P(Day2-Cloudy) = (P(Day1-Sunny)*0.375+ P(Day1-Cloudy)*0.125 + P(Day1-Rainy)*0.625) * 0.25
P(Day2-Rainy) =(P(Day1-Sunny)*0.125+ P(Day1-Cloudy)*0.625 + P(Day1-Rainy)*0.375)* 0.35
同理继续求第三日的各天气概率,Day3的海藻湿度是Soggy.
P(Day3-Suny)= (P(Day2-Sunny)*0.5 + P(Day1-Cloudy)*0.25 +P(Day1-Rainy)*0.25)* 0.05
P(Day3-Cloudy) = (P(Day2-Sunny)*0.375+ P(Day1-Cloudy)*0.125 + P(Day1-Rainy)*0.625) * 0.25
P(Day3-Rainy) =(P(Day2-Sunny)*0.125+ P(Day1-Cloudy)*0.625 + P(Day1-Rainy)*0.375)* 0.50
推出:
P(observation list) =P(Day3-Sunny)+P(Day3-Cloudy)+P(Day3-Rainy) = 0.030319
参考:
http://luyifanlife.blog.163.com/blog/static/20024105720126272311612/