閱讀347 返回首頁    go 阿裏雲 go 技術社區[雲棲]


深度學習在語音識別中的聲學模型以及語言模型的應用

         過去 3 年,深度學習在各個領域取得較大突破,比如計算機視覺領域的物體識別、場景分類,語音分析等,並且其技術推廣和應用的速度超過人們預期,比如 Google 的廣告係統已經開始使用深度學習盈利,Twitter 也通過深度學習改善App 圖片及視頻內容服務體驗。那具體何為深度學習呢?深度學習是怎麼應用在上述的各個領域呢,下麵結合自身在語音識別的若幹年經驗,談談深度學習在語音識別中的具體應用。


0. 背景


         “深度學習”的概念在上個世紀便被提出,但Hinton、Lecun等人在2006年發表的論文讓“深度學習”重新煥發光彩,並使得相關的學術成果在實際應用中表現良好。它的靈感來自對人腦神經的研究,因此也稱為深度神經網絡“DNN”。這裏的“深度”並非指算法有內涵,而是指神經網絡層數多,因此也稱為多層結構學習算法(這幾種命名不完全對等,具體的差別涉及到學派)。實際中的“深度神經網絡”算法與大腦神經結構差別極大,因此深度神經網絡被稱為端到端的機器學習算法或者多層聯結算法或許更好些(聯結主義流派的說法)。

           基於深度神經網絡算法的重大影響工作的出現,是在2012年之後。比如Krizhevsky、Hinton等用深度學習大幅度提高了圖片分類的準確率,奠定了圖像分類模型“AlexNet”的地位;Dahl等大幅度提升了語音識別的準確率。

            聲學模型以及語言模型就像人的左右大腦一樣,沒有他們,語音識別係統就是一個空殼,毫無作用。


1. 深度學習與AM

     1.1 深度學習在AM中的應用與現狀


         傳統基於HMM的hybrid框架,例如:GMM-HMM,CD-DNN-HMM依然是工業界應用的主流技術,並且各種訓練算法以及工具都很成熟,例HTK,Kaldi,Sphinx,並且在很多工業界都有應用。

         目前學術研究的重點逐漸轉向End-To-End模型訓練。其中比較成熟的訓練方法是基於CTC準則的訓練。文獻報告結果顯示[21],LSTM-CTC模型識別準確度高於HMM-LSTM模型,識別速度更快。

基於Attention機製的End-To-End模型訓練成為研究熱點[22],也是Google,Microsoft等目前的研究熱點領域。但是目前據文獻報告,識別準確度差於LSTM-CTC模型。

         CNN技術重新得到重視[19][20],作為End-To-End中特征提取的重要一環。


    1.2 基於FSMN的AM


         FSMN[18],是由科大訊飛提出的一種基於DNN改進型網絡結構。在DNN的隱藏層中引入延時結構,將t-N~t-1時刻的隱藏層曆史信息作為下一層的輸入,從而引入了語音序列的曆史信息,同時避免了RNN訓練BPTT帶來的問題,如:梯度消逝,計算複雜度高等。



圖1 FSMN結構

         這種結構的設計是來源於Oppenheim的數字信號處理的部分[23],用無限長的脈衝響應濾波器(IIR)來模擬近似高階的有限脈衝響應濾波器(FIR)。因為RNN中的Recurrent層可以看作一階的IIR,它可以精確的被高階的FIR來近似模擬。在這種全連接的結構的基礎上再加上一些記憶單元,就如在FIR中延時單元一樣,這樣可以在前向計算的時候比純粹的RNN更加高效並穩定。正因為該記憶單元的存在,它可以將更長的上下文信息壓縮為一個固定長度的向量,這樣可以使模型能夠學到更多前後依賴的重要信息。


\

圖2 Recurrent layer 和 IIR

         FSMN另外一點創新的地方在於引入了Attention機製。核心思想在於模仿人類的思考行為,因為人類在思考問題的時候,一般會先考慮他經曆過的,或者聽過的事,另外聰明的人類也會根據已有的經驗來預測未來將要發生的事,結合這兩者,作出的決定將更加正確,更加有實效性。因此在FSMN中,也引入了Lookback以及Lookahead思想,但是兩者對當前的作用大小是不同的,因此需要計算二者的係數,這個係數就稱為Attention Coefficient。具體公式如下:


                 


其中,

是Attention函數的參數,詳細信息可以參考該論文[18],另外Recurrent的計算公式如下:                                                                                                          

其中N1和N2分別表示Lookback以及Lookahead的階數,

表示attention係數,可以很清晰的看出,該層所學習到的內容由曆史以及將來組成。

訓練的過程,跟大多數NN一樣,都是SGD準則,使用mini-batch,同時用GPU加速,過程不在贅述。

