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