隱馬爾科夫模型 EM模型 混合理解

2021-08-30 11:31:04 字數 2690 閱讀 5555

隱馬爾科夫主要在於「隱」字,因為其中有乙個狀態是看不到的,比如我們有三個不同的骰子,你怎麼根據你看到最終得到的點數序列推算出各個點數是哪個骰子投擲出來的?也就是說我們之前遇到的模型一般都是由x如何得到y,但是現在是x先得到了z,然後再根據z得到了y,但是z我們是不知道,也無法直接得到的,所以我們要解決這個問題。目前主流描述為:由乙個隱藏的馬爾科夫鏈隨機生成不可觀測的狀態隨機序列,然後再根據這個狀態隨機序列,生成可觀測的序列。

可能你聽了上面的概念還有些不理解,接下來我還是先把需要的理論列一下,然後根據乙個例子進行通俗的解釋。

主要包括五個元素:可觀測序列,狀態序列,初始狀態分布π,狀態轉移矩陣a,觀測概率分布b。

其中的關係:(幫助後續理解例子中的關係)

我們一般如何描述乙個隱馬爾科夫模型,一般來說   隱馬爾科夫模型=(a,b,π),a,b,π就是該模型的引數,就類似logstic regression 中的權重 w 類似。

那麼可觀測序列和狀態序列以及上述三個引數之間的關係呢? 

a,和π確定了隱藏的馬爾科夫鏈,生成了狀態序列,其中狀態序列在和b進行運算就得到了觀測序列。

該例子來自於統計學習方法,方便大家下去對照理解。

各盒子的紅白球個數

盒子(box)

b1b2

b3b4

紅球數536

8白球數57

42抽球過程描述:開始先從4個盒子裡以等概率隨機選取乙個盒子,從這個盒子中隨機抽出乙個球,記錄其顏色後放回。然後從當前盒子轉移到下乙個盒子:規則為:如果當前盒子是盒子1,那麼下乙個盒子一定是盒子2或者3,如果當前盒子是盒子2,那麼分別以概率0.4和0.6轉移到左邊或者右邊的盒子,如果當前盒子是盒子4,那麼各以0.5的概率停留在盒子4或者轉移到盒子3;確定轉移的盒子之後,再從該盒子中隨機抽取乙個球,記錄其顏色後放回,如此重複5次,得到球的觀測序列:

q=在這個過程中,以為觀察者智慧型看到球的最後抽取出來的顏色,看不到球是哪個盒子中取出的。因此抽取盒子該序列是隱藏的。

那麼好了,根據上述的描述,我們來對應下上述的引數和名詞吧:

初始狀態分布π:也就是初始的狀態,上面提到「從4個盒子裡以等概率隨機選取乙個盒子」,因此:

初始狀態分布π=

狀態轉移矩陣a:狀態轉移就是從乙個狀態轉移到下乙個時刻的狀態,這裡指的是從當前時刻的盒子轉移到下一時刻的盒子。根據上面的描述,可以知道狀態轉移的概率,比如當前是盒子1,那麼下一時刻轉移到盒子2的概率就是1,其餘的都是0。因此我們可以推導出狀態轉移矩陣a:

盒子b1

b2b3

b4盒子b101

00b20.4

00.60b3

00.4

00.6b40

00.5

0.5觀測概率分布b:上面我們提到了觀測序列是根據(觀測概率分布b和狀態序列生成的),因此很容易得到觀測概率分布b的矩陣,也就是當我們的狀態序列中某一時刻乘以觀測分布矩陣就可以得到觀測序列的某一時刻,eg:假如我們知道了當前要抽取的盒子為盒子1,那麼我們可以根據盒子裡面球的個數知道將要得到的觀測狀態為紅球的概率為0.5,白球的狀態也為0.5。

紅球白球

盒子b1

0.50.5

b20.3

0.7b3

0.60.4

b40.8

0.2好了,這就是隱馬爾科夫模型,包括三個引數:(a,b,π),並且包含了兩個狀態,接下來的問題就圍繞著這幾個引數和狀態展開,無非就是根據誰來求解誰。接下來就很自然的匯出了隱馬爾科夫的3個基本問題。

(1)、概率計算問題:給定模型計算在模型.

此處的問題就可以用前向或者後向演算法來實現,直接說概念可能有點難以理解,簡單來說就是利用模型的引數和傳遞的關係乙個乙個來計算最終狀態的概率,然後在進行累加便可。

(2)、學習問題:已知觀測序列o,估計模型,使得在該模型下觀測序列概率最大。即用極大似然估計的方法估計引數。

其中在學習問題中有一種解法就是利用em演算法(這裡叫 baum-welch演算法),下面現將em演算法進行解讀

em演算法:

em演算法就是含有隱變數的概率模型引數的極大似然估計法。所以em演算法可以很好的解決該問題(簡直就是量身設計)。em演算法主要分為兩步,e步:求期望,m步:求極大值。但是這裡需要求解極大似然估計函式,因為沒有解析解,所以只能通過迭代的方法,不斷的逼近解,就像logistic regression中求權重w一樣(腦補w3如何由w2得到,w2又如何由w1求得),所以可以說em演算法適用於求解該問題的一種迭代演算法(一般來說需要用到em演算法的問題都具有1、含有隱變數2、式子裡面有積分)

最主要的就是q函式方程的建立,得到q函式以後e m兩步就可以知道如何求得了.

收斂性:可以保證估計的序列收斂到穩定點,但是不保證收斂到極大值點。

(3)、**問題:也成為解碼問題,已知模型求當給定觀測序列時,計算最有可能的對應的狀態序列。

該問題最有名的乙個演算法就是維位元演算法(viterbi),該演算法是乙個動態規劃問題,當最終求解到最後乙個狀態時,在進行往回推,一步步的根據概率值從而對應相應的狀態,回推到頭的時候所有的狀態序列也就推導出來了。

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

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

隱馬爾科夫模型

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

隱馬爾科夫模型

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