隱馬爾科夫模型-基本模型與三個基本問題

2021-03-01 機器學習算法與自然語言處理

這次學習會講了隱馬爾科夫鏈,這是一個特別常見的模型,在自然語言處理中的應用也非常多。

常見的應用比如分詞,詞性標註,命名實體識別等問題序列標註問題均可使用隱馬爾科夫模型.

下面,我根據自己的理解舉例進行講解一下HMM的基本模型以及三個基本問題,希望對大家理解有幫助~    


隱馬爾可夫模型是關於時序的概率模型,描述由一個隱藏的馬爾可夫鏈隨機生成不可觀測的狀態隨機序列,再由各個狀態生成一個觀測而產生觀測隨機序列的過程。

隱藏的馬爾可夫鏈隨機生成的狀態的序列,稱為狀態序列(state sequence);每個狀態生成一個觀測,而由此產生的觀測的隨機序列,稱為觀測序列(observation sequence)。

序列的每一個位置又可以看作是一個時刻。

下面我們引入一些符號來表示這些定義:

設Q是所有可能的狀態的集合,V是所有可能的觀測的集合。

<img src="https://pic3.zhimg.com/v2-06a3db8c77a09b7dd844eddba5d1f27e_b.png" data-rawwidth="300" data-rawheight="58" class="content_image" width="300" _src="https://pic3.zhimg.com/v2-06a3db8c77a09b7dd844eddba5d1f27e_b.png"/>

其中,N是可能的狀態數,M是可能的觀測數。

狀態q是不可見的,觀測v是可見的。

應用到詞性標註中,v代表詞語,是可以觀察到的。q代表我們要預測的詞性(一個詞可能對應多個詞性)是隱含狀態。

應用到分詞中,v代表詞語,是可以觀察的。q代表我們的標籤(B,E這些標籤,代表一個詞語的開始,或者中間等等)

應用到命名實體識別中,v代表詞語,是可以觀察的。q代表我們的標籤(標籤代表著地點詞,時間詞這些)

上面提到的方法,有興趣的同學可以再細入查閱相應資料。

I是長度為T的狀態序列,O是對應的觀測序列。

<img src="https://pic1.zhimg.com/v2-07c3af4a16a5babbdad861edd7b539a0_b.png" data-rawwidth="300" data-rawheight="47" class="content_image" width="300" _src="https://pic1.zhimg.com/v2-07c3af4a16a5babbdad861edd7b539a0_b.png"/>我們可以看做是給定了一個詞(O)+詞性(I)的訓練集。或者一個詞(O)+分詞標籤(I)的訓練集....有了訓練數據,那麼再加上訓練算法則很多問題也就可以解決了,問題後面慢慢道來~我們可以看做是給定了一個詞(O)+詞性(I)的訓練集。

或者一個詞(O)+分詞標籤(I)的訓練集....有了訓練數據,那麼再加上訓練算法則很多問題也就可以解決了,問題後面慢慢道來~


我們繼續定義A為狀態轉移概率矩陣:

<img src="https://pic1.zhimg.com/v2-05d40f68c8dc780bbc1d7315e131d550_b.png" data-rawwidth="138" data-rawheight="64" class="content_image" width="138" _src="https://pic1.zhimg.com/v2-05d40f68c8dc780bbc1d7315e131d550_b.png"/>其中,

其中,

<img src="https://pic2.zhimg.com/v2-7d8cff2ce444c634e7d9db91aab63491_b.png" data-rawwidth="458" data-rawheight="60" class="origin_image zh-lightbox-thumb" width="458" data-original="https://pic2.zhimg.com/v2-7d8cff2ce444c634e7d9db91aab63491_r.png" _src="https://pic2.zhimg.com/v2-7d8cff2ce444c634e7d9db91aab63491_b.png"/>

是在時刻t處於狀態qi的條件下在時刻t+1轉移到狀態qj的概率。

B是觀測概率矩陣:

