語音識別中,如何理解HMM是一個生成模型,而DNN是一個判別模型呢?


HMM 是生成模型,因為它對狀態序列本身的分布 P(X) 和給定狀態後觀測值的分布 P(Y|X) 都進行了建模。

DNN 是判別模型,因為它直接對給定觀測值後狀態的分布 P(X|Y) 進行建模。

在 HMM-DNN 這個框架中,DNN 代替了傳統上用於建模 P(Y|X) 的高斯混合模型。但 DNN 給出的分布是 P(X|Y) 的形式,所以需要使用貝葉斯公式轉換成 P(Y|X)。


請看圖:從GMM-HMM到DNN-HMM

數學過程:(看不懂的跳過這部分直接看最後的DNN-HMM vs GMM-HMM部分)

  • o=o_{t_{1}},o_{t_{2}},o_{t_{3}},...,o_{t_{n}} 是sequence of observations。

  • s=s_{t_{1}},s_{t_{2}},s
_{t_{3}},...,s
_{t_{n}} 是sequence of HMM states。

  • 語音識別過程:求解當觀察到序列o時,序列s的可能性P(s|o)最大的模型w

  • P(s|o)難求,於是利用貝葉斯公式,frac{P(o|s)P(s)}{P(o)} 改求P(o|s)

  • 其中所有P(o)都相等(我們觀察到各種序列的可能性都被認為是相同的),又因為我們比較的是P(s|o),既然每個P(s|o)都有相同的P(o),所以不需要計算P(o)。而P(o|s)是由聲學模型提供、P(s)是由語言模型提供。如黃sl所說,DNN-HMM整體是聲學模型。語言模型可以用DNN(一般為RNN)來訓練。RNN訓練的語言模型擁有生成文本的能力。
  • P(o|s)=P(s_{t_{2}}|s_{t_{1}})P(o_{t_{1}}|s_{t_{1}})...,懶得打了,也就是HMM鏈的transition probabilities和observation probabilities全部乘起來。

  • 傳統方法:高斯混合模型提供P(o_{t_{i}}|s_{t_{i}})的數值。
  • 當前方法:深層神經網路來提供P(o_{t_{i}}|s_{t_{i}})的數值,但是深層神經網路的輸出是P(s_{t_{i}}|o_{t_{i}})(分類任務:給予觀察,判斷所有HMM states的可能性),需要再次利用貝葉斯公式。

DNN-HMM vs GMM-HMM:利用DNN替換GMM來提供更好的observation probabilities。

HMM在這裡的作用是對其輸出alignment,可以也不用HMM,比如用CTC(Connectionist Temporal Classification)。用CTC的話,是同遞歸網路一起使用,即RNN-CTC。RNN的話又可以選擇LSTM或者GRU以及他們的變形避免梯度消失問題。


比較容易接受的理解方式是這樣的:

1. generative model里的generative是動詞generate的adj形式,所以一般的generative model本質上需要模擬一個物體是如何經過多個中間步驟而產生(generate)的,這導致generative model往往需要有一些額外的assumption,比如,中間步驟每一步可能有多少可能,數據可以假設成什麼概率分布,等等。對於每一個類,都需要做這樣的假設,而且需要知道先驗分布。

2. discriminative model的核心在於discriminate(區分)多個類。不用關心每個數據點是如何產生的,直接尋找多個class之間的分類界面,不需要過多的假設,不需要知道先驗分布。

HMM是典型的generative model,hidden state個數、數據的分布都需要假設,而且需要單獨訓練每個類;而相反,DNN不需要額外假設,上來就用BP優化。

所以一般來說discriminative model的效果比generative model效果好,除非用discriminative model沒法子直接解決問題。


本人是學圖像的,語音識別略有涉獵。答題偏頗之處還請知友指出。

首先,先說是不是再說為什麼。題主說的語音識別方法應該是指 DNN-HMM方法,然而,DNN在這裡是生成模型(Generative model),並不是判別模型(Discriminative model).DNN-HMM方法的提出實際上是為了代替GMM-HMM模型,因為DNN比GMM具有更好的特徵表達能力,從而藉助HMM對時序信號的建模能力達到識別的目的,而HMM需要GMM或者DNN所做的是估計條件概率P(q_{t}| o_{t} )進而利用貝葉斯公式估計似然概率P(o_{t}|q_{t}  ),因此DNN必須是概率生成模型,比如深度置信網路(DBN).

再之,題主將DNN理解成了判別模型,大概是因為對NN的認識停留在識別類似於一二三四的任務層面上,從而不能理解NN怎麼能生成概率呢?實際上就如我上面所說,DNN在這裡生成的是概率P(q_{t}| o_{t} ),DNN網路的輸入是特徵向量(即HMM的觀測序列),輸出的是各個狀態(在這裡一般是senone的狀態)的概率,(即訓練時狀態是DNN的label),比如生成狀態s_{1} 的概率是0.6,生成狀態s_{2} 的概率是0.12...所以這裡DNN還是概率模型,因為實際上DNN或者要乾的就是對觀測序列與(隱)狀態的概率分布關係進行建模,進而讓HMM對時序信號建模。

最後,有答主提出HMM是語音模型(acoustic model),而DNN是語言模型(language model),這個也是不對的。準確的來說,DNN-HMM整個模型才應該是acoustic model,而語言模型是對語音模型得到的音素(或者詞)序列結果進行建模,從而得到語法正確的我們人類可以理解的句子,典型的language model有N-Gram模型。

現在語音識別的技術也不只是GMM-HMM、DNN-HMM獨步天下了,百度和谷歌包括科大訊飛等公司等在這個領域也提出了很多的解決方案,比如LSTM-CTC等,還有待學習。

Reference:

[1] Yu D, Deng L. Automatic Speech Recognition[M]. Springer, 2012.

[2] Dahl G E, Yu D, Deng L, et al. Context-dependent pre-trained deep neural networks for large-vocabulary speech recognition[J]. IEEE Transactions on Audio, Speech, and Language Processing, 2012, 20(1): 30-42.


在語音識別中,DNN是作為acoustic model的,它是為了從音頻信號中識別出有哪些音素,而HMM是作為語言模型的,它你已經得到了DNN的結果,也就是音素來決定這些音素構成那些單詞或者句子。


理解descriptive model 跟 generative model的不同角度:

1. generative model嘗試從training data中recover原數據的分布,而descriptive model則是直接從training data中擬合原數據分布

2. generative model通過計算prior 與 likelihood,使用bayes 公式間接求後驗,而descriptive model則是使用training data直接求後驗

...


推薦閱讀:

如何高效地調整PID參數?
機器學習「判定模型」和「生成模型『有什麼區別?
機器學習論文的疑惑,求教?
設計embedding維數的時候有什麼講究?
一個演算法工程師的日常是怎樣的?

TAG:機器學習 | 語音識別 |