舉例說明什麼是隱馬爾科夫模型(HMM)

2021-06-06 11:44:19 字數 1371 閱讀 4849

維基百科對隱馬爾可夫模型的定義:

隱馬爾可夫模型(hidden markov model,hmm)是統計模型,它用來描述乙個含有隱含未知引數的馬爾可夫過程。其難點是從可觀察的引數中確定該過程的隱含引數。然後利用這些引數來作進一步的分析,例如模式識別。

在正常的馬爾可夫模型中,狀態對於觀察者來說是直接可見的。這樣狀態的轉換概率便是全部的引數。 而在隱馬爾可夫模型中,狀態並不是直接可見的,但受狀態影響的某些變數則是可見的。每乙個狀態在可能輸出的符號上都有一概率分布。 因此輸出符號的序列能夠透露出狀態序列的一些資訊。

該例子出自維基百科的詞條隱馬爾可夫模型,wiki上乙個比較好的hmm例子對其進一步補充說明。

alice認為天氣的執行就像乙個馬爾可夫鏈。其有兩個狀態 「雨」和」晴」,但是無法直接觀察它們,也就是說,它們對於alice是隱藏的。每天,bob有一定的概率進行下列活動:「散步」,「購物」, 或 「清理」。 因為bob會告訴alice他的活動,所以這些活動就是alice的觀察資料。這整個系統就是乙個隱馬爾可夫模型hmm

alice知道這個地區的總的天氣趨勢,並且平時知道bob會做的事情。也就是說這個隱馬爾可夫模型的引數是已知的。可以用程式語言(python) 寫下來:

// 狀態數目,兩個狀態:雨或晴

states = (『rainy』, 『sunny』)

// 每個狀態下可能的觀察值

observations = (『walk』, 』shop』, 『clean』)            

//初始狀態空間的概率分布

start_probability =

// 與時間無關的狀態轉移概率矩陣

transition_probability = ,

』sunny』 : ,

}//給定狀態下,觀察值概率分布,發射概率

emission_probability = ,

』sunny』 : ,

}

在這些**中,

三大問題分別是:

已知hmm模型λ及觀察序列o,如何計算p(o|λ)

給定觀察序列o=o1,o2,…ot以及模型λ,如何選擇乙個對應的狀態序列s = q1,q2,…qt,使得s能夠最為合理的解釋觀察序列o

如何調整模型引數,使得p(o|λ)最大。這個問題事實上就是給出很多個觀察序列值,來訓練以上幾個引數的問題

上述例子與兩大大問題的對應:alice和bob通了三天**後發現第一天bob去散步了,第二天他去購物了,第三天他清理房間了。alice現在有兩個問題:

最能解釋這個觀察序列的狀態序列(晴/雨)又是什麼?

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

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

隱馬爾科夫模型

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

隱馬爾科夫模型

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