6 隱馬爾可夫模型

  • 隱馬爾科夫模型(Hidden Markov Model, HMM)是可用於標註問題的統計學模型
  • 描述由隱藏的馬爾科夫鏈隨機生成觀測序列的過程,屬於生成模型。

隱馬爾可夫模型基本概念

定義

  • 隱馬爾科夫模型是關於時序的概率模型,描述由一個隱藏的馬爾科夫鏈隨機生成不可觀測的狀態隨機序列,再由各個狀態生成一個觀測而產生觀測隨機序列的過程。
    • 隱藏的馬爾科夫鏈隨機生成的狀態的序列,稱爲狀態序列 (state sequence)
    • 每個狀態生成一個觀測,而由此產生的觀測的隨機序列,稱爲觀測序列 (observation sequence)
    • 序列的每個位置又可以看作是一個時刻
  • 隱馬爾科夫模型由 初始概率分佈狀態轉移概率分佈 以及 觀測概率分佈 確定。
  • 形式定義如下:
    • 設 Q 是所有可能的狀態的集合,V 是所有可能的觀測的集合
      Q={q1,q2,,qN},V={v1,v2,,vM}

      其中, N是可能的狀態數, M是可能的觀測數
    • I 是長度爲 T 的狀態序列, O 是對應的觀測序列
      I=(i1,i2,,iT),O=(o1,o2,,oT)
    • A 是狀態轉移概率矩陣
      A=[aij]N×N

      其中,aij=P(it+1=qj|it=qi),i=1,2,,N;j=1,2,,N 是在時刻 t 處於狀態 qi 的條件下在時刻 t+1 轉移到狀態 qj 的概率
    • B 是觀測概率矩陣
      B=[bj(k)]N×M

      其中, bj(k)=P(ot=vk|it=qj),k=1,2,,M;j=1,2,,N 是在時刻 t 處於狀態 qj 條件下生成觀測 vk 的概率
    • π初始狀態概率向量
      π=(πi)
      其中,πi=P(i1=qi),i=1,2,N 是時刻 t=1 處於狀態 qi 的概率
  • 隱馬爾科夫模型由初始狀態概率向量 π 、狀態轉移概率矩陣 A 和觀測概率矩陣 B 決定,這三者成爲隱馬爾科夫模型的三要素。πA 決定狀態序列, B 決定觀測序列。隱馬爾科夫模型 λ 可以用三元符號表示:
    λ=(A,B,π)

    • 狀態轉移概率矩陣 A 與 初始狀態概率向量 π 確定了隱藏的馬爾科夫鏈,生成不可觀測的狀態序列。
    • 觀測概率矩陣 B 確定瞭如何從狀態生成觀測,與狀態序列綜合確定瞭如何產生觀測序列
  • 從定義可知,隱馬爾科夫模型有兩個基本假設
    • 齊次馬爾可夫性假設,即 假設隱藏的馬爾科夫鏈在任意時刻 t 的狀態只依賴於其前一時刻的狀態,與其他時刻的狀態及觀測無關,也與時刻 t 無關:
      P(it|ii1,oi1,,i1,o1),t=1,2,,T
    • 觀測獨立性假設,即 假設任意時刻的觀測只依賴於該時刻的馬爾科夫鏈的狀態,與其他狀態及觀測無關:
      P(ot|ir,or,ir1,or1,,it+1,ot+1,it,it1,ot1,,i1,o1)=P(ot|it)

觀測序列的生成過程

  • 根據隱馬爾可夫模型定義,可以將一個長度爲 T 的觀測序列 O=(o1,o2,,or) 的生成過程描述如下:
    • 輸入: 隱馬爾可夫模型 λ=(A,B,π) , 觀測序列長度 T
    • 輸出:觀測序列 O=(o1,o2,,or)
    • (1) 按照初始狀態分佈 π 產生狀態 i1
    • (2) 令 t=1
    • (3) 按照狀態 it 的觀測概率分佈 bit(k) 生成 ot
    • (4) 按照狀態 it 的狀態轉移概率分佈 {aitit+1} 產生狀態 it+1,it+1=1,2,,N
    • (5) 令 t=t+1 , 如果 t<T ,轉步(3),否則終止

