HMM隱馬爾科夫模型

2021-08-25 13:59:12 字數 1972 閱讀 7034

問題:講講hmm隱馬爾科夫模型

1、隱馬爾科夫模型是關於時序的概率模型,是由乙個隱藏的馬爾科夫鏈隨機生成不可觀測的隨機狀態序列,並由各個狀態生成乙個觀測而產生觀測隨機序列的過程。        --《統計學習方法》cha10

概念解釋:

馬爾可夫鏈:一階馬爾可夫過程,即未來狀態僅與當前狀態有關,與過去無關。

馬爾可夫過程:狀態間的轉移僅依賴於前n個狀態的過程。

狀態:隨機過程在某個時刻的情況。

2、數學表達

hmm由核心三要素確定:λ=(a,b,π)

令q:隱藏狀態集合,大小n; v:觀測狀態集合,大小m;

π:初始狀態概率向量:在初始狀態各個狀態出現的概率,和為1。

a:狀態轉移概率矩陣,

b:觀測概率矩陣,又稱發射概率,

當乙個系統可以用hmm描述時,就可以用hmm思想來解決三類基本問題:

1、給定乙個hmm,可以求乙個觀測序列的概率;

2、給定hmm和觀測序列,生成最有可能產生該觀測序列的隱藏狀態序列;

3、hmm模型的學習,分為兩種情況。第一種,已知觀測序列和狀態序列,通過mle估計模型引數;第二種,僅已知觀測序列,利用em演算法思想來學習。

1、暴力解法(窮舉)

t個時刻,n個狀態,則有n^t種路徑,分別求出概率然後相加。時間複雜度o(tn^t)階(疑問,前面的係數t哪來的?乘以觀測概率產生的?),當t、n較大時,難以使用。

2、前向演算法

定義前向概率:已知hmm模型λ,在t時刻觀察到從初始到當前的觀測序列,且當前t時刻的狀態為i的概率。記作,

前向演算法:

很明顯的動態規劃思想,到達最後乙個時刻時停止,將最後乙個時刻各狀態的前向概率相加得到結果。在每一次的狀態轉移時都進行了n^2次計算(每乙個狀態求前向概率都需要進行n次計算,且有n個狀態),序列長度t,所以時間複雜度應是o(tn^2)階。

3、後向演算法

定義後向概率:已知hmm模型λ和時刻t的狀態i,得到之後的觀察序列ot+1至ot的概率。記作,

後向演算法:

這個問題也稱為**問題和解碼問題(decoding),常用維特比(viterbi)演算法來解決。維特比演算法實際上是用動態規劃來求概率最大路徑。

對這個演算法我是這麼理解的,根據動態規劃的原理,如果最優路徑在時刻t通過狀態點it,那麼it到終點it的路徑必然最優且唯一,同時應該保證前面時刻到it的路徑也最優。這不是廢話麼-_-||,什麼意思呢,例如在i=2時,有三個隱藏狀態,而三個狀態都是有可能在最優路徑裡的,這樣的話就需要求三種狀態下i1到i2的最優路徑,每個i2中的狀態都可能由i1中三個狀態轉移得到,所以求出三個概率並取最大的那個就是對於該狀態t1-t2的最優區域性路徑,記錄下來,然後以同樣的方式往後繼續,直到最後時刻,此時仍有對應三個狀態的三個概率,比較取最大的就得到最優路徑了。語言描述太糾結,附上《統計學習方法》裡的例子。

這裡解釋一下,上面的演算法流程和例子裡的ψ,都是用來記錄對於當前某個狀態而言的前一時刻最優狀態,而最後經常說的用回溯法得到最優路徑無非就是把這些記錄下來的點取出來。

鑑於我花了一下午時間來糾結這一塊,順帶糾結了之前就沒看透的em演算法...( _ _)ノ| ,就把這一部分單獨放在了一篇部落格裡hmm隱馬爾科夫模型二--學習演算法。 

隱馬爾科夫模型HMM

我們通常都習慣尋找乙個事物在一段時間裡的變化規律。在很多領域我們都希望找到這個規律,比如計算機中的指令順序,句子中的詞順序和語音中的詞順序等等。乙個最適用的例子就是天氣的 首先,本文會介紹聲稱概率模式的系統,用來 天氣的變化 然後,我們會分析這樣乙個系統,我們希望 的狀態是隱藏在表象之後的,並不是我...

隱馬爾科夫 HMM 模型

隱馬爾科夫 hidden markov model 模型是一類基於概率統計的模型,是一種結構最簡單的動態貝葉斯網,是一種重要的有向圖模型。自上世紀80年代發展起來,在時序資料建模,例如 語音識別 文字識別 自然語言處理等領域廣泛應用。隱馬爾科夫模型涉及的變數 引數眾多,應用也很廣泛,以至於很多人不明...

隱馬爾科夫模型HMM

使用hmm模型時我們的問題一般有這兩個特徵 我們的問題是基於序列的,比如時間序列,或者狀態序列。我們的問題中有兩類資料,一類序列資料是可以觀測到的,即觀測序列 而另一類資料是不能觀察到的,即隱藏狀態序列,簡稱狀態序列。有了這兩個特徵,那麼這個問題一般可以用hmm模型來嘗試解決。這樣的問題在實際生活中...