隱馬爾科夫模型
機(jī)器學(xué)習(xí)最重要的任務(wù)筑凫,是根據(jù)一些已觀察到的證據(jù)(例如訓(xùn)練樣本)來對感興趣的未知變量(例如類別標(biāo)記)進(jìn)行估計和推測。概率圖模型提供了一種描述框架,將學(xué)習(xí)任務(wù)歸結(jié)于計算變量的概率分布腺律,在概率模型中,利用已知變量推測未知變量的分布稱為推測宜肉。具體來說匀钧,假定所有關(guān)心的變量集合為Y,可觀測變量的集合為O谬返,其他變量的集合為R之斯,“生成式”模型考慮聯(lián)合概率分布P(Y,R,O),“判別式模型”考慮條件分布P(Y,R|O),給定以組觀測變量值,推斷就是由P(Y,R,O)或P(Y,R|O)得到條件概率分布P(Y|O)遣铝。
直接利用概率求和規(guī)則去消去變量R顯然是不可行佑刷,因為即使每個變量僅有兩種取值的簡單問題莉擒,其復(fù)雜度也是,另一方面瘫絮,屬性變量之間往往存在復(fù)雜的聯(lián)系涨冀。因此概率模型的學(xué)習(xí),即基于訓(xùn)練來估計變量分布的參數(shù)往往相當(dāng)困難麦萤。為了便于研究高效的推斷和學(xué)習(xí)算法鹿鳖,需有一套能簡潔緊湊地表達(dá)變量之間的關(guān)系。
概率圖模型是一類用圖表達(dá)變量相關(guān)關(guān)系的概率模型壮莹,它以圖為表示工具翅帜,最常見的是用一個結(jié)點表示一個或一組隨機(jī)變量,結(jié)點之間的邊表示變量間的概率相關(guān)關(guān)系命满,即“變量關(guān)系圖”涝滴,根據(jù)邊的性質(zhì)不同,概率圖模型大致可分為良率:第一類是使用有向無環(huán)圖表示變量間的依賴關(guān)系胶台,稱為有向圖模型或貝葉斯網(wǎng)歼疮;第二類是使用無向圖表示變量間的相關(guān)關(guān)系,稱為無向圖模型或馬爾科夫網(wǎng)诈唬。
隱馬爾科夫模型(HMM)是結(jié)構(gòu)最簡單的動態(tài)貝葉斯網(wǎng)腋妙,這是一種著名的有向圖模型,主要用于時序數(shù)據(jù)建模讯榕,在語音識別骤素、自然語言處理等領(lǐng)域有廣泛應(yīng)用。
一愚屁、隱馬爾科夫模型的基本概念
1.隱馬爾科夫模型的定義
隱馬爾科夫模型是關(guān)于時序的概率模型济竹,描述由一個隱藏的馬爾科夫鏈隨機(jī)生成不可觀測的狀態(tài)的隨機(jī)序列,再由各個狀態(tài)生成一個觀測從而產(chǎn)生觀測隨機(jī)序列的過程霎槐。隱藏的馬爾科夫鏈隨機(jī)生成的狀態(tài)序列送浊,稱為狀態(tài)序列。每個狀態(tài)生成一個觀測丘跌,而由此產(chǎn)生的觀測的隨機(jī)序列袭景,稱為觀測序列。序列的每一個位置又可以看作是一個時刻闭树。
隱馬爾科夫模型由初始概率分布耸棒、狀態(tài)轉(zhuǎn)移概率分布以及觀測概率分布確定。
設(shè)是所有可能的狀態(tài)的集合报辱,V是所有可能的觀測集合:
其中与殃,N是可能的狀態(tài)數(shù),M是可能的觀測數(shù)
是觀測長度為T的狀態(tài)序列,是對應(yīng)的觀測序列:
A是狀態(tài)轉(zhuǎn)移概率矩陣:
其中
是時刻處于狀態(tài)的條件下載時刻轉(zhuǎn)移到狀態(tài)的概率
是觀測概率矩陣:
其中
是初始狀態(tài)概率向量:
其中
是時刻處狀態(tài)的概率
隱馬爾科夫模型由初始狀態(tài)概率向量米奸、狀態(tài)轉(zhuǎn)移概率矩陣和觀測概率矩陣決定狀態(tài)序列。其中決定狀態(tài)序列爽篷,決定觀測序列悴晰。因此,隱馬爾科夫模型可以用三元符號表示逐工。
稱為隱馬爾科夫三要素:
狀態(tài)轉(zhuǎn)態(tài)概率矩陣與初始狀態(tài)概率向量確定了隱藏的馬爾科夫鏈膨疏,生成不可觀測的狀態(tài)序列。觀測概率矩陣確定了如何從狀態(tài)生成觀測钻弄,與狀態(tài)序列綜合確定了如何查產(chǎn)生觀測序列。
隱馬爾科夫模型作了兩個基本假設(shè):
- 齊次馬爾科夫假設(shè)者吁,假設(shè)隱藏的馬爾科夫鏈在任意時刻t的狀態(tài)值依賴于前一時刻的狀態(tài)窘俺,與其他時刻的狀態(tài)無關(guān),也與時刻無關(guān)
- 觀測獨立性假設(shè)复凳,即假設(shè)任意時刻的觀測只依賴于該時刻的馬爾科夫鏈的狀態(tài)瘤泪,與其他觀測及狀態(tài)無關(guān)。
下面看一個隱馬爾科夫的例子
盒子與球模型假設(shè)有4個盒子育八,每個盒子里都裝有紅对途、白兩種顏色的球,盒子里的紅髓棋、白球數(shù)由表給出
盒子 | 1 | 2 | 3 | 4 |
---|---|---|---|---|
紅球數(shù) | 5 | 3 | 6 | 8 |
白球數(shù) | 5 | 7 | 4 | 2 |
按照下面的方法抽球实檀,產(chǎn)生一個球的顏色的觀測序列
- 開始,從4個盒子里以等概率隨機(jī)選取1個盒子按声,從這個盒子里隨機(jī)抽出1個球膳犹,記錄其顏色,放回:
- 然后签则,從當(dāng)前盒子隨機(jī)轉(zhuǎn)移到下一個盒子须床,規(guī)則是:如果當(dāng)前盒子1,那么下一個盒子一定是2渐裂;如果當(dāng)前盒子是2或3豺旬,那么分別概率0.4或0.6,轉(zhuǎn)移到左邊或右邊的盒子;如果當(dāng)前盒子是4柒凉,那么各自以0.5的概率停留在盒子4或者轉(zhuǎn)移到盒子3
- 確定轉(zhuǎn)移的盒子后族阅,再從這個盒子里隨機(jī)抽取一個球,記錄其顏色膝捞,放回
- 如此下去耘分,得到球的顏色觀測序列
在這個過程中,觀測者只能觀測到球的顏色序列,觀測不到球是從哪個盒子里取出的求泰,即觀測不到盒子的序列央渣。
盒子對應(yīng)狀態(tài),狀態(tài)集合是
球的顏色對應(yīng)觀測序列拔第,觀測的集合是
初始概率分布為
狀態(tài)概率分布為
觀測概率分布為
2.觀測序列生成過程
輸入:隱馬爾科夫模型场钉,觀測序列長度T
輸出:觀測序列
- 按照初始狀態(tài)分布產(chǎn)生狀態(tài)
- 令
- 按照狀態(tài)的觀測概率分布生成
- 按照狀態(tài)的狀態(tài)轉(zhuǎn)移概率分布產(chǎn)生狀態(tài)蚊俺,
- 令,如果,轉(zhuǎn)步3,否則終止逛万。
3.隱馬爾科夫3個基本問題
- 概率計算問題泳猬。給定模型和觀測序列,計算在模型下觀測出現(xiàn)的概率
- 學(xué)習(xí)問題宇植。已知預(yù)測序列得封,估計模型參數(shù),使得在該模型下觀測序列概率最大指郁,即用最大似然估計的方法估計參數(shù)
- 預(yù)測問題忙上,也稱解碼(decoding)參數(shù)。已知模型和觀測序列闲坎,求給定觀測序列條件概率最大狀態(tài)序列疫粥。即給定觀測序列,求最有可能的對應(yīng)的狀態(tài)序列
二腰懂、概率計算算法
1.前向算法
前向概率給定隱馬爾科夫模型手形,定義到時刻t部分觀測序列為且狀態(tài)為的概率為向前概率,記作
可以遞推地求得前向概率及觀測序列概率
算法
輸入:隱馬爾科夫模型悯恍,觀測序列
輸出:觀測序列概率
- 初值
- 遞推,對库糠,
- 終止
案例考慮盒子和球模型,狀態(tài)集合涮毫,觀測集合
設(shè)艘虎,試用前向算法計算
- 計算初值
- 遞推計算
- 終止
2.后向算法
后向算法給定隱馬爾科夫模型,定義在t時刻狀態(tài)為的條件下咒吐,從的部分觀測序列為的概率為后向概率野建,記作
可以引用遞歸的方法得到后向概率以及觀測序列概率
算法
輸入:隱馬爾科夫模型属划,觀測序列
輸出:觀測序列概率
- \beta_T(i) = 1,i =1,2,\dots,N
- 對 ,
利用前向概率和后向概率的定義可以將觀測序列概率統(tǒng)一寫成
3.一些概率與期望的計算
利用前向概率和后向概率,可以得到關(guān)于單個狀態(tài)和兩個狀態(tài)概率的計算公式
(1) 給定模型和觀測候生,在時刻t處于狀態(tài)的概率
記為
可以通過前向后向概率計算
由向前概率和向后概率定義可知
于是得到
(2).給定模型和觀測O同眯,在時刻t處于狀態(tài)且時刻處于狀態(tài)的概率
記作
可以通過前向后向概率基色
而
所以
(3).將和對對各時刻t求和可以得到一些有用的概率
- 在觀測O下狀態(tài)i出現(xiàn)的期望
- 在觀測O下狀態(tài)i轉(zhuǎn)移的期望
- 在觀測O下狀態(tài)i轉(zhuǎn)移到狀態(tài)j的期望
三、學(xué)習(xí)算法
隱馬爾科夫模型的學(xué)習(xí)唯鸭,根據(jù)訓(xùn)練數(shù)據(jù)包括預(yù)測序列和對應(yīng)的狀態(tài)序列還是只有預(yù)測序列须蜗,可分別由監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)實現(xiàn)。
1.監(jiān)督學(xué)習(xí)方法
假設(shè)已給訓(xùn)練數(shù)據(jù)包含S個長度相同的觀測序列和對應(yīng)的狀態(tài)序列目溉,那么可以利用極大似然估計法來看估計隱馬爾科夫模型的參數(shù)
(1)轉(zhuǎn)移概率的估計
設(shè)樣本中時刻處于狀態(tài)時刻轉(zhuǎn)移到狀態(tài)j的頻數(shù)為明肮,那么狀態(tài)狀態(tài)轉(zhuǎn)移的概率的估計是
(2)觀測概率的估計
設(shè)樣本中狀態(tài)為并觀測為的頻數(shù)是,那么狀態(tài)為j觀測為k的概率的估計是
(3)初始狀態(tài)概率的估計為S個樣本初始狀態(tài)為的頻率
由于監(jiān)督學(xué)習(xí)需要使用標(biāo)注的訓(xùn)練數(shù)據(jù)缭付,而人工標(biāo)注訓(xùn)練數(shù)據(jù)往往代價很高柿估,有時就會利用無監(jiān)督學(xué)習(xí)方法
2.Baum-Welch算法
假設(shè)給定訓(xùn)練數(shù)據(jù)只包含S個長度為T的觀測序列
而沒有對應(yīng)的狀態(tài)序列,目標(biāo)是學(xué)習(xí)隱馬爾科夫模型的參數(shù)陷猫。我們將觀測序列數(shù)據(jù)看作觀測數(shù)據(jù)O秫舌,狀態(tài)序列數(shù)據(jù)看作不可觀測的隱數(shù)據(jù)I,那么隱馬爾科夫模型事實上是一個含有一個隱變量的概率模型
它的參數(shù)學(xué)習(xí)可由EM算法實現(xiàn)
(1)確定完全數(shù)據(jù)的對數(shù)似然函數(shù)
所有觀測數(shù)據(jù)寫成烙丛,所有隱數(shù)據(jù)寫成。完全數(shù)據(jù)是羔味。完全數(shù)據(jù)的對數(shù)似然函數(shù)是
(2)EM算法的E步河咽,求Q函數(shù)
其中,是隱馬爾科夫模型參數(shù)的當(dāng)前估計值,是要極大化隱馬爾科夫模型參數(shù)
于是函數(shù)可以寫成
式中求和項都是對所有數(shù)據(jù)的序列總長度T進(jìn)行的。
(3)EM算法的M步:極大化函數(shù)求模型參數(shù)A,B,
由于要極大化式(1)中但丟地出現(xiàn)在3個項中所以只需對各項分別極大化
式(1)的第一項可以寫成
注意到滿足約束條件赋元,利用拉格朗日橙子法忘蟹,寫出拉格朗日函數(shù)
對其求偏導(dǎo)數(shù)并令結(jié)果為0
有
對i求和得到
則
式(1)的第二項可以寫成
應(yīng)用約束條件的拉格朗日乘子法可以求出
3.式(1)的第3項為
同樣用拉格朗日乘子法,約束條件搁凸,注意媚值,只有在時的偏導(dǎo)才不為0,以表示
四护糖、預(yù)測算法
1.近似算法
近似算法的想法是褥芒,在每個時刻t選擇在該時刻最有可能出現(xiàn)的狀態(tài),從而得到一個狀態(tài)序列嫡良,并將它作為預(yù)測的結(jié)果
給定隱馬爾科夫模型和觀測序列O锰扶,在時刻t處于狀態(tài)的概率是
在每一時刻t最有可能的狀態(tài)是
從而得到狀態(tài)序列
近似算法的一個優(yōu)點是計算簡單,其缺點是不能保證預(yù)測狀態(tài)整體上是最有可能的狀態(tài)序列寝受,因為預(yù)測的狀態(tài)序列可能有實際不發(fā)生的部分坷牛。事實上,上述辦法得到的狀態(tài)序列中可能存在轉(zhuǎn)移概率為0的相鄰狀態(tài)很澄,即對某些時京闰。盡管如此颜及,近似算法仍然是有用的
2.維特比算法
維特比算法實際上是用動態(tài)規(guī)劃(dynamic programming)解隱馬爾科夫模型預(yù)測問題,即用動態(tài)規(guī)劃求解概率最大路徑(最優(yōu)路徑)蹂楣。這時一條路徑對應(yīng)著一個狀態(tài)序列俏站。
根據(jù)動態(tài)規(guī)劃原理,最優(yōu)路徑有這樣的特性:如果最優(yōu)路徑在時刻t通過結(jié)點捐迫,那么這一條路徑從結(jié)點到終點的部分路徑乾翔,對于從到的所有可能的部分路徑來說,必須是最優(yōu)的施戴。因為假如不是這樣反浓,那么從到就有另一條更好的部分路徑存在,如果把它和從到達(dá)的部分路徑連起來赞哗,就會形成一條比原來的路徑更優(yōu)的路徑雷则,這是矛盾的。依據(jù)這一原理肪笋,我們只需從時刻t=1開始月劈,遞推地計算時刻t狀態(tài)為各部分路徑的最大概率,直至得到時刻t=T狀態(tài)為i各條路徑的最大概括藤乙。時刻t=T的最大概率即為最優(yōu)路徑的概率猜揪,最優(yōu)路徑的終結(jié)點也同時得到,之后坛梁,為了找出最優(yōu)路徑的各個結(jié)點而姐,從終結(jié)點開始,由后向前逐步得到結(jié)點划咐,得到最優(yōu)路徑拴念。這就是維特比算法
維特比算法
輸入:模型和觀測序列
輸出:最優(yōu)路徑
1.初始化
2.遞推,對
3.終止
4.最優(yōu)路徑回溯褐缠,對
求得最優(yōu)路徑