語音識別端到端模型解讀:FSMN及其變體模型

摘要:在很長一段時間內,語音識別領域最經常使用的模型是GMM-HMM。但近年來隨着深度學習的發展,出現了愈來愈多基於神經網絡的語音識別模型。

1、概述

在很長一段時間內,語音識別領域最經常使用的模型是GMM-HMM。但近年來隨着深度學習的發展,出現了愈來愈多基於神經網絡的語音識別模型。在各類神經網絡類型中,RNN因其能捕捉序列數據的先後依賴信息而在聲學模型中被普遍採用。用得最多的RNN模型包括LSTM、GRU等。但RNN在每個時刻的計算都須要上一個時刻的輸出做爲輸入,所以只能串行計算,速度很慢。網絡

除此以外,相比於FNN等網絡結構,RNN的訓練易受梯度消失的影響,收斂得更慢,且須要更多的計算資源。前饋序列記憶神經網絡(Feedforward Sequential Memory Networks, FSMN)[1][2]的提出,就是爲了既能保留RNN對序列先後依賴關係的建模能力,又能加快模型的計算速度,下降計算複雜度。而以後提出的cFSMN[3]、DFSMN[4]和Pyramidal FSMN[5],都是在FSMN的基礎上,進一步作出了改進和優化。FSMN、cFSMN和DFSMN都是中科大張仕良博士的工做,Pyramidal FSMN則是雲從科技在2018年刷榜Librispeech數據集時提出的模型。app

2、FSMN

圖1. FSMN模型結構ide

FSMN從本質上來講是一個前饋全鏈接網絡(FNN),創新之處在於其隱藏層中增長了一個記憶模塊(memory block)。記憶模塊的做用是把每一個隱藏狀態的先後單元一併編碼進來,從而實現對序列先後關係的捕捉。具體的計算流程以下:假設輸入序列爲,其中表示t時刻的輸入數據,記對應的第層隱藏層狀態爲,則記憶模塊的輸出爲:函數

其中,表示逐元素相乘,是須要學習的係數參數。這是單向的FSMN,由於只考慮了t時刻過去的信息,若要考慮將來的信息,只需把t時刻以後的隱藏狀態也用一樣的方式進行添加,雙向FSMN的計算公式以下:學習

其中,表示考慮過去信息的階數,表示考慮將來信息的階數。記憶模塊的輸出能夠視做t時刻的上下文的信息,與t時刻的隱藏層輸出一塊兒送入下一隱藏層。下一隱藏層的計算方式爲:優化

FSMN也能夠與注意力機制相結合,此時記憶模塊的參數以及輸出的計算方式爲:編碼

3、cFSMN

圖2. cFSMN模型結構3d

爲了進一步簡化模型,壓縮模型大小,提升訓練和推理速度,cFSMN對FSMN主要作了兩個改進:orm

  1. 經過對權重矩陣進行低秩矩陣分解,將隱藏層拆成兩層;
  2. 在cFSMN層的計算中進行降維操做,並只把記憶模塊的輸出送入下一層,當前幀的隱藏狀態再也不直接送入下一層。

cFSMN層的具體計算步驟爲:經過一個低秩線性變換將上一層的輸出進行降維,獲得的低維向量輸入記憶模塊,記憶模塊的計算相似於FSMN,只是多加一個當前幀的低維向量來引入對齊信息。最後把記憶模塊的輸出進行一次仿射變換和一次非線性變換,做爲當前層的輸出。參照圖2,每一個步驟的計算公式以下:blog

在Switchboard任務上,cFSMN能夠在錯誤率低於FSMN的同時,模型大小縮減至FSMN模型的三分之一。

4、DFSMN

圖3. DFSMN模型結構

顧名思義,DeepFSMN (DFSMN)的目的是但願構建一個更深的cFSMN網絡結構。但經過直接堆疊cFSMN層很容易在訓練時遇到梯度消失的狀況,受殘差網絡(Residual Network)和高速網絡(Highway Network)的啓發,DFSMN在不一樣層的記憶模塊之間添加了skip connection。同時,因爲語音信號的相鄰幀之間存在重疊和信息冗餘,DFSMN仿照空洞卷積在記憶模塊中引入了步幅因子(stride factor)。參照圖3,第層記憶模塊的計算方式爲:

其中,表示skip connection操做,論文中選擇的是恆等映射(identity mapping)。和分別是記憶模塊在處理過去信息和將來信息時使用的步幅大小。

4、Pyramidal FSMN

Pyramidal FSMN(pFSMN)認爲以前的FSMN系列模型的一個缺點是,底層和頂層的網絡層都會去提取長期上下文信息,這就形成了重複操做。pFSMN提出了金字塔型的記憶模塊,越深的網絡層提取越高級的特徵,即底層網絡層提取音素信息,而頂層網絡層提取語義信息和句法信息。這種金字塔結構能夠同時提升精度、減小模型參數量。pFSMN減小了DSFMN中使用的skip connection的數量,只在記憶模塊的維度發生變化時才進行skip connection操做。記憶模塊的計算方式爲:

除了引入金字塔結構,pFSMN的另外兩個改進是:

  1. 借鑑圖像處理的方法,在FSMN層以前加入一個6層Residual CNN模塊,用於提取更爲魯棒的語音特徵,並經過降採樣減小特徵維度。
  2. 採用交叉熵損失(CE loss)和LF-MMI損失的加權平均來做爲模型訓練時使用的損失函數。引入CE loss的緣由是訓練序列數據時很容易出現過擬合的狀況,CE loss至關於起到一個正則化的效果。

圖4. Pyramidal FSMN模型結構

參考文獻:

[1] Zhang S, Jiang H, Wei S, et al. Feedforward sequential memory neural networks without recurrent feedback[J]. arXiv preprint arXiv:1510.02693, 2015.

[2] Zhang S, Liu C, Jiang H, et al. Feedforward sequential memory networks: A new structure to learn long-term dependency[J]. arXiv preprint arXiv:1512.08301, 2015.

[3] Zhang S, Jiang H, Xiong S, et al. Compact Feedforward Sequential Memory Networks for Large Vocabulary Continuous Speech Recognition[C]//Interspeech. 2016: 3389-3393.

[4] Zhang S, Lei M, Yan Z, et al. Deep-fsmn for large vocabulary continuous speech recognition[C]//2018 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2018: 5869-5873.

[5] Yang X, Li J, Zhou X. A novel pyramidal-FSMN architecture with lattice-free MMI for speech recognition[J]. arXiv preprint arXiv:1810.11352, 2018.

 

點擊關注,第一時間瞭解華爲雲新鮮技術~

相關文章
相關標籤/搜索