實驗結果如下表所示:

         

表1 FSMN與DNN,LSTM的對比

其中基線DNN模型是根據論文[24][25]訓練得到的,整體依然采用的CD-DNN-HMM框架。在狀態對齊的訓練過程中,依然采用標準的GMM-HMM框架,MLE準則。預訓練依然采用RBM策略。在DNN訓練的過程中,依然采用CE準則,BP更新誤差,網絡結構是6x2048,輸入特征是FB,每幀123維,上下窗長為11,DNN1的激活函數是sigmoid,DNN2采用的是ReLU。

         另外LSTM模型是根據論文[25][26][27]訓練得到的,其中cell數為2048,projection節點數為512,輸入依然是123維的FB特征,延遲5幀輸出,BPTT為16,minibatch為64,另外BLSTM是雙向的模型,BLSTM比LSTM多了3個hidden層,以及2048個cell,minibatch改為16,其他都一致。

         FSMN模型,其中sFSMN表示scalar FSMN,vFSMN表示vectorized FSMN,sFSMN的hidden層數為6,每層2048個節點,激活函數為ReLU,輸入為123維FB特征,上下窗為3,vFSMN中多了lookback以及lookahead參數,試驗中設為50。

從實驗結果來看,vFSMN的結果最優,比BLSTM絕對好0.3個點,另外訓練的速度是BLSTM的3倍。


2. 深度學習與LM

     2.1 基於Recurrent Neural Network的LM


         在討論RnnLM之前,不得不提現在依然處於統治地位的Ngram模型,Ngram是基於馬爾科夫假設(Markov Assumption):下一個詞的出現僅依賴於它前麵的一個或幾個詞。

假設下一個詞的出現依賴它前麵的一個詞,則有:

p(S)=p(w1)p(w2|w1)p(w3|w1,w2)...p(wn|w1,w2,...,wn-1)=p(w1)p(w2|w1)p(w3|w2)...p(wn|wn-1)

假設下一個詞的出現依賴它前麵的兩個詞,則有:

p(S)=p(w1)p(w2|w1)p(w3|w1,w2)...p(wn|w1,w2,...,wn-1)=p(w1)p(w2|w1)p(w3|w1,w2)...p(wn|wn-1,wn-2)

        縱觀Ngram的曆史,主要在機器翻譯,語音識別,拚寫糾錯,自動文摘等方麵應用的很廣泛,並取得了很好的效果,可是它本身也有一定的缺陷,比如數據稀疏性問題不能很好的解決,折扣平滑不夠魯棒,另外一個是嚴格的基於N階的馬爾可夫假設,限製了對更長曆史的記憶。

RNN模型是將每個詞語映射到一個Compact Contiuous Vector Space裏,並且使用Recurrent Connections 將過去更長時間的曆史連接起來,從而影響現在的輸出,這樣更貼近實際。

        RNN的結構一般是3層,輸入層,隱藏層和輸出層,其中輸入與輸出層的維數是和詞典裏詞的個數是一致的,隱藏層一般根據實際需要,可以設置為512或1024等,有時為了加速,還加入了Class層,即根據輸入的詞語先預測該詞所屬的類,然後在預測在該類裏麵的詞的概率大小,這樣可以減少矩陣運算。在論文[1][2][3]中還提出了OOS Nodes也是為了減少矩陣運算量,加快迭代。具體結構如下圖所示:

                                                                 

圖3 RNN 結構

         另外,在RNN訓練的過程中用到了BPTT算法[4],因為隱含層經過不斷的迭代,保留了N個隱含層的最新數據,根據微分鏈式法則,誤差需要一直傳遞下去                                                                                                                                        

圖4 BPTT 迭代

另外誤差準則,論文[5]中提到的有Cross Entropy

                                                             


Variance Regularisation

                                                             


以及Noise Contrastive Estimation

                                                            


         根據論文[5]的結果所示,從ppl以及wer的角度對比以上三種準則的效果如下表所示:

                                                     

表 2三種準則在50-best的rescoring的結果

         其中選用的訓練集為Fisher和AMI[8],總共大小14M,Rnn輸入層的節點數為33K,隱含層的節點數為512,輸出層為22K,選取常用詞匯構成,BPTT參數為5,即隻往下傳遞5層,總共迭代10次。

另外與傳統的Ngram對比結果如下:

                                                      

表3 與ngram對比的結果

其中3g,4g是用相同的語料,采用通用的工具srilm來訓練的,CRNN是基於Class的RNNLM[6][7]工具訓練的,FRNN是采用CUED-RNNLM[5]工具訓練的,都是基於CE準則。從表格中可以看出,FRNN的效果最好。


2.2 基於Long Short Term Memory的LM


         從RNN的結構以及訓練的過程來看,RNN的確比Ngram看到的曆史更長,利用的信息更多,另外在輸入層與隱含層之間的矩陣通過訓練後,每一列可以表示one-hot對應的詞向量,利用詞向量的方式,可以減少數據稀疏性的影響,因為Ngram對未出現的詞語是用很硬的折扣平滑方式來分配概率的,這樣做存在缺陷。

         更加細致的分析RNN的結構時,會發現,對於任意的連續的輸入,都結合上一次的曆史,進行相同的操作,也就是不管遇到什麼樣的詞(高頻的,低頻的,處於不同上下文的),都同樣的學習相關的曆史,而沒有選擇對它有重要影響的信息進行學習,導致沒有區分性與側重點,這跟我們生活很像,在生活中,我們並不是對待所有的事物,花同樣的精力去學習,肯定是有所側重,隻會花更大的精力學習對自己有重要影響的事,即選擇性的學習。

         LSTM[9][13]即是在這樣的思想的驅動下出現的。它比RNN在結構上了多了幾個門的概念,即輸入門,輸出門,遺忘門,分別控製對應的輸入輸出,以及決定著是否需要遺忘,結構如下:

                                                            

圖5 LSTM 神經元結構圖


與RNN結構對比,即是將原始hidden層替換為LSTM層,整體結構如下圖所示:

                                                           

圖6 基於LSTM的RNN的整體結構


         由於多了幾個門,在訓練階段即多了幾個矩陣相乘的運輸量,而且是每次迭代都會產生這種運算量,跟上麵的RNN訓練過程類似,但是在速度上慢了很多。

訓練過程中,權重的更新一般是按如下的公式:

                                                              

F是目標方程,一般情況下是根據最大似然準則來設定的,

是學習率,可以在訓練的過程中控製學習的速率,從而控製模型收斂的速率。誤差反向傳播依然用的是BPTT[10][11][12]的算法,以及SGD的策略,與RNN一致。在這裏麵學習率調節,直接影響著模型的優劣,以及模型是否收斂等,根據論文[9]所示,在訓練開始階段,可以設置大一些,經過幾輪迭代,可以根據在驗證集上的ppl的變化幅度,來相應的降低學習率[14]。

       NN語言模型一般是用於Lattice Decoding和Rescoring,一般情況下,Lattice結構是由前綴樹構成,在Lattice上每個Node的輸出都是唯一的,才可以采用NN語言模型解碼,另外結合Beam Pruning,以及Acoustic LM look ahead等算法,詳細內容可以參考論文[9][15][16][17]

下表是論文[9]中實驗用到的數據集:

                                                    

表4 實驗用到的數據集


與Kneser-Ney-Smothed 5gram模型,以及rnnlm 工具訓練出的模型在Dev以及Test上的效果對比如下:

                                                    

表5 各個模型下的ppl的對比


其中LSTM 的Hidden層節點數是300,Class層為1000,整個詞典大小為200K,從結果中,可以看出,LSTM模型的效果要比RNN[17]好10個點以上。
       最後由於本人水平有限,在理解剖析論文細節時,難免有不恰當之處,望各位專家多多指正。


3. 參考文獻

[1] J. Park, X. Liu, M.J.F. Gales, and P.C. Woodland, “Improved neural network based language modelling and adaptation”,Proc. Interspeech, 2010.

[2] H. Le, I. Oparin, A. Allauzen, J. Gauvain, and F. Yvon, “Struc-tured output layer neural network language models for speech recognition”, IEEE Trans Audio, Speech, and Language Pro-cessing, vol. 21, no. 1, pp. 197–206, 2013.

[3] X. Liu, Y. Wang, X. Chen, M.J.F. Gales, and P.C. Woodland,“Efficient lattice rescoring using recurrent neural network lan-guage models”, Proc. ICASSP, 2014.

[4] D.E. Rumelhart, G.E. Hinton, and R.J. Williams, Learningrepresentations by back-propagating errors, MIT Press, Cam-bridge, MA, USA, 1988.

[5] T. Mikolov, S. Kombrink, L. Burget, J.H. Cernocky, and S.Khudanpur, “Cued-rnnlm—an open-source toolkit for efficient traning and evaluation of recurrent neural network language models”, Proc. ICASSP, 2011.

[6] T. Mikolov, S. Kombrink, A. Deoras, L. Burget, and J. Cer-nocky, “Recurrent neural network language modeling toolkit”,Proc. ASRU Workshop, 2011.

[7] X. Chen, Y. Wang, X. Liu, M.J.F. Gales, and P.C. Woodland,“Efficient training of recurrent neural network language mod-els using spliced sentence bunch”, Proc. Interspeech, 2014.

