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

2021-08-01 15:59:15 字數 2728 閱讀 3639

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

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

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

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

1隱馬爾科夫模型定義

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

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

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

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

設q是所有可能的狀態的集合,v是所有可能的觀測的集合。

其中,n是可能的狀態數,m是可能的觀測數。

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

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

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

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

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

i是長度為t的狀態序列,o是對應的觀測序列。

我們可以看做是給定了乙個詞(o)+詞性(i)的訓練集。

或者乙個詞(o)+分詞標籤(i)的訓練集....有了訓練資料,那麼再加上訓練演算法則很多問題也就可以解決了,問題後面慢慢道來~

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

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

b是觀測概率矩陣:

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

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

π是初始狀態概率向量:

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

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

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

2下面介紹一下隱馬爾可夫鏈的三個基本問題:

概率計算問題。

舉例來說明一下,例子如下:(例子**於維基百科)

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

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

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

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

這裡使用的特定概率分布不是平衡的,它是(給定轉移概率)大約。(這裡代表的就是我們前面說的初始狀態概率pi)

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

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

好的,例子我們描述完了,現在我們用人話來繼續描述一下第乙個問題。

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

比如,給定的hmm模型引數已知,求出三天觀察是(dizzy,cold,normal)的概率是多少?

對應的hmm模型引數已知的意思,就是說的a,b,pi矩陣是已經知道的。

學習問題

按照上面的例子來對應,第二個問題就是。

我們已經知道了觀測序列是(dizzy,cold,normal),需要求出hmm的引數問題(使得我們的觀測序列出現概率最大)。也就是我們上面說的a,b,pi三個矩陣引數

**問題

按照上面的例子來對應,第三個問題就是。

我們知道了觀測序列是(dizzy,cold,normal),也知道了hmm的引數,讓我們求出造成這個觀測序列最有可能對應的狀態序列。比如說是(healthy,healthy,fever)還是(healthy,healthy,healthy),等等,這裡有3的3次方27種可能~

致謝:皓宇,德川,繼豪,施琦

馬爾科夫模型與隱馬爾科夫模型

隨機過程 是隨時間而隨機變化的過程。又稱為隨機函式。馬爾科夫模型 vmm 它描述了一類重要的隨機過程。乙個系統有有限個狀態集s 隨時間推移,該系統將同某一狀態轉移到另一狀態。q s1,s2,sn 為一隨機變數序列,隨機變數取值為狀態集s中的乙個狀態,設時間t時狀態為qt。對系統的描述通常是給出當前時...

隱馬爾科夫模型

隱馬爾科夫 hiddenmarkov model 簡稱為hmm,hmm資料相當豐富,推薦參見 hmm學習最佳範例與崔曉源的部落格 一文,本文只對hmm進行簡要介紹,然後說明開源ghmm實現在linux環境的搭建,hmm的開源實現有眾多不同語言的實現。馬爾科夫模型 一階馬爾科夫模型假設為 1 t l時...

隱馬爾科夫模型

一 介紹 introduction 我們通常都習慣尋找乙個事物在一段時間裡的變化模式 規律 這些模式發生在很多領域,比如計算機中的指令序列,句子中的詞語順序和口語單詞的因素修咧等等,事實上任何領域中的一系列事件都有可能產生有用的模式。考慮乙個簡單的例子,有人試圖通過一片海藻推斷天氣 民間傳說告訴我們...