前向算法(Forward Algorithm)

本文直接举实例说明ForwardAlgorithm (前向算法)

由马尔科夫模型MM可知:对于一个系统,由一个状态转至另一个状态的转换过程中,存在着转移概率,并且这种转移概率可以依据其紧接的前一种状态推算出来,与该系统的原始状态和此次转移前的马尔可夫过程无关。

隐马尔可夫模型(HiddenMarkov modelsHMM)是马尔可夫链的一种,它的状态不能直接观察到,但能通过观测向量序列观察到,每个观测向量都是通过某些概率密度分布表现为各种状态,每一个观测向量是由一个具有相应概率密度分布的状态序列产生。

 

假设连续观察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/

 

你可能感兴趣的:(零散碎片,算法学习,algorithm,算法,list)