序列建模和語音識別中常使用RNN,LSTM和GRU,本文就對其進行一個整理和總結。
RNN:
雙向RNN解決了上下文依賴問題,一層隱藏層的Bi-RNN結構如下所示[1]:
其中前向網絡ht依賴ht-1,後項網絡ht依賴ht+1,輸出yt依賴前向ht,也依賴後項ht,其數學表達如下所示:
具有3個隱藏層的Bi-RNN結構如下圖所示:
其數學表達如下所示:其中第i層t時刻的前向隱藏層h依賴t時刻i-1層t時刻的隱藏層,和i層t-1時刻的隱藏層。後向同理。
但是其由於其long-rang context特性導致其解碼等待時間較長,如下圖所示:
最後一個爲Bi-RNN的解碼時長,遠遠大於TDNN的解碼時間[2]。
LSTM(Long Short Term Memory):
LSTM解決了RNN訓練中梯度消失和梯度爆炸的問題。其結構如下所示[1]:
其數學表達如下所示:
input gate:
forget gate:
cell activation vector:
output gate:
hidden layer:
展開描述爲:
同樣的Bi-LSTM組成也可以組成對應的網絡結構,下圖爲5層的Bi-LSTM網絡[3]
GRU (Gated Recurrent Units):
GRU由論文[4]提出 取消了LSTM中的cell,結構上更加簡單,在性能上,訓練時間更短,epoch更小的情況下可以收斂。
百度的Deep speech2[5]使用的就是GRU,如下圖所示:
LSTM 和GRU對比結構如下[6]:
其數學表達如下所示:
update gate:
Reset gate:
Candidate activation:
Hidden state h:
展開描述爲下圖所示:
參考論文:
1.SPEECH RECOGNITION WITH DEEP RECURRENT NEURAL NETWORKS
2.Bidirectional recurrent neural networks
3.Fast and Accurate Recurrent Neural Network Acoustic Models for Speech Recognition
4.On the properties of neural machinetranslation: Encoder-decoder approaches
5.Deep Speech 2- End-to-End Speech Recognition in English and Mandarin
6.Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling