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