在馬爾可夫模型中,每一個狀態都是可觀察的序列,是狀態關於時間的隨機過程,也成為可視馬爾可夫模型(Visible Markov Model,VMM)。隱馬爾科夫模型(Hidden Markov Model,HMM)中的狀態是不可見的,我們可以看到的是狀態表現出來的觀察值和狀態的概率函數。在隱馬模型中,觀察值是關於狀態的隨機過程,而狀態是關於時間的隨機過程,因此隱馬模型是一個雙重隨機過程。
當考慮潛在事件隨機生成表面事件時,可以用HMM解決。
舉個例子,說明隱馬模型:
有4個暗箱,放在暗處,每個箱子里有3種不用顏色的球(紅、橙、藍),從箱子往外拿球是有一定規律的,現在工作人員從暗處的箱子中取球,去了5次,我們看到額觀察序列是:紅藍藍橙紅。這個過程就是一個隱馬模型。暗處的箱子表示狀態,箱子的個數表示狀態的個數,球的顏色表示狀態的輸出值,球的顏色個數表示狀態輸出觀察狀態的個數,從一個箱子轉換成另一個箱子表示狀態轉換,從暗處箱子中取出的球的觀察顏色表示狀態的輸出序列。
因此可以歸納隱馬模型的5個組成狀態:
(1)模型中的狀態個數N(例子中的箱子個數);
(2)每個狀態的可以輸出的不同觀測值M(例子中的球的顏色數目);
(3)狀態轉移矩陣A= {aij}(例子中aij表示從第i個箱子轉移到第j個箱子的概率),其中aij滿足條件:
I. aij≥0, 1≤i,j≤N
II. aij= P(qt=sj|qt-1=si),
III. =1
(4)發射矩陣B={bj(k)},即從狀態sj觀察到符號vk的概率分布矩陣.(bj(k)在例子中表示從的j個箱子中拿出第k個顏色的概率),其中bj(k)滿足條件:
I. bj(k)≥0, 1≤j≤N; 1≤k≤M
II. bj(k)= P(Ot=vk|qt=sj),
III. =1
(5)初始狀態概率分布π = {πj}.(例子中一開始到第j個箱子的概率),其中πj滿足條件:
I. πj(k)≥0, 1≤j≤N
II. πj= P(q1=sj),
III. =1
一般,一個HMM即為五元組μ={N,M,A,B,π},為了簡便,常簡記為三元組μ={A,B,π}。
HMM有三個基本問題:
(1)評估問題:給定一個觀察序列O=O1O2...OT和模型μ={A,B,π},如何快速地計算給定模型μ的條件下,觀察序列O=O1O2...OT的概率,即P(O|μ)?
(2)解碼問題:給定一個觀察序列O=O1O2...OT和模型μ={A,B,π},如何快速地選擇在給定模型μ的條件下在一定意義下”最優“的狀態序列Q=Q1Q2...QT,是該狀態序列”最好地"解釋觀察序列?
(3)學習問題:給定一個觀察序列O=O1O2...OT,如何調整參數μ={A,B,π},使得P(O|M)最大?
針對HMM的三個基本問題,相應的算法是:
(1)評估問題:前向后向算法
(2)解碼問題:維特比算法(Viterbi)
(3)學習問題:前向后向算法(BAUM-WELCH)。