其中,

<img src="https://pic3.zhimg.com/v2-5dfbce14b118b8cdb942a1ec3cab6b96_b.png" data-rawwidth="432" data-rawheight="58" class="origin_image zh-lightbox-thumb" width="432" data-original="https://pic3.zhimg.com/v2-5dfbce14b118b8cdb942a1ec3cab6b96_r.png" _src="https://pic3.zhimg.com/v2-5dfbce14b118b8cdb942a1ec3cab6b96_b.png"/>

是在時刻t處於狀態qj的條件下生成觀測vk的概率(也就是所謂的「發射概率」)。

所以我們在其它資料中,常見到的生成概率與發射概率其實是一個概念。

π是初始狀態概率向量:

<img src="https://pic2.zhimg.com/v2-210bc9b422d33213a6f7711c671cc559_b.png" data-rawwidth="108" data-rawheight="49" class="content_image" width="108" _src="https://pic2.zhimg.com/v2-210bc9b422d33213a6f7711c671cc559_b.png"/>

其中,

<img src="https://pic2.zhimg.com/v2-cda60d7c046fd267f950d6e99047de81_b.png" data-rawwidth="252" data-rawheight="46" class="content_image" width="252" _src="https://pic2.zhimg.com/v2-cda60d7c046fd267f950d6e99047de81_b.png"/>

隱馬爾可夫模型由初始狀態概率向量π、狀態轉移概率矩陣A和觀測概率矩陣B決定。π和A決定狀態序列,B決定觀測序列。因此,隱馬爾可夫模型可以用三元符號表示,即

稱為隱馬爾可夫模型的三要素。

如果加上一個具體的狀態集合Q和觀測序列V,構成了HMM的五元組,這也是隱馬爾科夫模型的所有組成部分。


<img src="https://pic3.zhimg.com/v2-4153e9246ada1d2d9c8fd225e039ed0e_b.png" data-rawwidth="829" data-rawheight="87" class="origin_image zh-lightbox-thumb" width="829" data-original="https://pic3.zhimg.com/v2-4153e9246ada1d2d9c8fd225e039ed0e_r.png" _src="https://pic3.zhimg.com/v2-4153e9246ada1d2d9c8fd225e039ed0e_b.png"/>舉例來說明一下,例子如下:(例子來源於維基百科)舉例來說明一下,例子如下:(例子來源於維基百科)

