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

2022-05-07 01:54:07 字數 2204 閱讀 1194

隨機過程:是隨時間而隨機變化的過程。又稱為隨機函式。

馬爾科夫模型(vmm):它描述了一類重要的隨機過程。

乙個系統有有限個狀態集s = ,隨時間推移,該系統將同某一狀態轉移到另一狀態。q=(s1,s2,,,sn)為一隨機變數序列,隨機變數取值為狀態集s中的乙個狀態,設時間t時狀態為qt。

對系統的描述通常是給出當前時刻t的狀態與其前面所有狀態的關係:當前時刻 t 處於狀態sj的概率取決於其在時間1,2,···,t-1時刻的狀態,該概率為

p(qt = sj | qt-1 = si,qt-2 = sk ,···).

p(qt = sj | qt-1 = si,qt-2 = sk ,···)= p(qt = sj | qt-1 = si),該系統構成乙個離散的一階馬爾科夫鏈。

進一步,如果只考慮上式獨立於時間t的隨機過程(即與時間t的具體大小無關,亦即下面說到的狀態轉移矩陣不隨時間變化):

p(qt = sj | qt-1 = si) = aij,1<= i,j <=n,該隨機模型稱為馬爾可夫模型。其中狀態轉移概率必須滿足:aij>= 0,ai1 + ai2 +...+ajn = 1 。

有n個狀態的一階馬爾科夫過程有n2次狀態轉移,它們可以表示成乙個狀態轉移矩陣。

馬爾科夫模型可以視為乙個隨機的有限狀態機。乙個馬爾科夫鏈的狀態序列的概率可以通過狀態轉移矩陣上的狀態轉移概率計算。

隱馬爾科夫模型(hmm):我們不知道模型所經過的狀態序列(模型的狀態轉換過程是不可觀察的,是隱蔽的),只知道狀態的隨機函式。

例:假定暗室中有n的口袋,每個口袋有m中不同的顏色的球。操作人員按照某一概率分布隨機取乙個初始口袋,從中根據不同顏色球的概率分布,隨機的取出乙個球,並向室外的人報告球的顏色。

然後根據口袋的概率分布選擇另乙個口袋,根據不同顏色球的概率分布從中隨機的取出另乙個球並報告顏色。重複這個過程。

該過程中,每個口袋對應hmm中的狀態,從乙個口袋轉向另乙個口袋對應的是狀態轉移,從口袋中選取乙個球並報告顏色對應於從乙個狀態中輸出觀察符號。

乙個hmm由以下五個部分組成:

1)模型中狀態的集合s,其數目n;

2)每個狀態可能輸出不同的符號集合k,其數目m;

3)狀態轉移概率矩陣a=。

其中, aij =

p(qt = sj | qt-1 = si) ,1<= i,j <=n,

aij>= 0,ai1 + ai2 +...+ajn = 1 。

4)從狀態sj觀察到符號vk的概率分布矩陣b =。(觀察符號的概率又稱為發射概率)

其中,bj(k) = p(ot = vk | qt = sj), 1<= j <=n 。(o = o1o2···ot,表示觀察序列)

5)初始狀態概率分布π =

一般乙個hmm記為乙個五元組μ =  ,有時簡單記為三元組μ = (a,b,π)。

一旦乙個系統可以作為hmm被描述,就可以用來解決三個基本問題。其中前兩個是模式識別的問題:給定hmm求乙個觀察序列的概率(評估);搜尋最有可能生成乙個觀察序列的隱藏狀態序列(解碼)。第三個問題是給定觀察序列生成乙個hmm(學習)。

hmm三個基本問題:

1)估計問題:給定觀察序列o = o1o2···ot和模型μ,如何快速的計算出給定模型μ情況下,觀察序列o的概率,即p(o|μ)?

2)序列問題:給定觀察序列o = o1o2···ot和模型μ,如何快速選擇在一定意義下「最優「的狀態序列q = q1q2···qt,使得該狀態序列「最好的解釋」觀察序列?

3)訓練問題和引數估計問題:給定觀察序列o = o1o2···ot,如何根據最大似然估計求模型的引數值?即如何調節模型μ的引數是的p(o|μ)最大?

總結(summary)

由乙個向量和兩個矩陣(pi,a,b)描述的隱馬爾科夫模型對於實際系統有著巨大的價值,雖然經常只是一種近似,但它們卻是經得起分析的。隱馬爾科夫模型通常解決的問題包括:

1. 對於乙個觀察序列匹配最可能的系統——評估,使用前向演算法(forward algorithm)解決;

2. 對於已生成的乙個觀察序列,確定最可能的隱藏狀態序列——解碼,使用viterbi 演算法(viterbi algorithm)解決;

3. 對於已生成的觀察序列,決定最可能的模型引數——學習,使用前向-後向演算法(forward-backward algorithm)解決。

隱馬爾科夫模型

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

隱馬爾科夫模型

一 介紹 introduction 我們通常都習慣尋找乙個事物在一段時間裡的變化模式 規律 這些模式發生在很多領域,比如計算機中的指令序列,句子中的詞語順序和口語單詞的因素修咧等等,事實上任何領域中的一系列事件都有可能產生有用的模式。考慮乙個簡單的例子,有人試圖通過一片海藻推斷天氣 民間傳說告訴我們...

隱馬爾科夫模型

一 問題 狀態隨時間變化,需要跟蹤 二 基本思想 在每個時間點,根據新的證據變數來更新世界狀態 三 時間上的概率推理 建立 轉移模型 感測器模型 先驗概率分別 1.轉移模型 世界如何演變,在描述了給定過去的時間的世界狀態下,當前時間世界的狀態變數 2.感測器模型,觀察模型 描述了給定當前世界狀態條件...