久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

GMM

 htxu91 2014-06-18

本文簡明講述GMM-HMM在語音識別上的原理,建模和測試過程,。這篇blog只回答三個問題:

1. 什么是Hidden Markov Model,?

HMM要解決的三個問題:

1) Likelihood

2) Decoding

3) Training

2. GMM是神馬?怎樣用GMM求某一音素(phoneme)的概率,?

3. GMM+HMM大法解決語音識別

3.1 識別

3.2 訓練

3.2.1 Training the params of GMM

3.2.2 Training the params of HMM



首先聲明我是做視覺的不是做語音的,,迫于**需要24小時速成語音。上網(wǎng)查GMM-HMM資料中文幾乎為零,,英文也大多是paper,。苦苦追尋終于貌似搞懂了GMM-HMM,,感謝語音組老夏(http://weibo.com/ibillxia)提供資料給予指導,。本文結(jié)合最簡明的概括還有自己一些理解應運而生,,如有錯誤望批評指正。


====================================================================



1. 什么是Hidden Markov Model,?


ANS:一個有隱節(jié)點(unobservable)和可見節(jié)點(visible)的馬爾科夫過程(見詳解),。

隱節(jié)點表示狀態(tài),可見節(jié)點表示我們聽到的語音或者看到的時序信號,。

最開始時,,我們指定這個HMM的結(jié)構(gòu),訓練HMM模型時:給定n個時序信號y1...yT(訓練樣本), 用MLE(typically implemented in EM) 估計參數(shù):

1. N個狀態(tài)的初始概率

2. 狀態(tài)轉(zhuǎn)移概率a

3. 輸出概率b

--------------

  • 在語音處理中,,一個word由若干phoneme(音素)組成,;
  • 每個HMM對應于一個word或者音素(phoneme)
  • 一個word表示成若干states,每個state表示為一個音素


用HMM需要解決3個問題:

1). Likelihood: 一個HMM生成一串observation序列x的概率< the Forward algorithm>

其中,,αt(sj)表示HMM在時刻t處于狀態(tài)j,,且observation = {x1,...,xt}的概率

aij是狀態(tài)i到狀態(tài)j的轉(zhuǎn)移概率,,

bj(xt)表示在狀態(tài)j的時候生成xt的概率,,







2). Decoding: 給定一串observation序列x,找出最可能從屬的HMM狀態(tài)序列< the Viterbi algorithm>

在實際計算中會做剪枝,,不是計算每個可能state序列的probability,,而是用Viterbi approximation:

從時刻1:t,只記錄轉(zhuǎn)移概率最大的state和概率,。

記Vt(si)為從時刻t-1的所有狀態(tài)轉(zhuǎn)移到時刻t時狀態(tài)為j的最大概率

為:從時刻t-1的哪個狀態(tài)轉(zhuǎn)移到時刻t時狀態(tài)為j的概率最大,;

進行Viterbi approximation過程如下:


然后根據(jù)記錄的最可能轉(zhuǎn)移狀態(tài)序列進行回溯:





3). Training: 給定一個observation序列x,訓練出HMM參數(shù)λ = {aij, bij}  the EM (Forward-Backward) algorithm

這部分我們放到“3. GMM+HMM大法解決語音識別”中和GMM的training一起講







---------------------------------------------------------------------


2. GMM是神馬,?怎樣用GMM求某一音素(phoneme)的概率,?

2.1 簡單理解混合高斯模型就是幾個高斯的疊加。,。,。e.g. k=3



fig2. GMM illustration and the probability of x



2.2 GMM for state sequence 

每個state有一個GMM,包含k個高斯模型參數(shù),。如”hi“(k=3):

PS:sil表示silence(靜音)

fig3. use GMM to estimate the probability of a state sequence given observation {o1, o2, o3}


其中,,每個GMM有一些參數(shù),就是我們要train的輸出概率參數(shù)


fig4. parameters of a GMM

怎么求呢,?和KMeans類似,,如果已知每個點x^n屬于某每類 j 的概率p(j|x^n),則可以估計其參數(shù):

 ,, 其中 


只要已知了這些參數(shù),,我們就可以在predict(識別)時在給定input sequence的情況下,計算出一串狀態(tài)轉(zhuǎn)移的概率。如上圖要計算的state sequence 1->2->2概率:


fig5. probability of S1->S2->S3 given o1->o2->o3








---------------------------------------------------------------------

3. GMM+HMM大法解決語音識別

<!--識別-->

