隱馬爾可夫模型和隱含馬爾可夫模型的訓練


概率論的發展從相對靜態的隨機變量到相對動態的隨機過程。

所謂隨機過程,就是隨着時間的變化狀態轉移的過程。

也就是說每一個時刻都對應着一個狀態。(這個時刻的)狀態到(下一個時刻的)狀態的改變的過程,就是過程。

所謂隨機是指,某一個時刻的狀態是不能夠確切的知道的(動態的,隨機的)所以說是隨機的。

馬爾可夫鏈(馬爾可夫)就是根據隨機過程提出的一種假設

那么他是怎么假設的呢?

該過程中,在給定當前知識或信息的情況下,過去(即當前以前的歷史狀態)對於預測將來(即當前以后的未來狀態)是無關的

 
隱含馬爾可夫模型(HMM)

 

根據輸出的m1,m2,m3....來找到最合適的s1,s2,s3.....(這個過程也稱為解碼)

(s1,s2,代表“1”時刻的狀態,“2”時刻的狀態,這是個概括,具體時刻的狀態是什么,有個能是m1,m2,m3,m4。。的其中一個

舉個例子,比如有好多個袋子,袋子里有許多不同顏色球,並且每個袋子里球的顏色的概率分布是不同的。

現在隨意選擇一個袋子,初始狀態概率,從袋子里選擇一個球,記錄顏色,這個顏色就是表現出來的(m1,m2,m3,m4)狀態,所選擇的袋子就相當於的s1(si)

比如,紅色m1,黃色m2,藍色m3,綠色m4,第一次選擇的是紅色m1,那么p(m1|s1)  就是發射概率(生成概率)p(mi|si).

下一次又隨意選擇了一個袋子s2,從中任意摸出一個球m2,p(s2|s1)就是狀態轉移概率p(si|si-1

這兩個參數就是馬爾可夫模型的參數,估計和計算這兩個參數的過程稱之為模型的訓練,挺可愛的名字吧~

我又想了下HMM和馬爾可夫的區別(馬爾可夫也稱可視馬爾可夫,和隱含是反義詞)

見文思意,可視馬爾可夫指的是,狀態轉移的過程是可視的,可以知道的,上面的例子就是說從一個袋子到下一個袋子,選擇哪一個袋子是知道的。官方一點,狀態轉移序列,狀態轉移過程是知道的。

而HMM是不知道選擇的是哪一個袋子,HMM知道的只是,具體什么顏色m1,m2,m3,m4..

我們只能通過看到球的顏色來推測S1,S2,S3....選擇了哪一個袋子(解碼,前面那個圖片倒着推)

換一句話說,我們只能通過看到球的顏色來推測,狀態轉移概率p(si|si-1),發射概率(生成概率)p(mi|si),初始狀態概率

為了表示方便用A表示轉移概率p(si|si-1) B:發射概率(生成概率)p(mi|si)  c初始概率。

重申一下,A,B被稱為HMM的參數,估計和計算這兩個參數的過程稱之為模型的訓練

先說一下,圍繞HMM模型有3個基本問題

1,求觀察序列(給定一個模型(A,B,C),求特定的輸出序列(m1,m2...))

2,給定(A,B,C)和1觀察序列,求S1,S2,S3...

3,估計HMM參數(模型的訓練

1,用Forward-BarkWard算法可以解決

2,用 維特比算法可以解決

3,用鮑牧-韋爾奇算法

我們這次討論3,3,用鮑牧-韋爾奇算法

鮑牧-韋爾奇算法,

首先找到一租能夠產生輸出序列O的模型參數,稱為M0,(顯然是存在這個模型的,因為轉移概率和輸出概率是均勻分布的,模型可以產生任何輸出O)

接着我們要找一個更好的模型M1,假設解決了

1,求觀察序列(給定一個模型(A,B,C),求特定的輸出序列(m1,m2...))

2,給定(A,B,C)和1觀察序列,求S1,S2,S3...

不但可以算出這個模型產生O的概率P(O|M0),而且可以根據這個模型產生O的所有可能的路徑(記錄了每個狀態經過多少次si,到達了哪些狀態si+1,輸出了哪些符號O),以及這些路徑的概率,由此就可以知道發射概率和轉移概率了,這兩個參數構成了另一個稱為新的模型M1。

可以證明P(O|M1)>P(O|M0)

接着從M1,出發找到一個更好的模型M2,一直找到模型的質量不再提高為止,這個算法每一次都是不斷的估計,使得輸出概率最大化,這個過程稱為期望最大化EM。

哎,,,,就說這么多,剩下的下次再說(EM,維特比,和Forward-BarkWard)。

這些都是自己想的,不知道對不對,希望指正。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM