維基百科對隱馬爾可夫模型的定義:
隱馬爾可夫模型(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 我們通常都習慣尋找乙個事物在一段時間裡的變化模式 規律 這些模式發生在很多領域,比如計算機中的指令序列,句子中的詞語順序和口語單詞的因素修咧等等,事實上任何領域中的一系列事件都有可能產生有用的模式。考慮乙個簡單的例子,有人試圖通過一片海藻推斷天氣 民間傳說告訴我們...