本文主要針對隱馬爾科夫模型的第乙個基本問題展開討論。問題是:給定乙個模型
λ ,我們希望估計任意給定觀測變數序列o=
o1o2
....
ot的概率。
分析:我們是要估計p(
o|λ)
,我們加入狀態序列q,那麼就可以得到 p(
o|λ)
=∑qp
(o,q
|λ)(1)
同時我們知道p(
o,q|
λ)=p
(o|q
,λ)∗
p(q|
λ),顯然等式的右邊是容易知道的,但是問題是對於所有的q求和,這是相當麻煩的。因此,我們使用正反向過程來求解。正向
過程我們定義如下的正向變數αt
(i) , αt
(i)=
p(o1
,o2,
...,
ot,q
t=si
|λ)(2)
同時,我們可以通過迭代的方式得到求解αt
(i) 的方法。 αt
(i)=
∑jαt
−1(j
)aji
bj(o
t)(3)
那麼類似於公式一,我們有 p(
o|λ)
=∑si
p(o,
qt=s
i|λ)
=∑iα
t(i)
反向過程
我們也定義反向過程βt
(i) 如下: βt
(i)=
p(ot
,...
,ot|
qt=s
i,λ)
它的解釋就是在給定第t時刻的狀態為si
,那麼從第t時刻到第t時刻的觀測序列概率。同樣我們也可以給出bt
(i) 的迭代求法,如下 βt
(i)=
∑jai
jbj(
ot)β
t+1(
j)(4)
類似於式(1),我們有 p(
o|λ)
=∑si
p(o1
,...
ot|q
1=si
,λ)p
(q1=
si|λ
)=∑i
β1(i
)πi
正反過程
的時間復
雜度分析
觀察式3和式4,都相當於兩層的for迴圈,每一層都是n,故為o(
n2) ,但是這是有觀測值o是有t個元素,故總體時間複雜度為o(
tn2)
待續。。。
馬爾科夫模型與隱馬爾科夫模型
隨機過程 是隨時間而隨機變化的過程。又稱為隨機函式。馬爾科夫模型 vmm 它描述了一類重要的隨機過程。乙個系統有有限個狀態集s 隨時間推移,該系統將同某一狀態轉移到另一狀態。q s1,s2,sn 為一隨機變數序列,隨機變數取值為狀態集s中的乙個狀態,設時間t時狀態為qt。對系統的描述通常是給出當前時...
隱馬爾科夫模型
隱馬爾科夫 hiddenmarkov model 簡稱為hmm,hmm資料相當豐富,推薦參見 hmm學習最佳範例與崔曉源的部落格 一文,本文只對hmm進行簡要介紹,然後說明開源ghmm實現在linux環境的搭建,hmm的開源實現有眾多不同語言的實現。馬爾科夫模型 一階馬爾科夫模型假設為 1 t l時...
隱馬爾科夫模型
一 介紹 introduction 我們通常都習慣尋找乙個事物在一段時間裡的變化模式 規律 這些模式發生在很多領域,比如計算機中的指令序列,句子中的詞語順序和口語單詞的因素修咧等等,事實上任何領域中的一系列事件都有可能產生有用的模式。考慮乙個簡單的例子,有人試圖通過一片海藻推斷天氣 民間傳說告訴我們...