引言
隱馬爾可夫模型(Hidden Markov Model,HMM)作為一種統計分析模型,創立於20世紀70年代。80年代得到了傳播和發展,成為信號處理的一個重要方向,現已成功地用於語音識別,行為識別,文字識別以及故障診斷等領域。
基本理論
隱馬爾可夫模型是馬爾可夫鏈的一種,它的狀態不能直接觀察到,但能通過觀測向量序列觀察到,每個觀測向量都是通過某些機率密度分布表現為各種狀態,每一個觀測向量是由一個具有相應機率密度分布的狀態序列產生。所以,隱馬爾可夫模型是一個雙重隨機過程----具有一定狀態數的隱馬爾可夫鏈和顯示隨機函式集。自20世紀80年代以來,HMM被套用於語音識別,取得重大成功。到了90年代,HMM還被引入計算機文字識別和移動通信核心技術“多用戶的檢測”。HMM在生物信息科學、故障診斷等領域也開始得到套用。
基本算法
針對以下三個問題,人們提出了相應的算法
*1 評估問題: 前向算法
*2 解碼問題: Viterbi算法
*3 學習問題: Baum-Welch算法(向前向後算法)
基本概述
一種HMM可以呈現為最簡單的動態貝葉斯網路。隱馬爾可夫模型背後的數學是由LEBaum和他的同事開發的。它與早期由RuslanL.Stratonovich提出的最優非線性濾波問題息息相關,他是第一個提出前後過程這個概念的。
在簡單的馬爾可夫模型(如馬爾可夫鏈),所述狀態是直接可見的觀察者,因此狀態轉移機率是唯一的參數。在隱馬爾可夫模型中,狀態是不直接可見的,但輸出依賴於該狀態下,是可見的。每個狀態通過可能的輸出記號有了可能的機率分布。因此,通過一個HMM產生標記序列提供了有關狀態的一些序列的信息。注意,“隱藏”指的是,該模型經其傳遞的狀態序列,而不是模型的參數;即使這些參數是精確已知的,我們仍把該模型稱為一個“隱藏”的馬爾可夫模型。隱馬爾可夫模型以它在時間上的模式識別所知,如語音,手寫,手勢識別,詞類的標記,樂譜,局部放電和生物信息學套用。
隱馬爾可夫模型可以被認為是一個概括的混合模型中的隱藏變數(或變數),它控制的混合成分被選擇為每個觀察,通過馬爾可夫過程而不是相互獨立相關。最近,隱馬爾可夫模型已推廣到兩兩馬爾可夫模型和三重態馬爾可夫模型,允許更複雜的數據結構的考慮和非平穩數據建模。
模型表達
隱馬爾可夫模型(HMM)可以用五個元素來描述,包括2個狀態集合和3個機率矩陣:
1. 隱含狀態 S
這些狀態之間滿足馬爾可夫性質,是馬爾可夫模型中實際所隱含的狀態。這些狀態通常無法通過直接觀測而得到。(例如S1、S2、S3等等)
2. 可觀測狀態 O
在模型中與隱含狀態相關聯,可通過直接觀測而得到。(例如O1、O2、O3等等,可觀測狀態的數目不一定要和隱含狀態的數目一致。)
3. 初始狀態機率矩陣 π
表示隱含狀態在初始時刻t=1的機率矩陣,(例如t=1時,P(S1)=p1、P(S2)=P2、P(S3)=p3,則初始狀態機率矩陣 π=[ p1 p2 p3 ].
4. 隱含狀態轉移機率矩陣 A。
描述了HMM模型中各個狀態之間的轉移機率。
其中Aij = P( Sj | Si ),1≤i,,j≤N.
表示在 t 時刻、狀態為 Si 的條件下,在 t+1 時刻狀態是 Sj 的機率。
5. 觀測狀態轉移機率矩陣 B (英文名為Confusion Matrix,直譯為混淆矩陣不太易於從字面理解)。
令N代表隱含狀態數目,M代表可觀測狀態數目,則:
Bij = P( Oi | Sj ), 1≤i≤M,1≤j≤N.
表示在 t 時刻、隱含狀態是 Sj 條件下,觀察狀態為 Oi 的機率。
總結:一般的,可以用λ=(A,B,π)三元組來簡潔的表示一個隱馬爾可夫模型。隱馬爾可夫模型實際上是標準馬爾可夫模型的擴展,添加了可觀測狀態集合和這些狀態與隱含狀態之間的機率關係。
基本問題
1. 評估問題。
給定觀測序列 O=O1O2O3…Ot和模型參數λ=(A,B,π),怎樣有效計算某一觀測序列的機率,進而可對該HMM做出相關評估。例如,已有一些模型參數各異的HMM,給定觀測序列O=O1O2O3…Ot,我們想知道哪個HMM模型最可能生成該觀測序列。通常我們利用forward算法分別計算每個HMM產生給定觀測序列O的機率,然後從中選出最優的HMM模型。
這類評估的問題的一個經典例子是語音識別。在描述語言識別的隱馬爾科夫模型中,每個單詞生成一個對應的HMM,每個觀測序列由一個單詞的語音構成,單詞的識別是通過評估進而選出最有可能產生觀測序列所代表的讀音的HMM而實現的。
2.解碼問題
給定觀測序列 O=O1O2O3…Ot 和模型參數λ=(A,B,π),怎樣尋找某種意義上最優的隱狀態序列。在這類問題中,我們感興趣的是馬爾科夫模型中隱含狀態,這些狀態不能直接觀測但卻更具有價值,通常利用Viterbi算法來尋找。
這類問題的一個實際例子是中文分詞,即把一個句子如何劃分其構成才合適。例如,句子“開發中國家”是劃分成“發展-中-國家”,還是“發展-中國-家”。這個問題可以用隱馬爾科夫模型來解決。句子的分詞方法可以看成是隱含狀態,而句子則可以看成是給定的可觀測狀態,從而通過建HMM來尋找出最可能正確的分詞方法。
3. 學習問題。
即HMM的模型參數λ=(A,B,π)未知,如何調整這些參數以使觀測序列O=O1O2O3…Ot的機率儘可能的大。通常使用Baum-Welch算法以及Reversed Viterbi算法解決。
怎樣調整模型參數λ=(A,B,π),使觀測序列 O=O1O2O3…Ot的機率最大?
歷史
隱馬爾可夫模型最初是在20世紀60年代後半期Leonard E. Baum和其它一些作者在一系列的統計學論文中描述的。HMM最初的套用之一是開始於20世紀70年代中期的語音識別。
在1980年代後半期,HMM開始套用到生物序列尤其是DNA的分析中。此後,在生物信息學領域HMM逐漸成為一項不可或缺的技術。