序列建模和语音识别中常使用RNN,LSTM和GRU,本文就对其进行一个整理和总结。

RNN:    

双向RNN解决了上下文依赖问题,一层隐藏层的Bi-RNN结构如下所示[1]:

架构-LSTM理解总结(1)

其中前向网络ht依赖ht-1,后项网络ht依赖ht+1,输出yt依赖前向ht,也依赖后项ht,其数学表达如下所示:

架构-LSTM理解总结(1)


具有3个隐藏层的Bi-RNN结构如下图所示:

架构-LSTM理解总结(1)

其数学表达如下所示:其中第i层t时刻的前向隐藏层h依赖t时刻i-1层t时刻的隐藏层,和i层t-1时刻的隐藏层。后向同理。

架构-LSTM理解总结(1)

但是其由于其long-rang context特性导致其解码等待时间较长,如下图所示:

最后一个为Bi-RNN的解码时长,远远大于TDNN的解码时间[2]。

架构-LSTM理解总结(1)

LSTM(Long Short Term Memory):

LSTM解决了RNN训练中梯度消失和梯度爆炸的问题。其结构如下所示[1]:

架构-LSTM理解总结(1)


其数学表达如下所示:

input gate:

架构-LSTM理解总结(1)

forget gate:

架构-LSTM理解总结(1)

cell activation vector:

架构-LSTM理解总结(1)

架构-LSTM理解总结(1)

output gate:

架构-LSTM理解总结(1)

hidden layer:

架构-LSTM理解总结(1)

展开描述为:

架构-LSTM理解总结(1)



同样的Bi-LSTM组成也可以组成对应的网络结构,下图为5层的Bi-LSTM网络[3]

架构-LSTM理解总结(1)

GRU (Gated Recurrent Units):

GRU由论文[4]提出 取消了LSTM中的cell,结构上更加简单,在性能上,训练时间更短,epoch更小的情况下可以收敛。

百度的Deep speech2[5]使用的就是GRU,如下图所示:

架构-LSTM理解总结(1)


LSTM 和GRU对比结构如下[6]:

架构-LSTM理解总结(1)

其数学表达如下所示:

update gate:

架构-LSTM理解总结(1)

Reset gate:

架构-LSTM理解总结(1)

Candidate activation:

架构-LSTM理解总结(1)

Hidden state  h:

架构-LSTM理解总结(1)

展开描述为下图所示:

架构-LSTM理解总结(1)


参考论文:

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

相关文章: