HMM——前向后向算法
1. 前言
解決HMM的第二個(gè)問題:學(xué)習(xí)問題, 已知觀測(cè)序列,需要估計(jì)模型參數(shù),使得在該模型下觀測(cè)序列 P(觀測(cè)序列 | 模型參數(shù))最大,用的是極大似然估計(jì)方法估計(jì)參數(shù)。根據(jù)已知觀測(cè)序列和對(duì)應(yīng)的狀態(tài)序列,或者說只有觀測(cè)序列,將學(xué)習(xí)過程分為監(jiān)督和無監(jiān)督學(xué)習(xí)方法
主要參考《李航統(tǒng)計(jì)學(xué)習(xí)》、《PRML》
2. 監(jiān)督學(xué)習(xí)方法
給定了s個(gè)長度相同的觀測(cè)序列和對(duì)應(yīng)的狀態(tài)序列(相當(dāng)于有s個(gè)樣本,所有樣本長度一樣)
然后我們需要做的就是統(tǒng)計(jì)三種頻率:
① 在樣本中,從t 時(shí)刻的各狀態(tài)轉(zhuǎn)移到 t+1時(shí)刻的各狀態(tài)的頻率,比如第一個(gè)狀態(tài)轉(zhuǎn)移到第二個(gè)狀態(tài)共有3次,第2個(gè)狀態(tài)轉(zhuǎn)移到第三個(gè)狀態(tài)共有10次,等。。。。。
據(jù)此能夠推導(dǎo)出狀態(tài)轉(zhuǎn)移概率
② 在樣本中,每對(duì)(某個(gè)狀態(tài)j,某個(gè)觀測(cè)k)出現(xiàn)的頻率,就是狀態(tài)為j 觀測(cè)為k的概率,即混淆矩陣
③在樣本中,統(tǒng)計(jì)s個(gè)樣本中初始狀態(tài)為?的頻率就是初始狀態(tài)概率πi
缺點(diǎn)就是:監(jiān)督學(xué)習(xí)需要人工標(biāo)注訓(xùn)練數(shù)據(jù),代價(jià)高
3.前向-后向算法
3.1 目標(biāo)
其它稱呼有:Baum-Welch算法
主要針對(duì)只有觀測(cè)序列沒有對(duì)應(yīng)的狀態(tài)序列的情況
這一部分在《統(tǒng)計(jì)學(xué)習(xí)方法》中推導(dǎo)的非常好,主要利用的是拉格朗日乘子法求解
已知:訓(xùn)練數(shù)據(jù)是S個(gè)長度為T的觀測(cè)序列,沒有對(duì)應(yīng)的狀態(tài)序列
求解:學(xué)習(xí)隱馬爾科夫的參數(shù),包括:轉(zhuǎn)移矩陣、混淆矩陣、初始概率
思路:
因?yàn)镠MM中引入了隱狀態(tài),所以設(shè)隱狀態(tài)序列為I,那么HMM就可以當(dāng)做一個(gè)具有隱變量的概率模型:
其實(shí)這個(gè)式子就有點(diǎn)像一種邊緣概率:
只不過將這個(gè)概率加了一個(gè)條件,是在HMM的模型參數(shù)下計(jì)算的,就變成了條件概率。
求解的時(shí)候利用E-M算法求解即可(EM中,E代表expectation,是求期望;M代表的是maximization,求極大;合起來EM算法就被稱為期望值最大化算法)
3.2 EM步驟簡述
摘自《統(tǒng)計(jì)學(xué)習(xí)方法》
輸入:觀測(cè)變量數(shù)據(jù)Y,隱變量數(shù)據(jù)Z,聯(lián)合分布 P(Y, Z | θ),條件分布 P( Z | Y , θ)
輸出:模型參數(shù) θ
步驟:
① 選擇參數(shù)初值,開始迭代
② E步:記為第 i 次迭代參數(shù)θ的估計(jì)值,在第 i+1 次迭代E步,計(jì)算
第二個(gè)等式的第二項(xiàng)是給定觀測(cè)數(shù)據(jù)Y和當(dāng)前的估計(jì)參數(shù)下隱變量數(shù)據(jù)Z的條件概率分布
③ M步:求使得極大化的θ,確定第 i+1 次迭代的參數(shù)的估計(jì)值
④ 重復(fù)第②和③步,直到收斂
3.3求解HMM模型參數(shù)
(1) 確定完全數(shù)據(jù)的對(duì)數(shù)似然函數(shù)
觀測(cè)數(shù)據(jù):
隱藏?cái)?shù)據(jù):
完全數(shù)據(jù):
完全數(shù)據(jù)的對(duì)數(shù)似然函數(shù)就是
②EM算法之E:求Q函數(shù)
式子中是HMM模型參數(shù)的當(dāng)前估計(jì)值,λ 是要極大化的HMM模型參數(shù)
對(duì)于前面一半,根據(jù)概率有向圖的聯(lián)合概率分布,我們知道
兩式相乘就可以得到:
根據(jù)P(O,I | λ)可以將 Q 函數(shù)可以改寫為:
式中的求和是對(duì)所有訓(xùn)練數(shù)據(jù)的序列長度T進(jìn)行的
③ EM算法之M:極大化Q函數(shù)求解模型參數(shù)π、A、B
觀察E步驟的式子發(fā)現(xiàn)三個(gè)參數(shù)剛好分別在三項(xiàng)中,所以單獨(dú)對(duì)每一項(xiàng)求解就行了
第一步先求π:
注意,π只與初始狀態(tài)有關(guān),第一項(xiàng)可以寫成
意思就是在模型參數(shù)已知的條件下,初始時(shí)候的各種狀態(tài)以及對(duì)應(yīng)的初始觀測(cè)的概率的和
限制條件就是對(duì)于某種觀測(cè),初始的所有狀態(tài),其概率和為1,例如,第一天觀測(cè)為晴天時(shí)候,海藻的干燥、濕潤、潮濕三個(gè)狀態(tài)概率和為1
那么就可以根據(jù)拉格朗日乘法計(jì)算了,設(shè)
那么令其偏導(dǎo)數(shù)等于零
對(duì) i 求和得到
再帶回偏導(dǎo)為0的式子中得到
第二步求轉(zhuǎn)移矩陣A
將第二項(xiàng)改寫為
找到約束條件為
意思就是上一個(gè)隱狀態(tài)到當(dāng)前所有隱狀態(tài)的轉(zhuǎn)移概率和為1,比如今天是晴天,那么到明天得隱狀態(tài)轉(zhuǎn)移:晴天->多云,晴天->雨天,晴天->晴天的概率和為1
依舊根據(jù)拉格朗日乘子法得到
第三步求混淆矩陣
將第三項(xiàng)改寫為
找到約束條件為
也就是說一個(gè)隱狀態(tài)對(duì)應(yīng)的所有觀測(cè)概率和為1,比如天氣為晴天的時(shí)候,對(duì)應(yīng)的海藻干燥、濕潤、潮濕的概率和為1
但是有一個(gè)需要注意的是只有當(dāng)觀測(cè)狀態(tài)為當(dāng)前所求導(dǎo)的狀態(tài)時(shí)候,對(duì)的偏導(dǎo)數(shù)才不為0,其實(shí)也就相當(dāng)于的時(shí)候才是偏導(dǎo)不為0,書中用表示,最終偏導(dǎo)以后求得:
3.4 Baum-Welch算法
該求得都求了,那么具體的HMM模型參數(shù)估計(jì)算法就是:
輸入:觀測(cè)數(shù)據(jù)
輸出:HMM的模型參數(shù)
(1) 初始化:
對(duì)n=0,選取得到模型
(2) 遞推,對(duì)n=1,2,...
分別計(jì)算上面的三個(gè)偏導(dǎo)
(3) 計(jì)算到最后一次迭代就得到最終結(jié)果了
后續(xù)分析一下HMM的代碼再另行添加
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的HMM——前向后向算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CSS——inline-block属性
- 下一篇: Unity3D之UGUI学习笔记(二):