隱馬爾可夫模型三個問題的求解 一

2021-06-28 14:20:00 字數 2201 閱讀 8522

本文主要參考《hmm 學習最佳範例》。

先回顧一下,上節我們就硬幣的例子提出了三個問題:

給定上述模型,觀察到的結果(硬幣的正反面)為o=的概率是多少?

若給定上述的觀察結果,那麼最可能的狀態序列(硬幣序號)是什麼?

a、b、π未知的情況下,如何根據 o 得到它們?

問題一是個估算問題,p(o|λ),可用向前演算法和向後演算法解決;

問題二是根據觀察序列反向找出最可能的狀態序列,是個解碼問題,p(o,q|λ),q 是某狀態,最常用的是 viterbi演算法;

問題三實際上是個引數估計或求解的問題,或者說是個學習問題,通過訓練一步步優化引數,找到使得p(o|λ)最大的那個引數,最常用的是 baum-welch演算法。

這裡,我們提出乙個更加恰當的例子:

有乙個宅男,不愛出門,也不願看看窗戶外面的世界。但他有個特殊的習慣,通過觀察海藻來推測外面的天氣情況。天氣一共有3種情況 s:(晴天、多雲、雨天);海藻一共有4種情況v:(幹、稍幹、潮濕、濕潤)。海藻的情況是宅男直接觀察到的,而天氣的情況並沒有直接觀察到,而是隱藏狀態,是他推測出來的。其關係如圖所示:

另外,我們給出其他三個條件:

天氣的狀態轉移矩陣a:

天氣的初始概率向量π:

天氣狀態和海藻觀察情況的混淆矩陣 b:

現在,這個 hmm 已經構建好了,如上一節所說,是乙個五元組λ=(s,v,a,b,π)。

我們使用乙個隱馬爾科夫模型(hmm)對這個例子建模。這個模型包含兩組狀態集合和三組概率集合:

給定λ,要計算某個觀察序列 o的概率,最不費腦子的辦法就是窮舉法。

如圖,若求序列(dry,damp,soggy)的概率,只要把每種可能的狀態序列都算一下概率,最後相加即可。一共有3**3=27種。

總的概率是:pr(dry,damp,soggy | hmm) = pr(dry,damp,soggy | sunny,sunny,sunny) + pr(dry,damp,soggy | sunny,sunny ,cloudy) + pr(dry,damp,soggy | sunny,sunny ,rainy) + . . . . pr(dry,damp,soggy | rainy,rainy ,rainy)

其中每項的求解很簡單,利用初始狀態向量π、狀態轉移矩陣 a 和混淆矩陣 b,通過相乘就能得到。

可以看到,這種做法的代價是比較昂貴的,省了腦力就會相應的耗費體力,上帝是公平的。

下面提出一種頗費腦細胞,但代價比較小的演算法:前向演算法。

首先,定義區域性概率這個概念:它是到達上圖網格中間某個狀態的概率,它是所有到達這個狀態的可能路徑的概率求和的結果。

例如,對於 t=2時cloudy的區域性概率:

有三個路徑,分別計算每條路徑的概率,再求和即可。相信聰明的你已經想到,我們正是利用遞推的方式來求解最後結果:

首先計算 t=1的情況,然後就算 t=i 的情況(利用 t=i-1),最後得出最末時刻的概率。

其中,j 表示三個天氣狀態中的某一種;α1(j)表示 t=1時,天氣狀態為 j 時,得到觀察為 k1的概率;等式的右邊,表示初始狀態下某天氣的概率乘以該天氣下得到 k1觀察的概率。

這個式子中加入了狀態轉移矩陣的元素,就是 aij,用來遞推計算,總的形式和上式一致。

最後所求概率,是乙個加和,由於遞推結束,不需要狀態轉移矩陣了。

這裡有乙個實際的計算過程可供參考。

為什麼叫「前向演算法」呢?從上面可以看出,這個演算法的本質,是根據前t時的情況計算t+1時的情況,是乙個逐漸向前推進的過程。

時間有限,今天先寫這些,預告:

解碼問題:viterbi 演算法

學習問題:baum-welch 演算法

隱馬爾可夫模型(一) 馬爾可夫模型

馬爾可夫模型 markov model 描述了一類隨機變數隨時間而變化的隨機函式。考察乙個狀態序列 此時隨機變數為狀態值 這些狀態並不是相互獨立的,每個狀態的值依賴於序列中此狀態之前的狀態。乙個系統由n個狀態s 隨著時間的推移,該系統從乙個狀態轉換成另乙個狀態。q 為乙個狀態序列,qi s,在t時刻...

標註問題以及隱馬爾可夫模型

序列標註問題 給定乙個句子x1 xn,生成乙個與之對應的序列y1 yn.如詞性標註。序列標註的目標是從訓練資料中學習乙個從句子到標註序列的對映。詞性標註的乙個難點是歧義。英文中的許多單詞可以有不同的詞性。另外乙個問題是訓練語料不可能窮盡所有的單詞,如何確定訓練語料中沒出現過單詞的詞性同樣值得研究。詞...

隱馬爾可夫模型(一) 基本概念

隱馬爾可夫模型 要了解隱馬爾可夫模型,首先要了解什麼是馬爾可夫模型。網上的乙個關於天氣的例子能夠幫助我們理解馬爾可夫模型。1.馬爾可夫模型 假設我們可以通過當前的天氣狀況 未來的天氣狀況,同理,我們也可以通過之前一些天的天氣狀況 今天的天氣狀況。這種假設成立的條件是 這個模型的每乙個狀態都只依賴於前...