考慮一個村莊,所有村民都健康或發燒,只有村民醫生才能確定每個人是否發燒。醫生通過詢問患者的感受來診斷髮燒。村民只能回答說他們覺得正常,頭暈或感冒。(這裡的正常,頭暈,感冒就是我們前面說的觀察序列

醫生認為,他的患者的健康狀況作為離散的馬可夫鏈。 「健康」和「發燒」有兩個狀態,但醫生不能直接觀察他們;健康與發燒的狀態是隱藏的(這裡的健康與發燒就是我們前面說的隱藏狀態)。每天都有機會根據患者的健康狀況,病人會告訴醫生他/她是「正常」,「感冒」還是「頭昏眼花」。

觀察(正常,感冒,暈眩)以及隱藏的狀態(健康,發燒)形成隱馬爾可夫模型(HMM),並可以用Python程式語言表示如下:

在這段代碼中,start_probability代表了醫生對患者首次訪問時HMM所處的狀態的信念(他知道患者往往是健康的)。

這裡使用的特定概率分布不是平衡的,它是(給定轉移概率)大約{'健康':0.57,'發燒':0.43}。(這裡代表的就是我們前面說的初始狀態概率pi

transition_probability表示基礎Markov鏈中健康狀況的變化。在這個例子中,今天只有30%的機會,如果他今天健康,病人會發燒。發射概率表示患者每天感受的可能性。如果他健康,那麼有50%的機會感覺正常;如果他有發燒,那麼有60%的機會感到頭昏眼花。

那麼用圖來表示上面的例子可以如下表示:

<img src="https://pic4.zhimg.com/v2-c13d7e306fcc83daceffda6c6d51cd37_b.png" data-rawwidth="636" data-rawheight="529" class="origin_image zh-lightbox-thumb" width="636" data-original="https://pic4.zhimg.com/v2-c13d7e306fcc83daceffda6c6d51cd37_r.png" _src="https://pic4.zhimg.com/v2-c13d7e306fcc83daceffda6c6d51cd37_b.png"/>好的,例子我們描述完了,現在我們用人話來繼續描述一下第一個問題。好的,例子我們描述完了,現在我們用人話來繼續描述一下第一個問題。

第一個問題是求,給定模型的情況下,求某種觀測序列出現的概率。

比如,給定的HMM模型參數已知,求出三天觀察是(Dizzy,Cold,Normal)的概率是多少?

對應的HMM模型參數已知的意思,就是說的A,B,pi矩陣是已經知道的。

<img src="https://pic2.zhimg.com/v2-cd4f58b291ab292320064ec5b9625065_b.png" data-rawwidth="849" data-rawheight="70" class="origin_image zh-lightbox-thumb" width="849" data-original="https://pic2.zhimg.com/v2-cd4f58b291ab292320064ec5b9625065_r.png" _src="https://pic2.zhimg.com/v2-cd4f58b291ab292320064ec5b9625065_b.png"/>按照上面的例子來對應,第二個問題就是。按照上面的例子來對應,第二個問題就是。

我們已經知道了觀測序列是(Dizzy,Cold,Normal),需要求出HMM的參數問題(使得我們的觀測序列出現概率最大)。也就是我們上面說的A,B,PI三個矩陣參數

<img src="https://pic2.zhimg.com/v2-80c1cc23a613ebea13f9f914bff424f5_b.png" data-rawwidth="875" data-rawheight="78" class="origin_image zh-lightbox-thumb" width="875" data-original="https://pic2.zhimg.com/v2-80c1cc23a613ebea13f9f914bff424f5_r.png" _src="https://pic2.zhimg.com/v2-80c1cc23a613ebea13f9f914bff424f5_b.png"/>按照上面的例子來對應,第三個問題就是。按照上面的例子來對應,第三個問題就是。

我們知道了觀測序列是(Dizzy,Cold,Normal),也知道了HMM的參數,讓我們求出造成這個觀測序列最有可能對應的狀態序列。比如說是(Healthy,Healthy,Fever)還是(Healthy,Healthy,Healthy),等等,這裡有3的3次方27種可能~

致謝:

皓宇,德川,繼豪,施琦

近期文章預告:

《隱馬爾科夫模型-前向後向算法》

《隱馬爾科夫模型-維特比算法》

《深入淺出講解支持向量機》

推薦閱讀文章:

深入淺出理解決策樹算法(一)-核心思想

零基礎掌握極大似然估計

帶你搞懂樸素貝葉斯分類算法

淺析感知機(一)--模型與學習策略

相關焦點

  • 有趣的隱馬爾科夫模型
    01 隱馬爾科夫模型簡介隱馬爾科夫模型是關於時序的概率模型,描述由一個隱藏的馬爾科夫鏈隨機生成不可觀測的狀態隨機序列,再由各個狀態生成一個觀測而產生觀測序列的過程02 隱馬爾科夫模型舉例為了讓讀者更直觀地了解馬爾科夫模型,本文將針對經典的盒子與球模型展開分析。
  • 「NLP」用於語音識別、分詞的隱馬爾科夫模型HMM
    大家好,今天介紹自然語言處理中經典的隱馬爾科夫模型(HMM)。HMM早期在語音識別、分詞等序列標註問題中有著廣泛的應用。了解HMM的基礎原理以及應用,對於了解NLP處理問題的基本思想和技術發展脈絡有很大的好處。本文會詳細講述HMM的基本概念和原理,並詳細介紹其在分詞中的實際應用。
  • 詳解隱馬爾可夫模型(HMM)
    它是典型的自然語言中處理標註問題的統計機器學模型,本文將重點介紹這種經典的機器學習模型。假設有三個不同的骰子(6面、4面、8面),每次先從三個骰子裡面選擇一個,每個骰子選中的概率為1/3,如下圖所示,重複上述過程,得到一串數值[1,6,3,5,2,7]。這些可觀測變量組成可觀測狀態鏈。
  • 馬爾可夫模型學習
    我們可以把這種過程建模為隱馬爾科夫模型(HMM)。這個模型包含兩個狀態集合和三個概率集合。2.3 隱馬爾科夫模型的三個基本問題(1)   給定模型,如何有效計算產生觀測序列的概率?換言之,如何評估模型與觀測序列之間的匹配程度?(2)   給定模型和觀測序列,如何找到與此觀測序列最匹配的狀態序列?換言之,如何根據觀測序列推斷出隱藏的模型狀態?
  • 60分鐘看懂HMM的基本原理
    , 'Fever': 0.3}, 'Fever' : {'Healthy': 0.4, 'Fever': 0.6}, } #狀態矩陣B = { 'Healthy' : {'normal': 0.5, 'cold': 0.4, 'dizzy': 0.1}, 'Fever' : {'normal': 0.1, 'cold': 0.3, 'dizzy': 0.6},} # 發射矩陣HMM的三個基本問題
  • 排列組合基本模型
    當遇到較複雜的問題時,如果用最基本的分類或分步來解決問題,可能會找不到好的切入點或是因為疏忽得出錯誤的答案。 因此要掌握好排列組合問題,還需要對常見的排列組合模型比較熟悉,並能合理的套用對應的模型。
  • 【機器學習】隱馬爾可夫模型
    隱馬爾科夫模型是一種時序的概率模型,描述由一個隱的馬爾科夫鏈隨機生成的不可觀察的隱狀態序列,在每一個隱狀態下隨機產生觀察值構成一個可觀測的隨機序列。其中關鍵是狀態序列是滿足馬爾科夫性質的,且可觀測序列是由隱藏的狀態序列以一定的概率隨機生成。在自然語言中文分詞中,由於自然語言是有明顯的上下文關係的,即當前字與其前後出現的字都是有關係的。
  • 小學小升初及奧數幾何問題之鳥頭模型的基本原理
    關於鳥頭模型,估計面臨小升初的孩子已經非常熟悉的內容了。不過為了避免有的同學還不是很熟悉,首先介紹一下什麼是幾何的鳥頭模型。鳥頭模型實際上是幾何問題中的一個很小的部分問題,知識為了讓小孩子好記住名字,才起來了這麼名字。實際幾何中原來根本沒有這麼個鳥頭模型。
  • 基本粒子和相互作用的標準模型簡介
    而作為理論的簡介,論文並不是想做一個高能物理發展歷史的綜述,所以主要內容是討論怎麼理解現在已經成為高能物理理論基礎的粒子物理標準模型。論文做以下安排,第1部分介紹物質的基本組分;第2部分介紹基本相互作用;第3部分講解理解物質基元和相互作用的理論;第4部分講解標準模型的具體內容;最後我們給出總結以及標準模型所存在的問題。
  • 基本粒子和相互作用的標準模型|眾妙之門
    而作為理論的簡介,論文並不是想做一個高能物理發展歷史的綜述,所以主要內容是討論怎麼理解現在已經成為高能物理理論基礎的粒子物理標準模型。論文做以下安排,第1部分介紹物質的基本組分;第2部分介紹基本相互作用;第3部分講解理解物質基元和相互作用的理論;第4部分講解標準模型的具體內容;最後我們給出總結以及標準模型所存在的問題。
  • 陳春花:打造企業文化的7個基本理論模型
    研究企業文化是我多年來關注的領域,所以也常常被問這樣一個問題被問多了,我也就做了一些功課,把基本的理論模型找出來,供大家參考。一、德魯克:打造經營理論彼得·德魯克(PeterF.Drucker)在其著作《巨變時代的管理》(ManaginginatimeofGreatChange)一書中,認為經營理論有三部分:e......
  • 系統生物學導論|計算模型的基本概念
    系統生物學模型由描述生物系統特性的數學元素組成,例如描述代謝物濃度的數學變量。由於模型只能描述系統的某些方面,系統的所有其他特性(例如,其他物質的濃度或細胞的環境)都被忽略或簡化。重要的是——在某種程度上也是一門藝術——以這樣的方式構建模型,被忽視的屬性不會損害模型的基本結果。
  • 隱馬爾可夫模型怎麼畫?3分鐘學會使用模型圖
    隱馬爾可夫模型既是一類非常有名的向圖模型,也可以用作有關時序的概率模型,又是一種典型的用於處理自然語言中標註問題的統計方面的機器學模型。馬爾可夫模型不斷推廣改進,截止目前已經推廣到了適用於更加複雜的數據結構與非穩定數據建模的兩兩馬爾可夫模型和三重態馬爾可夫模型。
  • 萬物之初的樣子——基本粒子模型
    如果想探索空間,就一定要將這些基本的作用力包括在內。我們會發現,真空是一個有趣的地方,粒子既有可能在其中四處遊移,又無時不刻地遇到阻礙。首先要強調的是,弱核力和強核力的描述所採用的量子場論方法,正是我們在描述量子電動力學時使用的方法。正是在這個意義上,費曼、施溫格和朝永振一郎的工作有著深遠的意義。
  • 2018年自考資料庫原理知識點:SQL的數據關係模型的基本概念
    2.1.1 二維表格的基本術語考核要求:達到「識記」層次知識點:主要是一些基本概念(1)二維表格 在關係模型中,一張二維表格對應一個關係。(2)元組(tuple) 表中的一行(即一個記錄),表示一個實體;關係是由元組組成的。
  • 如何快速了解排列組合經典模型基本公式及題型特點
    事業單位考試的行測中,有一類題型叫做排列組合,而在排列組合的應用中,有一些題型需要構造模型才能快速解題,否則難以下手。本文就排列組合常見的三種模型,環形排列、錯位重排、同素分堆給大家作簡單介紹。基本公式及題型特點1.環線排列與直線排列相比,環線上的排列問題沒有前後與首尾之分。任取一個元素作為隊首,環線排列問題便轉化為剩下的(n-1)個元素的直線排列問題。
  • 2013年自考《資料庫系統原理》筆記:2.2ER模型的基本概念
    當前位置:首頁> 筆記串講 > 2013年自考《資料庫系統原理》筆記:2.2ER 2013年自考《資料庫系統原理》筆記:2.2ER模型的基本概念
  • 讀懂概率圖模型:你需要從基本概念和參數估計開始
    文章從基礎的概念開始談起,並加入了基礎的應用示例來幫助初學者理解概率圖模型的實用價值。機器之心對該文章進行了編譯介紹。第一部分:基本術語和問題設定機器學習領域內很多常見問題都涉及到對彼此相互獨立的孤立數據點進行分類。比如:預測給定圖像中是否包含汽車或狗,或預測圖像中的手寫字符是 0 到 9 中的哪一個。事實證明,很多問題都不在上述範圍內。
  • 工具篇:3C模型、Kano模型、冰山模型、行為分析模型
    提問問題:通過提問直擊真實需求的核心(這裡也有個方法-剝洋蔥法): 你的目標是什麼?完成該目標的挑戰在哪裡? 具體想了解哪方面呢?/為什麼想了解呢? 你認為怎麼才能改變這種情況?/你認為我怎麼做才能更好?
  • 第八講:產生式模型: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|λ),然後對所有可能的狀態序列求和