语音识别学习日志 2019-7-15 语音识别基础知识准备4 {Baun-Welch算法}
HMM 前向算法(Forward Algorithm)詳細(xì)解釋參考:?http://www.52nlp.cn/hmm-learn-best-practices-five-forward-algorithm-1
http://www.52nlp.cn/hmm-learn-best-practices-five-forward-algorithm-2
http://www.52nlp.cn/hmm-learn-best-practices-five-forward-algorithm-3
http://www.52nlp.cn/hmm-learn-best-practices-five-forward-algorithm-4
后向算法(Backward Algorithm詳細(xì)解釋參考:http://www.52nlp.cn/hmm-learn-best-practices-seven-forward-backward-algorithm-1
http://www.52nlp.cn/hmm-learn-best-practices-seven-forward-backward-algorithm-2
http://www.52nlp.cn/hmm-learn-best-practices-seven-forward-backward-algorithm-3
http://www.52nlp.cn/hmm-learn-best-practices-seven-forward-backward-algorithm-4
http://www.52nlp.cn/hmm-learn-best-practices-seven-forward-backward-algorithm-5
?
HMM模型參數(shù)解是HMM模型使用中的最復(fù)雜的一個(gè)問(wèn)題。
HMM模型參數(shù)求解概述
HMM模型參數(shù)求解根據(jù)已知的條件可以分為兩種情況。
第一種情況較為簡(jiǎn)單,就是我們已知D個(gè)長(zhǎng)度為T(mén)的觀測(cè)序列和對(duì)應(yīng)的隱藏狀態(tài)序列,即是已知的,此時(shí)我們可以很容易的用最大似然來(lái)求解模型參數(shù)。
假設(shè)樣本從隱藏狀態(tài)轉(zhuǎn)移到的頻率計(jì)數(shù)是,那么狀態(tài)轉(zhuǎn)移矩陣求得為:
?? ,?
假設(shè)樣本隱藏狀態(tài)為且觀測(cè)狀態(tài)為的頻率計(jì)數(shù)是,那么觀測(cè)狀態(tài)概率矩陣為:
? ,?
?假設(shè)所有樣本中初始隱藏狀態(tài)為的頻率計(jì)數(shù)為C(i),那么初始概率分布為:
??可見(jiàn)第一種情況下求解模型還是很簡(jiǎn)單的。但是在很多時(shí)候,我們無(wú)法得到HMM樣本觀察序列對(duì)應(yīng)的隱藏序列,只有D個(gè)長(zhǎng)度為T(mén)的觀測(cè)序列,即是已知的,此時(shí)我們能不能求出合適的HMM模型參數(shù)呢?這就是我們的第二種情況,也是我們本文要討論的重點(diǎn)。它的解法最常用的是鮑姆-韋爾奇算法,其實(shí)就是基于EM算法的求解,只不過(guò)鮑姆-韋爾奇算法出現(xiàn)的時(shí)代,EM算法還沒(méi)有被抽象出來(lái),所以我們本文還是說(shuō)鮑姆-韋爾奇(Baun-Welch)算法。
Baum-Welch算法是為了解決HMM的參數(shù)估計(jì)問(wèn)題而提出的,而且是沒(méi)有標(biāo)注也就是HMM的狀態(tài)序列未知的參數(shù)估計(jì)問(wèn)題。具體來(lái)說(shuō),就是已知觀測(cè)序列O=(o1,o2,...,oT),估計(jì)模型參數(shù)λ=(A,B,π),使得在該模型下觀測(cè)序列概率P(O|λ)最大。由于狀態(tài)序列未知,因此這可以看做是一個(gè)含有隱變量的參數(shù)估計(jì)問(wèn)題,解決這一問(wèn)題的經(jīng)典算法就是EM算法。Baum-Welch算法就是EM算法在隱馬爾科夫模型學(xué)習(xí)中的具體體現(xiàn)。下面簡(jiǎn)單敘述一下該算法。
Baun-Welch算法原理
鮑姆-韋爾奇算法原理既然使用的就是EM算法的原理,那么我們需要在E步求出聯(lián)合分布基于條件概率的期望,其中為當(dāng)前的模型參數(shù),然后再M(fèi)步最大化這個(gè)期望,得到更新的模型參數(shù)λ。接著不停的進(jìn)行EM迭代,直到模型參數(shù)的值收斂為止。
首先來(lái)看看E步,當(dāng)前模型參數(shù)為, 聯(lián)合分布基于條件概率的期望表達(dá)式為:
 ?
在M步,我們極大化上式,然后得到更新后的模型參數(shù)如下:?????
???????????????????????????????????????????????????????????????????????????
?通過(guò)不斷的E步和M步的迭代,直到收斂。下面我們來(lái)看看鮑姆-韋爾奇算法的推導(dǎo)過(guò)程。
Baun-Welch算法的推導(dǎo)
我們的訓(xùn)練數(shù)據(jù)為,其中任意一個(gè)觀測(cè)序列,其對(duì)應(yīng)的未知的隱藏狀態(tài)序列表示為:.
? ? ? ? ? ? ?首先看鮑姆-韋爾奇算法的E步,我們需要先計(jì)算聯(lián)合分布的表達(dá)式如下:
??????????????????????????????????????????????????
?????????????我們的E步得到的期望表達(dá)式為:
?????????????????????????????????????????????????? ? ?????
??????????????在M步我們要極大化上式。由于,而是常數(shù),因此我們要極大化的式子等價(jià)于:
???????????????????????????????? ? ? ? ???????????????????????
??????????????我們將上面的表達(dá)式帶入我們的極大化式子,得到的表達(dá)式如下:
?????????????????????????????? ? ? ? ? ??????????????????????????
??????????????我們的隱藏模型參數(shù),因此下面我們只需要對(duì)上式分別對(duì)A,B,Π求導(dǎo)即可得到我們更新的模型參數(shù).
??????????????首先我們看看對(duì)模型參數(shù)Π的求導(dǎo)。由于Π只在上式中括號(hào)里的第一部分出現(xiàn),因此我們對(duì)于Π的極大化式子為:
??????????????????????????????????????????? ? ? ???????????
? ? ? ? ? ? ??由于還滿足,因此根據(jù)拉格朗日子乘法,我們得到要極大化的拉格朗日函數(shù)為:
?????????????????????????????????????????????????????
?????????????其中,為拉格朗日系數(shù)。上式對(duì)求偏導(dǎo)數(shù)并令結(jié)果為0, 我們得到:
?????????????????????????????????????????????????????? ??
?????????????令i分別等于從1到N,從上式可以得到N個(gè)式子,對(duì)這N個(gè)式子求和可得:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
??????????????從上兩式消去,得到的表達(dá)式為:
???????????????????????????????????????????????
?????????????由前向概率的定義可得:
?????????????????????? ? ????????????????????????????????
?????????????因此最終我們?cè)贛步的迭代公式為:
????????????????????????????? ? ? ? ? ?????????????????????????
?????????????現(xiàn)在我們來(lái)看看A的迭代公式求法。方法和Π的類(lèi)似。由于A只在最大化函數(shù)式中括號(hào)里的第二部分出現(xiàn),而這部分式子可以整理為:
????????????????????????? ? ????????????????
?????????
?由于還滿足。和求解類(lèi)似,我們可以用拉格朗日子乘法并對(duì)求導(dǎo),并令結(jié)果為0,可以得到的迭代表達(dá)式為:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
???????
?給定模型λ和觀測(cè)序列O,在時(shí)刻t處于狀態(tài),且時(shí)刻t+1處于狀態(tài)的概率記為:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ?
而可以由前向后向概率來(lái)表示為:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
??從而最終我們得到的表達(dá)式如下:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
??????????
因此可得表達(dá)式:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ??有了的迭代公式,我們就可以迭代求解HMM模型參數(shù)了。
Baun-Welch算法流程總結(jié)?
這里我們概括總結(jié)下鮑姆-韋爾奇算法的流程。
? 輸入:?D個(gè)觀測(cè)序列樣本
? 輸出:HMM模型參數(shù)
1)隨機(jī)初始化所有的
2) 對(duì)于每個(gè)樣本,用前向后向算法計(jì)算
3)??更新模型參數(shù):
????????????
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
4) 如果的值已經(jīng)收斂,則算法結(jié)束,否則回到第2)步繼續(xù)迭代。
以上就是Baun-Welch算法的整個(gè)過(guò)程。
?????????????????????????????
??????????????????????????????????????????
?????????????????????????????????????????
 ?
總結(jié)
以上是生活随笔為你收集整理的语音识别学习日志 2019-7-15 语音识别基础知识准备4 {Baun-Welch算法}的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        