天天看點

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

         過去 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.

繼續閱讀