一、深度RNN(把最原始的单层RNN变得更深)
当网络只有一个隐藏层,无法把东西做的很宽(宽的意思是在这一层上使用大量神经元),做的宽容易过拟合,所以我们希望做得深一些。把神经网络变深就是获得更多的非线性。那么如何把RNN变得更深,和MLP多层感知机没有本质区别,就是多加几个隐藏层,如下图,
![](https://img-blog.csdnimg.cn/60aee80dfcd946e3a3e5f74eedb4e78d.png)
总结:深度循环神经网络使用更多隐藏层来获得更多的非线性,这点同样可以迁移到GRU和LSTM上。
二、双向RNN
双向循环神经网络的核心:和之前的单层RNN对比,之前一个隐藏层的位置现在出现了两个隐藏层,
![](https://img-blog.csdnimg.cn/a2d66230c19f426fb5e3ab2a25c6751a.png)
双向循环神经网络非常不适合做推理,不能用在预测下一个词,因为双向需要可以看到历史和未来,所以双向循环神经网络主要是对一个句子做提取,比如:翻译,改写,可以看到整个句子然后做特征提取。
总结:双向循环神经网络可以利用反向的时间信息;通常用于对序列做特征抽取,填空,而不是预测未来。