Machine Learning Series No.9 -- HMM(Hidden Markov Model)

隱馬爾科夫模型(Hidden Markov Model, HMM)

1.生成模型,對p(x,y) 進行建模

2.符號說明

SYMBOLS meanings
Q{q1,q2,,qn} 可能的狀態集合
V{v1,v2,,vn} 可能的觀測集合
I{i1,i2,,in} 真實的狀態集合
O{o1,o2,,on} 真實的觀測集合
A=[aij]NN 狀態轉移矩陣
B=[bj(k)]NM 觀測概率矩陣
πi=p(i1=qi) 初始狀態概率向量

其中aij=p(it+1=qj|it=qi),bj(k)=p(ot=vk|it=qj) .

3.模型假設:

①齊次馬爾科夫假設:任意時刻,當前狀態只與上一個狀態有關。

t,p(it|it1,ot1,,i1,o1)=p(it|it1)

②觀測獨立性假設:任意時刻,觀測僅依賴於當前狀態。
t,p(ot|it,ot,it1,ot1,,i1,o1)=p(ot|it)

4.問題

**①估計問題(Evaluation)**

    給定模型$\lambda = (A,B,\pi)$和觀測序列$O$,計算$O$出現的概率$p(O|\lambda)$.

**解法:**
  • 直接計算(注意這裏λ 是一個固定參數,而不是一個隨機變量,正常應該寫成分號?)

p(O|λ)=Ip(O,I|λ)=Ip(O|I,λ)p(I|λ)
    但是由於$I$的組合數目太多,這個計算量非常大,其複雜度爲$O(N^T)$。

p(O|I,λ)=bi1(o1)bi2(o2)bit(ot)

p(I|λ)=πi1ai1,i2ai2,i3ait1,it

p(O,I|λ)=i1,i2,,itπi1bi1(o1)ai1,i2bi2(o2)ai2,i3bit1(ot1)ait1,itbit(ot)
  • 前向算法

    定義αt(i)=p(o1,o2,,ot,it=qi|λ) ,即在t時刻觀測序列爲o1,o2,,ot ,狀態爲qi 的概率,稱其爲前向概率。

    則有:

    αt+1(i)=j=1Nαt(j)ajibi(ot+1)

    α1(i)=πibi(o1)

    最終:

    p(O|λ)=i=1NαT(i)

    最終算法轉變爲動態規劃,算法複雜度爲O(TN2) .
  • 後向算法

    定義βt(i)=p(ot+1,ot+2,,oT,it=qi|λ) ,即在t時刻,其後的觀測序列爲ot+1,ot+2,,oT ,狀態爲qi 的概率,稱其爲後向概率。

    則有:

    βt(i)=j=1Naijbj(ot+1)βt+1(j)

    βT(i)=1

    最終:

    p(O|λ)=i=1Nπibi(o1)β1(i)

    最終算法轉變爲動態規劃,算法複雜度爲O(TN2) .
    **② 學習問題(Learning)**
    
    學習模型參數,分爲兩種情況:
    

    {A.知道觀測序列和對應的狀態序列B.僅知道觀測序列

    解法:
  • Case A.

    極大似然估計

    aij^=AijjAij

    bj(k)^=BjkkBjk

    Aij 是t時刻處於狀態i ,在t+1時刻轉移到狀態j 的頻數。

    Bjk 爲狀態j觀測到k的頻數。

  • Case B.

    EM算法估計,狀態序列爲隱變量。

    ③預測算法(解碼問題,Decoding)

    給定模型$\lambda$和觀測預測$O$,求狀態序列。
    
    **解法:**
    
  • 近似算法

    在t時刻處於狀態i的概率是:

    γt(i)=p(it=qi|O,λ)=p(it=qi,O|λ)p(O|λ)=αt(i)βt(i)jαt(j)βt(j)

    it=argmax1iN[γt(i)]

    最終得到的狀態序列爲I=(i1,i2,,iT) .

    缺點:不能保證預測的狀態序列整體是最有可能的狀態序列,因爲預測的狀態序列可能有實際不發生的部分。

  • 維特比算法(動態規劃算法的一種)

    即記錄到當前爲止,觀測序列最有可能的狀態序列,然後回溯。稱爲最大概率路徑。

    記錄的表結構爲TN 。T爲觀測序列長度,N爲狀態可能數目。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章