李航《统计学习方法》之HMM隐马尔可夫模型
李航《統(tǒng)計(jì)學(xué)習(xí)方法》之HMM隱馬爾可夫模型
文章目錄
- 前言
- 一、基本概念
- 1、語言描述:
- 2、符號(hào)表示
- 3、基本假設(shè)
- 4、例子
- 5、隱馬爾可夫模型解決的三個(gè)基本問題
- 二、概率計(jì)算算法
- 1、向前算法
- 算法:
- 例題
- 2、向后算法
- 三、學(xué)習(xí)算法
- 1、監(jiān)督學(xué)習(xí)算法
- 背景
- 方法
- 2、無監(jiān)督學(xué)習(xí)
- Baum-Welch算法
- 四、預(yù)測(cè)算法
- 1、近似算法
- 2、維特比算法
前言
隱馬爾可夫在語音識(shí)別、自然語言處理、生物信息、模式識(shí)別有廣泛的應(yīng)用,然而對(duì)于隱馬爾科夫的流程需要深入的學(xué)習(xí)和探究,才好對(duì)馬爾科夫場(chǎng),條件隨機(jī)場(chǎng)有更深入的掌握的理解。
一、基本概念
1、語言描述:
該模型是關(guān)于時(shí)序的概念模型,由一個(gè)隱藏的馬爾科夫鏈隨機(jī)生成不可觀測(cè)的狀態(tài)序列,再由狀態(tài)生成觀測(cè),隨后產(chǎn)生觀測(cè)隨機(jī)序列的過程。
- 序列的每一個(gè)位置又可以看成一個(gè)時(shí)刻
2、符號(hào)表示
(1)Q表示所有狀態(tài)集合,q表示某一狀態(tài);
(2)V表示所有可能的觀測(cè)集合,v表示每一次具體觀測(cè)。
(可以直觀看到,比如觀測(cè)紅白球問題,V就是紅球白球兩種觀測(cè)可能)
(3)I表示狀態(tài)序列,i表示具體狀態(tài);
(4)O表示對(duì)應(yīng)狀態(tài)序列的觀測(cè)序列,o表示具體;
- 以上四項(xiàng)問題中已知
(5)A狀態(tài)轉(zhuǎn)移矩陣(方陣),aij是矩陣元素表示在前一時(shí)刻是qi的條件下,當(dāng)前時(shí)刻為qj的概率。(前面狀態(tài)為qi后面狀態(tài)為qj)
(6)B觀測(cè)概率矩陣(不一定是方陣),bj(k)為其中元素表示在狀態(tài)是qj的條件下,生成觀測(cè)是vk的概率。
(7)π是初始狀態(tài)概率矩陣,等于時(shí)刻一時(shí)狀態(tài)是qi的概率。
- 隱馬爾可夫模型λ=(A, B, π)(A和π決定了隱藏的馬爾科夫鏈,生成狀態(tài)序列,B決定如何從狀態(tài)到觀測(cè))
3、基本假設(shè)
(1)齊次馬爾科夫:在任意時(shí)刻的狀態(tài)只依賴于前一時(shí)刻的狀態(tài),與其他時(shí)刻無關(guān)
(2)觀測(cè)獨(dú)立性:任意時(shí)刻的觀測(cè)只依賴于當(dāng)前時(shí)刻,與其他時(shí)刻無關(guān)。
4、例子
說明:四個(gè)盒子隨機(jī)選一個(gè)盒子,在在該盒子中隨機(jī)選一個(gè)球,記錄顏色,放回;下一步重復(fù),重復(fù)五次以后得到一個(gè)觀測(cè)序列O=(紅,紅,白,白,紅)
- 解答過程:
確定狀態(tài)集合Q={盒子1,盒子2,盒子3,盒子4}
觀測(cè)集合V={紅,白}
觀測(cè)序列和觀測(cè)序列長(zhǎng)度為5
初始概率分布為π=(0.25, 0.25,0.25, 0.25)轉(zhuǎn)置
狀態(tài)轉(zhuǎn)移概率分布A=
備注:行數(shù)表示上次對(duì)應(yīng)的狀態(tài)數(shù),列數(shù)表示本次對(duì)應(yīng)的狀態(tài)數(shù)。
5、隱馬爾可夫模型解決的三個(gè)基本問題
(1)概率問題:模型λ下觀測(cè)序列O出現(xiàn)的概率P(O|λ)(2)學(xué)習(xí)問題:觀測(cè)序列概率P(O|λ)最大,用極大似然估計(jì)的方法估計(jì)參數(shù)。
(3)預(yù)測(cè)問題:給定觀測(cè)序列,求最有可能的對(duì)應(yīng)的狀態(tài)序列。
二、概率計(jì)算算法
- 觀測(cè)序列的向前算法、向后算法
1、向前算法
算法:
-
輸入模型λ,觀測(cè)序列O
-
輸出觀測(cè)序列概率P(O|λ)
(1)初始化前向概率,是初始狀態(tài)和初始觀測(cè)的聯(lián)合概率
(2)遞推式,計(jì)算到下一時(shí)刻部分觀測(cè)序列,且在下一時(shí)刻處于狀態(tài)qi的前向概率
其中
表示到t時(shí)刻觀測(cè)到O1,O2…Ot并在t時(shí)刻處于狀態(tài)qj而在t+1時(shí)刻處于qi的聯(lián)合概率。
繼而求和是為了在時(shí)刻t的所有可能N個(gè)狀態(tài)qj求和。
例題
考慮盒子和球模型λ,狀態(tài)集合Q={1,2,3} 觀測(cè)集合V={紅,白}
A=
a11(0.5)表示上次選中了盒1,這次又選中盒1,
a12(0.2)表示上次選中了盒1,這次選中了盒2
…
aij中i表示上次選中哪個(gè),j表示本次選哪個(gè)
B=
0.5表示盒子1里面是紅球的概率,剩下的0.5是白球的概率
0.4是盒2中紅球,0.6是盒2中的白球
0.7是盒3中紅球,0.3是盒3中的白球
π=
初始選中各個(gè)盒子的概率。
T=3;O =(紅,白,紅),用前向算法計(jì)算P(O|λ )。
解答過程:
已知狀態(tài)集合、觀測(cè)集合、狀態(tài)轉(zhuǎn)移矩陣,初始狀態(tài)π陣
(1) [說明:下標(biāo)表示時(shí)刻,括號(hào)內(nèi)部表示狀態(tài),盒1盒2盒3]
a1(1)=0.20.5=0.1
a1(2)=0.40.4=0.16
a1(3)=0.4*0.7=0.28
(2) [備注:a21表示上次是盒2這次轉(zhuǎn)向盒1,整個(gè)大括號(hào)里面表示的是在第一次是紅球條件下第二次又抽到相應(yīng)的盒子的概率]
a2(1)=[a1(1)*a11+a1(2)a21+a1(3)a31]b1(2)=
[0.10.5+0.160.3+0.280.2]*0.5=0.077
a2(2)=[a1(1)*a12+a1(2)a22+a1(3)a32]b2(2)=
[0.10.5+0.160.3+0.280.2]*0.6=0.1104
a2(3)=[a1(1)*a13+a1(2)a23+a1(3)a33]b3(2)=
[0.10.5+0.160.3+0.280.2]*0.3=0.0606
(3)a3(1)=[a2(1)*a11+a2(2)*a21+a2(3)*a31]*b1(1)=0.04187
a3(2)=[a2(1)*a12+a2(2)*a22+a2(3)*a32]*b2(1)=0.03551
a3(3)=[a2(1)*a13+a2(2)*a23+a2(3)*a33]*b3(1)=0.05284
(4)P(O|λ)=0.04187+0.03551+0.05284=0.13022
總結(jié):前向算法的核心就是已知最終呈現(xiàn)的結(jié)果,既要考慮每次試驗(yàn)的所有可能結(jié)果,又要考慮每次試驗(yàn)場(chǎng)景狀態(tài)的轉(zhuǎn)換,例如上個(gè)例子中的3個(gè)盒子的轉(zhuǎn)換。每一次遞推,要保證當(dāng)下結(jié)點(diǎn)的狀態(tài)是與所要求得所的某一概率所對(duì)應(yīng)的狀態(tài)是一致的,這樣,當(dāng)求馬爾科夫模型下觀測(cè)序列所出現(xiàn)的概率時(shí),只需要對(duì)最后一步的迭代進(jìn)行求和即可。
2、向后算法
于后向算法,直接以盒子(隱)和球(觀測(cè))的實(shí)例為例推導(dǎo):
(1)初始化第三次取球?yàn)榧t球時(shí)候,即最終時(shí)刻所有狀態(tài)的概率為1
(2)逆推迭代倒數(shù)第二次觀察情況為白球的情況
備注:表達(dá)式少打了一個(gè)Σ符號(hào)。
注意狀態(tài)轉(zhuǎn)移陣中的元素aij對(duì)應(yīng)的下標(biāo)的對(duì)應(yīng)關(guān)系,每個(gè)表達(dá)式固定的是i,這是與前向算法不同的地方,比如第一個(gè)式子中,aij i=1表示從盒1轉(zhuǎn)移到某盒,而前向算法中固定的是j,j=1表示的則是從某盒轉(zhuǎn)移到盒1.觀測(cè)概率矩陣則是對(duì)應(yīng)T次(最后一次)所觀測(cè)的值,也就是說第二次的后向概率要滿足第三次的觀測(cè)概率。也要乘以滿足下次觀測(cè)的后向概率。
逆推迭代倒數(shù)第一次觀察情況為紅球的情況
(3)計(jì)算加和
可以發(fā)現(xiàn)前向算法和后向算法的結(jié)果相同
————————————————
后向算法例題來自
原文鏈接:https://blog.csdn.net/asdfsadfasdfsa/article/details/80913187
三、學(xué)習(xí)算法
1、監(jiān)督學(xué)習(xí)算法
背景
已知的訓(xùn)練數(shù)據(jù)包含S個(gè)長(zhǎng)度相同的觀測(cè)序列和對(duì)應(yīng)的狀態(tài)序列{(O1,I1),(O2,I2)…(Os,Is)},接下來用極大似然估計(jì)法來估計(jì)隱馬爾可夫模型的參數(shù)
方法
1、轉(zhuǎn)移概率aij的估計(jì):樣本在t時(shí)刻處于狀態(tài)i,時(shí)刻t+1轉(zhuǎn)移到狀態(tài)j的頻數(shù)/所有頻數(shù)之和
2、觀測(cè)概率bj(k)估計(jì):樣本中狀態(tài)為j并觀測(cè)為k的頻數(shù)/所有頻數(shù)之和
3、初始狀態(tài)概率Πi的估計(jì)為s個(gè)樣本中初始狀態(tài)為qi的頻率
注🐖:因?yàn)樾枰斯?biāo)注,代價(jià)較大,所以就會(huì)使用無監(jiān)督學(xué)習(xí)
2、無監(jiān)督學(xué)習(xí)
Baum-Welch算法
四、預(yù)測(cè)算法
1、近似算法
2、維特比算法
總結(jié)
以上是生活随笔為你收集整理的李航《统计学习方法》之HMM隐马尔可夫模型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle的空闲等待事件,Oracle
- 下一篇: mysql innodb表移植_mysq