隱馬爾可夫模型的3個基本問題

  • 概率計算問題:給定模型 λ=(A,B,π) 和觀測序列 O=(o1,o2,,oT) ,計算在模型 λ 下觀測序列 O 出現的概率 P(O|λ)
  • 學習問題:已知觀測序列 O=(o1,o2,,oT) , 估計模型 λ=(A,B,π) 參數,使得在該模型下觀測序列概率 P(O|λ) 最大,即用極大似然估計的方法估計參數
  • 預測問題:也成解碼問題,已知模型 λ=(A,B,π) 和觀測序列 O=(o1,o2,,oT) ,求對給定觀測序列條件概率 P(I|O) 最大的狀態序列 I=(i1,i2,,iT) 。即給定觀測序列,求最有可能的對應的狀態序列

概率計算方法

直接計算法

  • 首先,要計算的是:給定模型 λ=(A,B,π) 和觀測序列 O=(o1,o2,,oT) ,計算觀測序列 O 出現的概率 P(O|λ)
  • 最直接的方式是按概率公式直接計算:通過列舉所有可能的長度爲 T 的狀態序列 I=(i1,i2,,iT) ,求各個狀態序列 I 與觀測序列 O=(o1,o2,,oT) 的聯合概率分佈 P(O,I|λ) ,然後對所有可能的狀態序列求和,得到 P(O|λ)
  • 狀態序列 I=(i1,i2,,iT) 的概率是
    P(I|λ)=πi1ai1i2ai2i3aT1T
  • 對固定的狀態序列 I=(i1,i2,,iT) ,觀測序列 O=(o1,o2,,oT) 的概率是 P(O|I,λ) ,
    P(O|I,λ)=bi1(o1)bi2(o2)biT(oT)
  • O 和 T 同時出現的聯合概率爲
    P(O,I|λ)=P(O|I,λ)P(I|λ)=πi1bi1(o1)ai1i2bi2(o2)aiT1iTbiT(oT)
  • 然後對所有可能的狀態序列 I 求和,得到觀測序列 O 的概率 P(O|λ)P(O|λ)=IP(O|I,λ)P(I|λ)
  • 但是這種方法計算量太大,是 O(TNT) 階的,所以我們需要用前向或後向算法

前向計算法

  • 定義前向概率:給定馬爾可夫模型 λ ,定義到時刻 t 部分觀測序列爲 o1,o2,,ot 且狀態爲 qi 的概率爲前向概率,記作
    αt(i)=P(o1,o2,,ot,it=qi|λ)

    可以遞推地求得前向概率 αt(i) 及觀測序列概率 P(O|λ)
  • 算法
    • 輸入:隱馬爾可夫模型 λ , 觀測序列 O
    • 輸出:觀測序列概率 P(O|λ)
    • (1) 初值:
      α1(i)=πibi(o1),i=1,2,,N
    • (2) 遞推:對 t=1,2,,T1
      αt+1(i)=[j=1Nαt(j)aji]bi(ot+1),i=1,2,,N
    • (3) 終止
      P(O|λ)=i=1NαT(i)

後向計算法

  • 定義後向概率:給定隱馬爾可夫模型 λ ,定義到時刻 t 狀態爲 qi 的條件下,從 t+1 到 T 的部分觀測序列爲ot+1,ot+2,,oT 的概率爲後向概率,記作
    βt(i)=P(ot+1,ot+2,,oT|it=qi,λ)

    可以遞推地求得後向概率 βt(i) 及觀測序列概率 P(O|λ)
  • 算法
    • 輸入:隱馬爾可夫模型 λ , 觀測序列 O
    • 輸出:觀測序列概率 P(O|λ)
    • (1)
      βT(i)=1,i=1,2,,N
    • (2) 對 t=T1,T2,,1
      βt(i)=j=1Naijbj(ot+1)βt+1(j),i=1,2,,N
    • (3)
      P(O|λ)=i=1Nπibi(o1)β1(i)

概率與期望的計算


學習算法

監督學習法

Baum-Welch 算法

Baum-Welch 模型參數估計


預測算法

近似算法

維特比算法


Summary

發佈了57 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章