隱馬爾可夫模型(HMM)詳解
隱馬爾可夫模型(Hidden Markov model, HMM)是一種結構最簡單的動態貝葉斯網的生成模型,它也是一種著名的有向圖模型。它是典型的自然語言中處理標註問題的統計機器學模型,本文將重點介紹這種經典的機器學習模型。
一、引言
假設有三個不同的骰子(6面、4面、8面),每次先從三個骰子裡面選擇一個,每個骰子選中的概率為1/3,如下圖所示,重複上述過程,得到一串數值[1,6,3,5,2,7]。這些可觀測變數組成可觀測狀態鏈。同時,在隱馬爾可夫模型中還有一條由隱變數組成的隱含狀態鏈,在本例中即骰子的序列。比如得到這串數字骰子的序列可能為[D6, D8, D8, D6, D4, D8]。
隱馬爾可夫型示意圖如下所示:
圖中,箭頭表示變數之間的依賴關係。圖中各箭頭的說明如下:
在任意時刻,觀測變數(骰子)僅依賴於狀態變數(哪類骰子),同時t時刻的狀態qt僅依賴於t-1時刻的狀態qt-1。這就是馬爾科夫鏈,即系統的下一時刻僅由當前狀態(無記憶),即“齊次馬爾可夫性假設”
二、隱馬爾可夫模型的定義
根據上面的例子,這裡給出隱馬爾可夫的定義。隱馬爾科夫模型是關於時序的概率模型,描述由一個隱藏的馬爾可夫鏈隨機生成不可觀測的狀態隨機序列,再由各個狀態生成一個可觀測的隨機序列的過程,隱藏的馬爾可夫鏈隨機生成的狀態序列,稱為狀態序列(也就上面例子中的D6,D8等);每個狀態生成一個觀測,而由此產生的觀測隨機序列,稱為觀測序列(也就上面例子中的1,6等)。序列的每個位置又可以看作是一個時刻。
隱馬爾可夫模型由初始的概率分佈、狀態轉移概率分佈以及觀測概率分佈確定。具體的形式如下,這裡設Q是所有可能的狀態的集合,V是所有可能的觀測的集合,即有:
其中,N是可能的狀態數,M是可能觀測的數。另外設I是長度為T的狀態序列,O是對應的觀測序列:
在馬爾可夫鏈中,有幾個矩陣變數,分別是狀態轉移概率矩陣A,觀測概率矩陣B,以及初始狀態概率向量C,其中狀態轉移概率矩陣A為:
其中,
是在時刻t處於狀態qi的條件下生成狀態qj的概率。
初始狀態概率向量為:
Ci為時刻t=1處於狀態qi的概率。
隱馬爾可夫模型由初始狀態概率向量C,狀態轉移概率矩陣A和觀測概率矩陣B決定,C和A決定狀態序列,B決定觀測序列,因此隱馬爾可夫模型可以用三元符號表示為:
A、B和C也被稱為隱馬爾科夫模型的三要素。
狀態轉移概率矩陣A與初始狀態概率向量C確定了隱藏的馬爾可夫鏈,生成不可觀測的狀態序列,觀測概率矩陣B確定瞭如何從狀態生成觀測,與狀態序列綜合確定瞭如何產生觀測序列。
從定義中,可以發現隱馬爾可夫模型作了兩個基本假設:
(1) 馬爾可夫性假設,即假設隱藏的馬爾可夫鏈在任意時刻t的狀態只依賴於其前一時刻的狀態,與其它時刻的狀態及觀測無關,也與時刻t無關,
(2) 觀測獨立性假設,即假設任意時刻的觀測只依賴於該時刻的馬爾可夫鏈的狀態,與其他觀測及狀態無關。
隱馬爾可夫模型可以用於標註,這時狀態對應著標記,標註問題是給定觀測的序列預測其對應的標記序列。可以假設標註問題的資料是由隱馬爾可夫模型生成的,這樣可以利用該模型的學習與預測演算法進行標註。
隱馬爾科夫模型的三個基本問題:
(1) 概率計算問題:給定模型lamda=(A,B,C)和觀測序列O=(o1,o2,...,oT),計算在該模型下觀測序列O出現的概率P(O|lamda)。
(2) 學習問題:一直觀測序列O=(o1,o2,...,oT),估計模型lamda=(A,B,C)引數,使得在該模型下觀測序列概率P(O|lamda)最大,即用極大似然估計的方法估計引數。
(3) 預測問題,也稱為解碼的問題,已知模型lamda=(A,B,C)和觀測序列O=(o1,o2,...,oT),求對給定觀測序列條件概率P(I|O)最大的狀態序列 I = (i1,i2,...,iT),即給定觀測序列,求最有可能的對應的狀態序列。
三、前向演算法
在介紹前向演算法之前,先介紹前向概率。
前向概率:在給定隱馬爾科夫模型lamda,定義到時刻t部分觀測序列為o1,o2,...,ot且狀態為qi的概率為前向概率,記為:
可以根據資料對前向概率公式進行遞推,並最終得到觀測序列概率P(O|lamda). 前向概率演算法就是根據前向概率遞推公式進行計算的,輸入為隱馬爾可夫模型和觀測序列,輸出的結果為序列概率P(O|lamda). 計算的步驟為:
(1) 根據前向概率公式,先設定 t = 1的初值:
(2) 根據前向概率公式對前向概率進行遞推,因此對t=1,2,...,N-1有:
(3) 最後對所有的前向概率進行求和得到最終的結果,即為:
該演算法所表示的遞推關係圖為:
對於步驟一的初始,是初始時刻的狀態i1 = q1和觀測o1的聯合概率。步驟(2) 是前向概率的遞推公式,計算到時刻t+1部分觀測序列為o1,o2,...,ot,ot+1 且在時刻t+1處於狀態qi的前向概率。如上圖所示,既然at(j)是得到時刻t觀測到o1,o2,...,ot並在時刻t處於狀態的qj前向概率,那麼at(j)aji就是到時刻t觀測到o1,o2,...,ot並在是時刻t處於qj狀態而在時刻t+1到達qi狀態的聯合概率。對於這個乘積在時刻t的所有可能的N個狀態求和,其結果就是到時刻t觀測為o1,o2,...,ot,並在時刻t+1處於狀態qi的聯合概率。最後第三步,計算出P(O|lamda)的結果。
當然這裡只是介紹了諸多演算法中的一種,類似的還有後向演算法(大家可以看相關的書籍進行了解)。對於動態規劃的解決隱馬爾科夫模型預測問題,應用最多的是維特比演算法
更多幹貨,請關注我的微信公眾號:紅柚甜
相關文章
- 隱馬爾可夫模型詳解隱馬爾可夫模型
- HMM隱馬爾可夫模型來龍去脈(二)HMM隱馬爾可夫模型
- ML-隱馬爾可夫模型隱馬爾可夫模型
- 10_隱馬爾可夫模型隱馬爾可夫模型
- 隱馬爾可夫模型 | 賽爾筆記隱馬爾可夫模型筆記
- 機器學習之隱馬爾可夫模型機器學習隱馬爾可夫模型
- 用簡單易懂的例子解釋隱馬爾可夫模型隱馬爾可夫模型
- NLP-隱馬爾可夫模型及使用例項隱馬爾可夫模型
- 維特比演算法和隱馬爾可夫模型的解碼維特比演算法隱馬爾可夫模型
- CVPR 2021 | 時間序列疾病預測的因果隱馬爾可夫模型隱馬爾可夫模型
- 域結構進化的馬爾可夫模型馬爾可夫模型
- 2022-05-17-馬爾科夫鏈之傳統馬爾可夫鏈馬爾科夫馬爾可夫
- 中文分詞的探索,CRF(條件隨機場)和HMM(隱馬爾可夫模型)用於分詞的對比,以及中文分詞的評估中文分詞CRF條件隨機場HMM隱馬爾可夫模型
- 馬爾可夫鏈是個什麼鬼?圖文詳解告訴你!馬爾可夫
- [work] 一階 二階馬爾可夫馬爾可夫
- 理解馬爾可夫決策過程馬爾可夫
- 【機器學習】--隱含馬爾科夫模型從初識到應用機器學習馬爾科夫模型
- 在 Swift 中使用馬爾可夫鏈生成文字Swift馬爾可夫
- 「馬爾可夫決策過程」學習筆記馬爾可夫筆記
- AI產品經理必修:揭開演算法的面紗(隱含馬爾可夫)AI演算法馬爾可夫
- [譯] 用 Python 實現馬爾可夫鏈的初級教程Python馬爾可夫
- 馬爾可夫鏈你知道多少?Python視覺化解析MCMC馬爾可夫Python視覺化
- 一個馬爾科夫鏈例項馬爾科夫
- R資料分析:縱向分類結局的分析-馬爾可夫多型模型的理解與實操馬爾可夫多型模型
- 今天是霧霾,明天是什麼?馬爾可夫鏈告訴你馬爾可夫
- 馬爾科夫鏈的穩態分佈馬爾科夫
- 馬爾科夫鏈隨機文字生成器馬爾科夫隨機
- 2022-05-21-空間馬爾科夫鏈工具馬爾科夫
- 【火爐煉AI】機器學習045-對股票資料進行隱馬爾科夫建模AI機器學習馬爾科夫
- 強化學習(二)馬爾科夫決策過程(MDP)強化學習馬爾科夫
- 高爾夫禮儀
- 強化學習組隊學習task02——馬爾可夫決策過程及表格型方法強化學習馬爾可夫
- 模擬高爾夫快速發展,揮杆高爾夫模擬器讓普通人加入高爾夫運動
- 最簡單的隨機過程——馬爾科夫鏈的Python分析隨機馬爾科夫Python
- 《什麼是高爾夫?》:萬物皆可高爾夫的瘋狂遊戲遊戲
- 漫談自學習人工智慧代理:馬爾可夫決策過程(第一部分)人工智慧馬爾可夫
- 中文自然語言處理工具hanlp隱馬角色標註詳解自然語言處理HanLP
- 13張動圖助你徹底看懂馬爾科夫鏈、PCA和條件概率!馬爾科夫PCA