
隱藏式馬可夫模型
此條目需要補充更多來源。 (2015年7月3日) |
機器學習與資料探勘 |
---|
![]() |
隱藏式馬可夫模型(Hidden Markov Model;縮寫:HMM)或稱作隱性馬可夫模型,是統計模型,它用來描述一個含有隱含未知參數的馬可夫過程。其難點是從可觀察的參數中確定該過程的隱含參數。然後利用這些參數來作進一步的分析,例如圖型識別。
在正常的馬可夫模型中,狀態對於觀察者來說是直接可見的。這樣狀態的轉換機率便是全部的參數。而在隱藏式馬可夫模型中,狀態並不是直接可見的,但受狀態影響的某些變數則是可見的。每一個狀態在可能輸出的符號上都有一機率分布。因此輸出符號的序列能夠透露出狀態序列的一些資訊。
馬可夫模型的演化[編輯]
下邊的圖示強調了HMM的狀態變遷。有時,明確的表示出模型的演化也是有用的,我們用 x(t1) 與 x(t2) 來表達不同時刻 t1 和 t2 的狀態。
圖中箭頭方向則表示不同資訊間的關聯性,因此可以得知和有關,而又和有關。
而每個只和有關,其中我們稱為隱藏變數(hidden variable),是觀察者無法得知的變數。
隱性馬可夫模型常被用來解決有未知條件的數學問題。
假設隱藏狀態的值對應到的空間有個元素,也就是說在時間時,隱藏狀態會有種可能。
同樣的,也會有種可能的值,所以從到間的關係會有種可能。
除了間的關係外,每組間也有對應的關係。
若觀察到的有種可能的值,則從到的輸出模型複雜度為。如果是一個維的向量,則從到的輸出模型複雜度為。
在這個圖中,每一個時間塊(x(t), y(t))都可以向前或向後延伸。通常,時間的起點被設定為t=0 或 t=1.
馬可夫模型的機率[編輯]
假設觀察到的結果為
隱藏條件為
長度為,則馬可夫模型的機率可以表達為:
由這個機率模型來看,可以得知馬可夫模型將該時間點前後的資訊都納入考量。
使用隱藏式馬可夫模型[編輯]
HMM有三個典型(canonical)問題:
- 預測(filter):已知模型參數和某一特定輸出序列,求最後時刻各個隱含狀態的機率分布,即求 。通常使用前向演算法解決。
- 平滑(smoothing):已知模型參數和某一特定輸出序列,求中間時刻各個隱含狀態的機率分布,即求 。通常使用前向-後向演算法解決。
- 解碼(most likely explanation):已知模型參數,尋找最可能的能產生某一特定輸出序列的隱含狀態的序列,即求 。通常使用Viterbi演算法解決。
此外,已知輸出序列,尋找最可能的狀態轉移以及輸出機率.通常使用Baum-Welch演算法以及Viterbi algorithm解決。另外,最近的一些方法使用聯結樹演算法來解決這三個問題。 [來源請求]
具體實例[編輯]
假設你有一個住得很遠的朋友,他每天跟你打電話告訴你他那天做了什麼。你的朋友僅僅對三種活動感興趣:公園散步,購物以及清理房間。他選擇做什麼事情只憑天氣。你對於他所住的地方的天氣情況並不了解,但是你知道總的趨勢。在他告訴你每天所做的事情基礎上,你想要猜測他所在地的天氣情況。
你認為天氣的執行就像一個馬可夫鏈。其有兩個狀態「雨」和「晴」,但是你無法直接觀察它們,也就是說,它們對於你是隱藏的。每天,你的朋友有一定的機率進行下列活動:「散步」、「購物」、「清理」。因為你朋友告訴你他的活動,所以這些活動就是你的觀察資料。這整個系統就是一個隱藏式馬可夫模型(HMM)。
你知道這個地區的總的天氣趨勢,並且平時知道你朋友會做的事情。也就是說這個隱藏式馬可夫模型的參數是已知的。你可以用程式語言(Python)寫下來:
states = ('Rainy', 'Sunny')
observations = ('walk', 'shop', 'clean')
start_probability = {'Rainy': 0.6, 'Sunny': 0.4}
transition_probability = {
'Rainy' : {'Rainy': 0.7, 'Sunny': 0.3},
'Sunny' : {'Rainy': 0.4, 'Sunny': 0.6},
}
emission_probability = {
'Rainy' : {'walk': 0.1, 'shop': 0.4, 'clean': 0.5},
'Sunny' : {'walk': 0.6, 'shop': 0.3, 'clean': 0.1},
}
在這些代碼中,start_probability
代表了你對於你朋友第一次給你打電話時的天氣情況的不確定性(你知道的只是那個地方平均起來下雨多些)。在這裡,這個特定的機率分布並非平衡的,平衡機率應該接近(在給定變遷機率的情況下){'Rainy': 0.571, 'Sunny': 0.429}
。
transition_probability
表示基於馬可夫鏈模型的天氣變遷,在這個例子中,如果今天下雨,那麼明天天晴的機率只有30%。代碼emission_probability
表示了你朋友每天做某件事的機率。如果下雨,有50% 的機率他在清理房間;如果天晴,則有60%的機率他在外頭散步。
這個例子在維特比演算法頁上有更多的解釋。
隱藏式馬可夫模型的應用[編輯]
- 語音辨識、中文斷詞/分詞或光學字元辨識
- 機器翻譯
- 生物資訊學 和 基因組學
- 基因組序列中蛋白質編碼區域的預測
- 對於相互關聯的DNA或蛋白質族的建模
- 從基本結構中預測第二結構元素
- 通信中的解碼過程
- 地圖匹配演算法
- 還有更多...
隱藏式馬可夫模型在語音處理上的應用[編輯]
因為馬可夫模型有下列特色:
- 時間點的隱藏條件和時間點的隱藏條件有關。因為人類語音擁有前後的關聯,可以從語義與發音兩點來看:
- 單字的發音擁有前後關聯:例如"They are"常常發音成"They're",或是"Did you"會因為"you"的發音受"did"的影響,常常發音成"did ju",而且語音辨識中用句子的發音來進行分析,因此需要考慮到每個音節的前後關係,才能夠有較高的準確率。
- 句子中的單字有前後關係:從英文文法來看,主詞後面常常接助動詞或是動詞,動詞後面接的會是受詞或介係詞。而或是從單一單字的使用方法來看,對應的動詞會有固定使用的介係詞或對應名詞。因此分析語音訊息時需要為了提升每個單字的準確率,也需要分析前後的單字。
- 馬可夫模型將輸入訊息視為一單位一單位,接著進行分析,與人類語音模型的特性相似。語音系統辨識的單位為一個單位時間內的聲音。利用梅爾倒頻譜等語音處理方法,轉換成一個發音單位,為離散型的資訊。而馬可夫模型使用的隱藏條件也是一個個被封包的,因此使用馬可夫模型來處理聲音訊號比較合適。
歷史[編輯]
隱藏式馬可夫模型最初是在20世紀60年代後半期Leonard E. Baum和其它一些作者在一系列的統計學論文中描述的。HMM最初的應用之一是開始於20世紀70年代中期的語音辨識。[1]
在1980年代後半期,HMM開始應用到生物序列尤其是DNA的分析中。此後,在生物資訊學領域HMM逐漸成為一項不可或缺的技術。[2]
參見[編輯]
註解[編輯]
參考書目[編輯]
- Lawrence R. Rabiner, A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition. Proceedings of the IEEE, 77 (2), p. 257–286, February 1989.
- Richard Durbin, Sean R. Eddy, Anders Krogh, Graeme Mitchison. Biological Sequence Analysis: Probabilistic Models of Proteins and Nucleic Acids. Cambridge University Press, 1999. ISBN 0521629713.
- Kristie Seymore, Andrew McCallum, and Roni Rosenfeld. Learning Hidden Markov Model Structure for Information Extraction. AAAI 99 Workshop on Machine Learning for Information Extraction, 1999. (also at CiteSeer: [1] (頁面存檔備份,存於網際網路檔案館))
- http://www.comp.leeds.ac.uk/roger/HiddenMarkovModels/html_dev/main.html (頁面存檔備份,存於網際網路檔案館)
- J. Li (頁面存檔備份,存於網際網路檔案館), A. Najmi, R. M. Gray, Image classification by a two dimensional hidden Markov model, IEEE Transactions on Signal Processing, 48(2):517-33, February 2000.
- 隱藏式馬可夫模型(課件), 徐從富,浙江大學人工智慧研究所 [2]
外部連結[編輯]
- Hidden Markov Model (HMM) Toolbox for Matlab (by Kevin Murphy)
- Hidden Markov Model Toolkit (HTK) (頁面存檔備份,存於網際網路檔案館) (a portable toolkit for building and manipulating hidden Markov models)
- Hidden Markov Models (頁面存檔備份,存於網際網路檔案館) (an exposition using basic mathematics)
- GHMM Library (頁面存檔備份,存於網際網路檔案館) (home page of the GHMM Library project)
- Jahmm Java Library (Java library and associated graphical application)
- A step-by-step tutorial on HMMs (頁面存檔備份,存於網際網路檔案館) (University of Leeds)
- Software for Markov Models and Processes (TreeAge Software)
|