1. 程式人生 > >隱馬爾可夫模型學習筆記(一):前後向演算法介紹與推導

隱馬爾可夫模型學習筆記(一):前後向演算法介紹與推導

學習隱馬爾可夫模型(HMM),主要就是學習三個問題:概率計算問題,學習問題和預測問題。概率計算問題主要是講前向演算法和後向演算法,這兩個演算法可以說是隱馬爾可夫的重中之重,接下來會依次介紹以下內容。

  1. 隱馬爾可夫模型介紹
  2. 模型的假設
  3. 直接計演算法,前向演算法,後向演算法的介紹與詳細推導
  4. 根據前後向演算法推出一些結論

補充:推導公式很依賴模型的假設與貝葉斯網路,所以在這之前最好了解貝葉斯網路,這兩天會補充貝葉斯網路。

學習資料:《統計學習方法》,鄒博老師的HMM的ppt,其他。

隱馬爾可夫模型

隱馬爾可夫模型是關於時序的概率模型。由一個隱藏的馬爾可夫鏈隨機生成的不可觀測的狀態隨機序列

(理解為隱變數),再由各個狀態生成一個觀測而產生觀測隨機序列(理解為顯變數)的過程。如下圖就是一個隱馬爾可夫鏈,狀態序列 { Z 1 , Z 2
, . . . , Z n + 1
} \{Z_1,Z_2,...,Z_{n+1}\}
,再由各個狀態序列生成觀測序列 { X 1 , X 2 , . . . , X n + 1 } \{X_1,X_2,...,X_{n+1}\} ,而每個節點(位置)對應一個時刻,從前往後就是時刻 t 1 , t 2 , . . . , t n + 1 t_1,t_2,...,t_{n+1}

在這裡插入圖片描述

隱馬爾可夫模型由初始狀態概率向量 π \pi 、狀態轉移矩陣 A A 和觀測矩陣 B B 確定,稱為隱馬爾可夫三要素,表示為 λ = ( π , A , B ) \lambda=(\pi,A,B) ,關於具體的引數介紹如下:

記: Q = { q 1 , q 2 , . . . , q N } Q=\{q_1,q_2,...,q_N\} 表示所有可能的狀態集合, V = { v 1 , v 2 , . . . , v M } V=\{v_1,v_2,...,v_M\} 表示所有可能的觀測集合。

I = { i 1 , i 2 , . . . , i T } I=\{i_1,i_2,...,i_T\} 表示狀態序列, O = { o 1 , o 2 , . . . , o N } O=\{o_1,o_2,...,o_N\} 為對應的觀測序列。

狀態轉移矩陣 A A :
a i j = P ( i t + 1 = q j i t = q i ) a_{ij}=P(i_{t+1}=q_j|i_{t}=q_i) 表示 t t 時刻狀態為 q i q_i ,下一時刻(即 t + 1 t+1 )狀態為 q j q_j 的概率,而狀態轉移矩陣 A = ( a i j ) N × N A=(a_{ij})_{N×N} ,注意這裡是 N × N N×N 的方陣。

觀測矩陣 B B :
b j ( k ) = P ( o t = v k i t = q j ) b_{j}(k)=P(o_t=v_k|i_t=q_j) 表示 t t 時刻狀態為 q j q_j 的條件下,觀測值為 v k v_k 的概率,而觀測矩陣 B = ( b j ( k ) ) N × M B=(b_{j}(k))_{N×M}

初始狀態概率向量 π \pi
π i = P ( i 1 = q i ) \pi_i=P(i_1=q_i) 表示初始時刻(即 t = 1 t=1 )時狀態為 q i q_i 的概率。

π , A \pi,A 決定狀態序列, B B 決定觀測序列。

由以上定義知,隱馬爾可夫做了如下兩個假設(兩個基本性質):

  1. 齊次馬爾可夫假設:任意時刻 t t 的狀態只與前一時刻 t 1 t-1