詳解隱馬爾可夫模型(HMM)

2021-01-19 自然語言處理技術
點擊藍色字免費訂閱,每天收到這樣的好信息  

隱馬爾可夫模型(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的條件下在時刻t+1轉移到狀態qj的概率。


觀測概率矩陣為:

其中,

是在時刻t處於狀態qj的條件下生成觀測vk的概率。


初始狀態概率向量為:

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)的結果。


當然這裡只是介紹了諸多算法中的一種,類似的還有後向算法(大家可以看相關的書籍進行了解)。對於動態規劃的解決隱馬爾科夫模型預測問題,應用最多的是維特比算法。由於維特比和自然語言處理著名的Seq2Seq模型中的Beam Search算法有聯繫,這裡就不進一步介紹,後面在介紹Seq2Seq模型的時候一起介紹。


內容參考:

[1] 李航,統計學習方法


自然語言處理技術

關注微信號每天收聽我們的消息

自然語言處理技術為您推送精品閱讀

每天一個知識點,健康生活每一天


歡迎關注公眾號學習交流

相關焦點

  • R語言中的隱馬爾可夫HMM模型實例
    p=17592 最近,我們使用隱馬爾可夫模型開發了一種解決方案,並被要求解釋這個方案。HMM用於建模數據序列,無論是從連續概率分布還是從離散概率分布得出的。它們與狀態空間和高斯混合模型相關,因為它們旨在估計引起觀測的狀態。狀態是未知或「隱藏」的,並且HMM試圖估計狀態,類似於無監督聚類過程。
  • 一站式解決:隱馬爾可夫模型(HMM)全過程推導及實現
    點擊上方「MLNLP」,選擇「星標」公眾號重磅乾貨,第一時間送達【導讀】隱馬爾可夫模型
  • 隱馬爾可夫模型(HMM)攻略
    日期:2020年05月04日正文共:9038字13圖預計閱讀時間:9分鐘來源:光明日報隱馬爾可夫模型這就是本文重點介紹的隱馬爾可夫模型。隱馬爾可夫模型 (Hidden Markov Model) 是一種統計模型,用來描述一個含有隱含未知參數的馬爾可夫過程。其難點是從可觀察的參數中確定該過程的隱含參數,然後利用這些參數來作進一步的分析。
  • 隱馬爾可夫模型
    隱馬爾可夫模型(Hidden Markov Models,簡稱 HMM)的出現,是為了彌補馬爾可夫模型的不足,在某些較為複雜的隨機過程中,任一時刻 t 的狀態 St 是不可見的。所以觀察者沒法觀察到狀態序列 S1 ,S2, L , St ,但是隱馬爾可夫模型在每個時刻 t 會輸出一個觀測狀態Ot ,而且Ot 僅和 St 相關。這個被稱為獨立輸出假設。
  • 賽爾筆記 | 隱馬爾可夫模型
    說到隱馬爾可夫模型(HMM),我們先來了解下馬爾可夫模型(Markov模型),Markov模型是一種統計模型,廣泛地應用在語音識別,詞性自動標註,音字轉換,概率文法等各個自然語言處理的應用領域。一. 馬爾可夫模型(Markov模型)設是隨機變量序列,其中每個隨機變量的取值在有限集
  • 機器學習算法之隱馬爾可夫模型
    (Hidden Markov Model),隱馬爾可夫模型最初是在20世紀60年代後半期Leonard E.隱馬爾可夫模型簡單介紹隱馬爾可夫模型是關於時序(順序)的概率模型,描述由一個隱藏的馬爾可夫鏈隨機生成不可觀測的狀態隨機序列,再由各個狀態生成一個觀測而產生觀測隨機序列的過程。
  • 隱馬爾可夫模型怎麼畫?3分鐘學會使用模型圖
    隱馬爾可夫模型既是一類非常有名的向圖模型,也可以用作有關時序的概率模型,又是一種典型的用於處理自然語言中標註問題的統計方面的機器學模型。馬爾可夫模型不斷推廣改進,截止目前已經推廣到了適用於更加複雜的數據結構與非穩定數據建模的兩兩馬爾可夫模型和三重態馬爾可夫模型。
  • 【機器學習】隱馬爾可夫模型
    值得注意的是隱馬爾可夫模型中:即由此,馬爾科夫模型定義完成。至於為何這樣定義,隱狀態的意義是什麼,就是模型的價值所在,如何理解隱狀態也是一種個人體會。有了隱馬爾科夫模型,接下來看隱馬爾科夫模型能做什麼?
  • 本座選股談量化投資—隱馬爾可夫模型
    首先這篇文章是寫給沒有什麼基礎人士看的,目的是讓更多可能數學上有些障礙,但是又想要了解量化投資的朋友,無障礙的理解隱馬爾可夫模型框架。此文不適合追求嚴密邏輯和追求簡潔符號建立模型的數學大神。如果您是,請選擇性忽略。
  • 隱馬爾可夫模型攻略
    隱馬爾可夫模型 (Hidden Markov Model,HMM) 最初由 L. E.
  • matlab代寫hmm算法程序(隱馬爾科夫模型)需要注意什麼?
    我要做的就是把svm/rf算法的輸出,作為hmm算法的輸入,然後來預測行為。1.Svm/rf算法的輸出也是預測意圖,我想通過hmm算法結合svm/rf的輸出得到更好的預測結果。2.組合各種意圖,比如通過svm/rf得到的意圖劃分為1-7個強度,我想用hmm將這個強度劃分為1,2兩個狀態。或者1,2,3 三個狀態,然後比較這些結果與svm/rf得到的預測結果3.直接運用特徵值用hmm來進行預測。
  • 第八講:產生式模型:NaiveBayes, HMM(上)
    5.3.2推理(概率計算)概率計算問題已知:模型λ=(A, B, Π)和觀測序列O =(o1,o2,…,oT)求:P(O|λ)方法一:直接計算法通過列舉所有可能的長度為T的狀態序列I = (i1,i2, ..., iT),求各個狀態序列I與觀測序列O = (o1, o2, ..., oT)的聯合概率P(O,I|λ),然後對所有可能的狀態序列求和
  • 「八鬥之才」HMM模型在地址分詞中的應用
    我們將以一個關於天氣和吃飯的例子來說明HMM模型。通過這些概念,我們在下面就可以定義出我們的HMM模型。,我們便稱之為HMM模型。隱馬爾可夫模型(Hidden Markov Model,HMM)是統計模型,它用來描述一個含有隱含未知參數的馬爾可夫過程。其難點是從可觀察的參數中確定該過程的隱含參數。
  • 基於HMM的連續小詞量語音識別系統的研究
    該算法通過對大量語音數據進行數據統計,建立識別詞條的統計模型,然後從待識別語音中提取特徵,與這些模型匹配,通過比較匹配概率,以獲得識別結果,通過建立大量的語音資料庫,就能獲得一個穩健的統計模型,提高在各種實際情況下的識別效率。
  • 隱馬尓可夫模型怎麼畫?億圖軟體專業的圖形圖表工具
    隱馬爾可夫模型既是一類非常有名的向圖模型,也可以用作有關時序的概率模型,又是一種典型的用於處理自然語言中標註問題的統計方面的機器學模型。,此時用到的隱馬爾可夫模型往往複雜度並不在問題的抽象,而在數學處理上,用到的模型還經常混合了其他的模型。
  • 資源| Python上的圖模型與概率建模工具包:pomegranate
    新版本為概率分布、k 均值、混合模型、隱馬爾可夫模型、貝葉斯網絡、樸素貝葉斯/貝葉斯分類器等模型提供模型擬合、結構化學習和推斷過程的修正,並重點關注於處理數據缺失值。pomegranate 簡介pomegranate 是基於 Python 的圖模型和概率模型工具包,它使用 Cython 實現以加快反應速度。它源於 YAHMM,可實現快速、高效和極度靈活的概率模型,如概率分布、貝葉斯網絡、混合隱馬爾可夫模型等。概率建模最基礎的級別是簡單的概率分布。
  • GMM-HMM語音識別原理詳解
    ANS:一個有隱節點(unobservable)和可見節點(visible)的馬爾科夫過程(見詳解)。  隱節點表示狀態,可見節點表示我們聽到的語音或者看到的時序信號。  最開始時,我們指定這個HMM的結構,訓練HMM模型時:給定n個時序信號y1...yT(訓練樣本), 用MLE(typically implemented in EM) 估計參數:  1. N個狀態的初始概率  2. 狀態轉移概率a  3.
  • 「NLP」用於語音識別、分詞的隱馬爾科夫模型HMM
    2 隱馬爾科夫模型(HMM)如圖所示為馬爾科夫模型的圖結構基於此圖結構可知,HMM模型滿足如下的性質:(1) 它基於觀測變量來推測未知變量;(2) 狀態序列滿足馬爾科夫性;同時,隱馬爾科夫模型是一種概率圖模型,它將學習任務歸結於計算變量的概率分布。通過考慮聯合概率P(Y,X)來推斷Y的分布。
  • 白白說算法:相親中的馬爾科夫模型
    這種每個狀態由之前的1個或多個狀態決定的模型,我們稱為馬爾科夫模型。馬爾科夫模型中很多關係使用概率描述的,比如女孩的媽媽很白,那么女兒也很白的概率是90%,女孩媽媽是性格好,女兒也性格好的概率為70%。下圖展示了母親和女兒性格之間的概率關係。
  • 我愛拼模型大本鐘攻略 大本鐘圖文詳解
    今天小編帶來的是我愛拼模型大本鐘圖文詳解,該關卡要怎麼拼呢?完成之後是什麼樣子?和小編一起來看看吧。