[8] I. McCowan, J. Carletta, W. Kraaij, S. Ashby, S. Bourban, M.Flynn, M. Guillemot, T. Hain, J. Kadlec, V. Karaiskos, M. Kro-nenthal, G. Lathoud, M. Lincoln, A. Lisowska, W. Post, D.Reidsma, and P. Wellner, “The AMI meeting corpus: A pre-announcement,” Machine learning for multimodal interaction,pp. 28–39. Springer, 2006.

[9] Martin Sundermeyer, Ralf Schl ̈uter, Hermann Ney,“rwthlm – The RWTH Aachen University Neural Network Language Modeling Toolkit”, Proc. ICASSP, 2016.

[10] Rumelhart, D. E., Hinton, G. E., Williams, R. J., “Learning In-ternal Representations by Error Propagation”, in: McClelland,J. L., Rumelhart, D. E., PDP Research Group, The, “Parallel Dis-tributed Processing”, The MIT Press, 1986, pp. 318–362.

[11] Werbos, Paul J., “Backpropagation Through Time: What It Doesand How to Do It”, Proceedings of the IEEE 1990, Vol. 78, No. 10,pp.1550–1560

[12] Williams, R. J., Zipser, D., “Gradient-Based Learning Algorithmsfor Recurrent Networks and Their Computational Complexity”,in: Chauvain, Y., Rumelhart, D. E., “Backpropagation: The-ory, Architectures, and Applications”, Psychology Press, 1995,pp. 433–486

[13] Graves, A., Mohamed, G., Hinton, G., “Speech Recognition with Deep Recurrent Neural Networks”, Proc. of ICASSP 2013, pp.6645–6649

[14] Hinton, G., “Neural Networks for Machine Learning”, Online Course at coursera.org, Lecture 6, 2012

[15] Auli, M., Galley, M., Quirk, C., and Zweig, G., “Joint Lan-guage and Translation Modeling with Recurrent Neural Net-works”, Proc. of EMNLP 2013, pp. 1044–1054

[16] Sundermeyer, M., T ̈uske, Z., Schl ̈uter, R., and Ney, H., “Lattice Decoding and Rescoring with Long-Span Neural Network Lan-guage Models”, Interspeech 2014, accepted for publication

[17] Mikolov, T., Deoras, A., Kombrink, S., Burget, L., and Cˇernock ́y,J. H., “Empirical Evaluation and Combination of Advanced Lan-guage Modeling Techniques”, Proc. of Interspeech 2011, pp. 605–608

[18] Shiliang Zhang, Cong Liu, Hui Jiang, Si Wei, Lirong Dai, Yu Hu,” Feedforward Sequential Memory Networks: A New Structure to Learn Long-term Dependency”, arXiv:1512.08301v2 [cs.NE] 5 Jan 2016

[19]F. Seide, G. Li, and D. Yu, “Conversational speech transcription using context-dependent deep neural networks,” in Proc. Interspeech,2011.

[20]Kanishka Rao, etc., Flat Start Training of CD-CTC-SMBR LSTM RNN Acoustic Models, ICASSP 2016

[21]Tara Sainath,etc.,Convolutional, Long Short-Term Memory, Fully Connected Deep Neural Networks,ICASSP 2015

[22]Bahdanau, D., Cho, K., and Bengio, Y. Neural machine translation by jointly learning to align and translate. arXiv preprint arXiv:1409.0473, 2014.

[23]Oppenheim, A. V., Schafer, R. W., Buck, J. R., and et al. Discrete-time signal processing, volume 2. Prentice-hall Englewood Cliffs, 1989.

[24]Dahl, G.E., Yu, D., Deng, L., and Acero, A. Contextdependent pre-trained deep neural networks for largevocabulary speech recognition. IEEE Transactions on Audio, Speech, and Language Processing, 20(1):30–42, 2012.

[25] Hochreiter, S. and Schmidhuber, J. Long short-term memory. Neural computation, 9(8):1735–1780, 1997.

[26] Sak, H., Senior, A., and Beaufays, F. Long short-term memory based recurrent neural network architectures for large vocabulary speech recognition. arXiv:1402.1128, 2014.

[27]Sainath, T.N., Mohamed, A., Kingsbury, B., and Ramabhadran, B. Deep convolutional neural networks for LVCSR. In Proceedings of IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), pp. 8614–8618, 2013.

最後更新:2017-08-13 22:37:14

  上一篇:go  回歸安防本質,防盜搶煙霧器完善“防大於控”的安防體係
  下一篇:go  雲計算重磅!雲安全聯盟發布重大更新指導方針4.0