自然语言处理2-隐马尔科夫模型(HMM)-forward algorithm(前向算法)和Viterbi(维特比算法)

1.隐马尔科夫模型(HMM)

实例:

隐藏状态:Sunny,Cloudy,Rainy

观察状态:Dry,Dryish,Damp,Soggy

初始向量


状态转移矩阵('A' )

weather
yesterday  

weather today

 

Sunny

Cloudy

Rainy

 

Sunny

0.500

0.375

0.125

 

Cloudy

0.250

0.125

0.625

 

Rainy

0.250

0.375

0.375

 

注:每行之和都为1

混淆矩阵('B' )

hidden
states

observed states

 

Dry

Dryish

Damp

Soggy

 

Sunny

0.60

0.20

0.15

0.05

 

Cloudy

0.25

0.25

0.25

0.25

 

Rainy

0.05

0.10

0.35

0.50

 

注:每行之和都为1

1.1.前向算法

定义

用forward  algorithm计算观察出现的概率


t=1时


t = 2, ..., T时


最后


注:at+1(j)表示在时间t+1时,状态j的部分概率;bjk混淆矩阵对应的概率;aij转移矩阵对应的概率,表示状态j对应的初始概率。

 

 

求Pr(Dry,Damp,Soggy|HMM)

t=1

a1(sunny) = 0.63 * 0.6 = 0.37800002

a1(cloudy)=0.17 * 0.25= 0.0425

a1(rainy)=0.2 * 0.05= 0.010000001

t=2

a2(sunny)=(0.37800002*0.5+ 0.0425*0.250 + 0.010000001*0.250) * 0.15

a2(cloudy)=(0.37800002*0.375+ 0.0425*0.125 + 0.010000001*0.375)*0.25

a2(rainy)=(0.37800002*0.125 + 0.0425*0.625 + 0.010000001*0.375) * 0.35

t=3

a3(sunny)=(a2(sunny)*0.5+ a2(cloudy)*0.250 + a2(rainy)*0.250) * 0.05

a3(cloudy)=(a2(sunny)*0.375+ a2(cloudy)*0.125 + a2(rainy)*0.375)*0.25

a3(rainy)=(a2(sunny)*0.125 + a2(cloudy)*0.625 + a2(rainy)*0.375)* 0.50

Pr(Dry,Damp,Soggy|HMM)= a3(sunny) + a3(cloudy)+ a3(rainy)

1.2.Viterbi算法

计算Pr(观察序列| 隐藏状态组合),即计算

Pr(dry,damp,soggy|sunny,sunny,sunny),

Pr(dry,damp,soggy|sunny,sunny,cloudy),

Pr(dry,damp,soggy|sunny,sunny,rainy),

 . . . .

Pr(dry,damp,soggy| rainy,rainy,rainy)中的最大值,从而获得使dry,damp,soggy出现的最可能序列。


t=1时


当t= 2, ..., T;并且i = 1, ... , n时


找出T(i)中的最大值


当t= T - 1, ..., 1时,通过回溯的方法找出最大概率状态序列



t=1时


t=2时


 

t=3时


 

因此可得使dry,damp,soggy出现的最可能序列是sunny,cloudy,rainy。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值