我們獲得observation是語音waveform, 以下是一個詞識別全過程:

1). 將waveform切成等長frames,,對每個frame提取特征(e.g. MFCC), 

2).對每個frame的特征跑GMM,,得到每個frame(o_i)屬于每個狀態(tài)的概率b_state(o_i)



fig6. complete process from speech frames to a state sequence


3). 根據(jù)每個單詞的HMM狀態(tài)轉(zhuǎn)移概率a計算每個狀態(tài)sequence生成該frame的概率; 哪個詞的HMM 序列跑出來概率最大,就判斷這段語音屬于該詞


宏觀圖:


fig7. Speech recognition, a big framework

(from Encyclopedia of Information Systems, 2002)




<!--訓練-->

好了,,上面說了怎么做識別,。那么我們怎樣訓練這個模型以得到每個GMM的參數(shù)和HMM的轉(zhuǎn)移概率什么的呢?




①Training the params of GMM

GMM參數(shù):高斯分布參數(shù):

從上面fig4下面的公式我們已經(jīng)可以看出來想求參數(shù)必須要知道P(j|x),即,,x屬于第j個高斯的概率。怎么求捏,?


fig8. bayesian formula of P( j | x )

根據(jù)上圖 P(j | x), 我們需要求P(x|j)和P(j)去估計P(j|x). 

這里由于P(x|j)和P(j)都不知道,,需要用EM算法迭代估計以最大化P(x) = P(x1)*p(x2)*...*P(xn):

A. 初始化(可以用kmeans)得到P(j)

B. 迭代

    E(estimate)-step: 根據(jù)當前參數(shù) (means, variances, mixing parameters)估計P(j|x)

    M(maximization)-step: 根據(jù)當前P(j|x) 計算GMM參數(shù)(根據(jù)fig4 下面的公式:)

 , 其中 





②Training the params of HMM

前面已經(jīng)有了GMM的training過程,。在這一步,,我們的目標是:從observation序列中估計HMM參數(shù)λ;

假設(shè)狀態(tài)->observation服從單核高斯概率分布:,,則λ由兩部分組成:




HMM訓練過程:迭代

    E(estimate)-step: 給定observation序列,,估計時刻t處于狀態(tài)sj的概率 

    M(maximization)-step: 根據(jù)重新估計HMM參數(shù)aij. 

其中,


E-step: 給定observation序列,,估計時刻t處于狀態(tài)sj的概率 

為了估計, 定義: t時刻處于狀態(tài)sj的話,,t時刻未來observation的概率。即

這個可以遞歸計算:β_t(si)=從狀態(tài) si 轉(zhuǎn)移到其他狀態(tài) sj 的概率aij * 狀態(tài) i 下觀測到x_{t+1}的概率bi(x_{t+1}) * t時刻處于狀態(tài)sj的話{t+1}后observation概率β_{t+1}(sj)

即:


定義剛才的為state occupation probability,,表示給定observation序列,,時刻t處于狀態(tài)sj的概率P(S(t)=sj | X,λ) 。根據(jù)貝葉斯公式p(A|B,C) = P(A,B|C)/P(B|C),,有:



由于分子p(A,B|C)為


其中,,αt(sj)表示HMM在時刻t處于狀態(tài)j,且observation = {x1,...,xt}的概率,;

: t時刻處于狀態(tài)sj的話,,t時刻未來observation的概率;

finally, 帶入的定義式有:


好,,終于搞定,!對應上面的E-step目標,只要給定了observation和當前HMM參數(shù) λ,,我們就可以估計了對吧 (*^__^*) 






M-step:根據(jù)重新估計HMM參數(shù)λ:

對于λ中高斯參數(shù)部分,,和GMM的M-step是一樣一樣的(只不過這里寫成向量形式):


對于λ中的狀態(tài)轉(zhuǎn)移概率aij, 定義C(Si->Sj)為從狀態(tài)Si轉(zhuǎn)到Sj的次數(shù),有


實際計算時,,定義每一時刻的轉(zhuǎn)移概率為時刻t從si->sj的概率:


那么就有:


把HMM的EM迭代過程和要求的參數(shù)寫專業(yè)點,,就是這樣的:


PS:這個訓練HMM的算法叫 Forward-Backward algorithm。





一個很好的reference:點擊打開鏈接





歡迎參與討論并關(guān)注本博客和微博Rachel____Zhang, 后續(xù)內(nèi)容繼續(xù)更新哦~






    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多