HMM之Baum-Welch算法
注:本文中所有公式和思路來自于鄒博先生的《機器學習升級版》,我只是為了加深記憶和理解寫的本文。
前面介紹過了HHM模型結(jié)構(gòu)和HMM基本問題中的概率計算問題,本文介紹HMM基本問題中的參數(shù)學習問題。
如果訓練數(shù)據(jù)包括觀測序列和狀態(tài)序列,則HMM的學習非常簡單,是監(jiān)督學習,如果只有觀測序列的話,那么HMM的學習是需要使用EM算法的,是非監(jiān)督學習。
監(jiān)督學習:
根據(jù)大數(shù)定理(頻率的極限是概率),我們可以輕易的得出下邊的這幾個結(jié)論:
初始概率:
轉(zhuǎn)移概率:
觀測概率:
上邊給出的上個結(jié)論可以直接從給定的數(shù)據(jù)中數(shù)出來,沒有任何難度。
非監(jiān)督學習:
我們回顧一下EM算法的框架吧:
所有的觀測數(shù)據(jù)寫成:O=(o1,o2...oT),所有隱數(shù)據(jù)寫成:I=(i1,i2...iT),完全數(shù)據(jù):(O,I)=(o1,o2..oT,i1,i2...iT),完全數(shù)據(jù)的對數(shù)似然函數(shù)是:lnP(O,I | λ)
假設(shè)λ~是HMM參數(shù)的當前估計值,λ是待估計的參數(shù):
我們回顧一下EM的過程:首先需要一個預(yù)先給定的λ~參數(shù),然后帶入P(I | O, λ~),然后將P(I | O, λ~)帶入Q(λ,λ~)中,對對數(shù)似然函數(shù)lnP(O,I | λ)求期望,找到能使似然函數(shù)期望最大的新的λ~,并將新的λ~再次帶回P(I | O, λ~),不斷重復(fù)這個過程。
我們在前一篇文章中提到過暴力求解,并得到了最終的求解公式:
Q()函數(shù)可以寫成:
既然是要極大化Q,求得參數(shù)π、A、B
由于這三個參數(shù)分別在這三個項中,那么我們就可以分別極大化。
極大化初始概率:
因為πi滿足加和為1,那么我們就可以利用拉格朗日乘子法:
接著對π求偏導(dǎo):
接著我們可以對i求和:
最后將γ代回去得:
注意:這個γ不是超參數(shù)的γ,而是我們之前求過的這么個小東西:
極大化轉(zhuǎn)移概率和觀測概率:
使用拉格朗日乘子法:
同理可得:
這幾個結(jié)果就是可以直接寫代碼的,學習問題解決了,就剩最后一個預(yù)測問題了,下一篇文章就會介紹Viterbi算法。
總結(jié)
以上是生活随笔為你收集整理的HMM之Baum-Welch算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于手机的IMEI号问题的一些总结
- 下一篇: 关于在arcgis中导入excel,并在