機器學習(十五)隱馬爾科夫模型 未完待續

2021-07-23 14:58:09 字數 2673 閱讀 2969

一、hmm相關概念

二、前向傳導

[python]view plain

copy

#coding=utf-8

import

numpy as np  

#前向傳導演算法

defforward(a,b,pi,o):  

n=o.shape[0

]  m=a.shape[0

]  dis2src=np.zeros((n,m),dtype=np.float32)#dis2src(i,j)用於保留第i層頂點j出現的概率

dis2src[0

,:]=pi*(b[:,o[

0]])

#初始化第一層各個頂點與觀測t=0的聯合概率

fort 

inrange(n-

1):  

t=t+1

fori 

inrange(m):  

predis=dis2src[t-1

,:]  

#第t時刻的所有頂點,到t+1時刻頂點i的距離總和,然後再計算i頂點到觀測變數o[t]的距離

dis2src[t,i]=np.sum(predis*a[:,i])*b[i,o[t]]  

print

sum(dis2src[t])  

a=np.asarray([0.5

,0.2

,0.3

,0.3

,0.5

,0.2

,0.2

,0.3

,0.5

]).reshape(3,

3)  

b=np.asarray([0.5

,0.5

,0.4

,0.6

,0.7

,0.3

]).reshape(3,

2)  

pi=np.asarray([0.2

,0.4

,0.4

])  

o=np.asarray([0,1

,0])  

forward(a,b,pi,o)  

三、維位元演算法實踐

[python]view plain

copy

#coding=utf-8

import

numpy as np  

#a為狀態轉移矩陣,b為觀測矩陣,pi為初始狀態概率,o為觀測序列

#函式的目標就是返回0所對應的,狀態序列

defviterbi(a,b,pi,o):  

n=o.shape[0

]  m=a.shape[0

]  dis2src=np.zeros((n,m),dtype=np.float32)#dis2src(i,j)用於保留第i層頂點j,到原點的最大距離

path=np.zeros((n,m),dtype=np.int)  

t=0;  

dis2src[t,:]=pi*(b[:,o[t]])#初始化第一層頂點到原點的距離

fort 

inrange(n-

1):  

t=t+1

fori 

inrange(m):  

predis=dis2src[t-1

,:]  

#第t時刻的所有頂點,到t+1時刻頂點i的距離

node_i2src=predis*a[:,i]  

dis2src[t,i]=np.max(node_i2src)*b[i,o[t]]  

path[t,i]=np.argmax(node_i2src);#計算頂點i對應到上一時刻的頂點的最大路徑

bestpaht=-1

*np.ones(n,dtype=np.int)  

bestpaht[n-1

]=(np.argmax(dis2src[n-

1,:]))  

print

np.log(np.max(dis2src[n-

1,:]))  

#回溯for

t in

range(n-

1)[::-

1]:  

ti=path[t+1

,bestpaht[t+

1]]  

bestpaht[t]=ti  

print

(bestpaht+

1)  

a=np.asarray([0.333

,0.333

,0.333

,0.333

,0.333

,0.333

,0.333

,0.333

,0.333

]).reshape(3,

3)  

b=np.asarray([0.5

,0.5

,0.75

,0.25

,0.25

,0.75

]).reshape(3,

2)  

pi=np.asarray([0.333

,0.333

,0.333

])  

o=np.asarray([0,0

,0,0

,1,0

,1,1

,1,1

])  

viterbi(a,b,pi,o)  

馬爾科夫模型與隱馬爾科夫模型

隨機過程 是隨時間而隨機變化的過程。又稱為隨機函式。馬爾科夫模型 vmm 它描述了一類重要的隨機過程。乙個系統有有限個狀態集s 隨時間推移,該系統將同某一狀態轉移到另一狀態。q s1,s2,sn 為一隨機變數序列,隨機變數取值為狀態集s中的乙個狀態,設時間t時狀態為qt。對系統的描述通常是給出當前時...

馬爾科夫模型(未完)

馬爾科夫模型 不考慮動作 考慮動作狀態完全可見 馬爾科夫鏈 mc 馬爾可夫決策過程 mdp 狀態不完全可見 隱馬爾可夫模型 hmm 不完全可觀察馬爾可夫決策過程 pomdp 馬爾科夫鏈 狀態空間中經過從乙個狀態到另乙個狀態的轉換的隨機過程。該過程要求具備 無記憶 的性質 下一狀態的概率分布只能由當前...

隱馬爾科夫模型

隱馬爾科夫 hiddenmarkov model 簡稱為hmm,hmm資料相當豐富,推薦參見 hmm學習最佳範例與崔曉源的部落格 一文,本文只對hmm進行簡要介紹,然後說明開源ghmm實現在linux環境的搭建,hmm的開源實現有眾多不同語言的實現。馬爾科夫模型 一階馬爾科夫模型假設為 1 t l時...