深度神經網路為什麼能大幅度提高語音識別的準確率?

2011年,微軟宣稱,他們的研究人員通過引入DNN使得在特定語料庫上的語音識別準確率得到了大幅提高,性能的相對改善約為30%。


首先要說明的是,在一些專業語音識別實驗室中普遍認為,DNN的引入對語音識別錯誤率的下降大約在10%左右,而不是30%。事實上,各種神經網路模型從上世紀80年代起就早已在語音識別中大量使用,並且普遍有比較好的效果(但因為優化技術的限制往往並不穩定,而訓練神經網路的計算量在當時的硬體條件下也非常可觀)。事實上在200x年以後DARPA的主流語音識別項目中的尖端評測系統都已經廣泛使用hybrid(使用神經網路取代GMM)或tandem(使用神經網路為GMM提取特徵)技術。而在最初的DNN相關工作中,主要的方法是在已有的hybrid或tandem方法中,將神經網路增加幾層(一般超過5層)hidden layer,並且把輸出層的節點從上下文無關的phone單元替換成GMM中常用的上下文相關triphone單元(主要是會顯著增加計算量)。有趣的是,捷克的BUT大學在更早的語音識別研究中就已經逐漸的把神經網路加到了5層。微軟2011年的論文中比較的是在switchboard數據集上一個來自IBM的純GMM-HMM系統。這是一個合理的基線系統,因為IBM在早期的switchboard評測中獲得了世界第一,但這並不能代表2010年後語音識別系統的最高水平,因為這不是一個tandem或hyrbid系統。當時世界上的許多研究人員都認為純粹的GMM-HMM系統就足夠好,我想這主要是因為當時最流行的HTK語音工具包中不含有神經網路功能(雖然劍橋內部早有大量HTK與神經網路結合的研究及系統)。

話題拉回為什麼神經網路對語音識別會比傳統GMM-HMM更好的問題。這裡我推薦一篇H. Ney大神的文章:

Context-Dependent MLPs for LVCSR: TANDEM, Hybrid or Both?

其中經過仔細的比較試驗認為神經網路效果更好的原因主要是神經網路沒有任何對輸入特徵的先驗假設。當神經網路模型更強大、更複雜,就可以處理更豐富的特徵(比如在語音識別中,可以給定當前語音幀前後的很多語音幀)。其實這大概正是神經網路模型幾十年來起起落落卻一直廣受關注的主要原因。而相比之下,一般的GMM模型都只使用對角協方差矩陣(因為全協方差矩陣參數太多),這樣就要求了輸入特徵的各個維度是獨立的隨機變數,於是通常只對GMM模型輸入當前語音幀(25ms),這樣計算每一時刻HMM觀測概率時候GMM的信息量就遠少於神經網路的(比如DNN通常使用前後9幀或11幀;RNN使用20幀;very deep CNN甚至使用到30幀以上等)。很多相關實驗等也可以驗證這一點,比如我們曾在劍橋的MLSALT碩士的課程中給學生布置過一個比較DNN與GMM的實驗。當DNN與GMM的輸入都只是當前語音幀(給定對GMM優化的MFCC特徵)時,在TIMIT數據集(當然這個數據集僅做教學使用,得到的科研結論通常並不可靠)上,DNN的結果甚至差過GMM的。其它一些研究中也發現,如果不重新設計特徵,而直接把經典的分類器,如SVM等,在已有的任務中替換成DNN,得到的效果有可能會差很多。另外在一次關於Alpha Go的討論中,某位機器學習大神就直接總結過,Alpha Go成功一個重要原因是使用了大量的神經網路(如CNN)提取的特徵。另外,如果僅比較語音識別中使用的GMM和DNN,GMM還有很難有效建模非線性流形附近的數據的問題。可以參見Hinton大神的文章:

Deep Neural Networks for Acoustic Modelling in Speech Recognition


推薦閱讀:

python中文預處理?
手機智能語言助手開發難度如何?
基於中文文本的情感分析發展到了什麼水平(研究,商業應用,領先公司等角度)?
C++解析Word、Excel、PPT、PDF等格式的文件用什麼庫?

TAG:自然語言處理 | 語音識別 | 深度學習DeepLearning |