9. 现代循环神经网络¶
前文中我们已经介绍了循环神经网络的基础知识,这种网络可以更好地处理序列数据。 同时,我们在文本数据上实现了基于循环神经网络的语言模型。 但是,对于面对当今各种序列学习问题的从业人员,这些技术可能并不够用。
例如,循环神经网络在实践中的一个常见问题是数值不稳定性。 尽管我们已经应用了梯度裁剪等实现技巧,但是通过设计更复杂的序列模型可以进一步缓解这个问题。 本章中,我们首先将介绍两个广泛使用的网络,即 门控循环单元 (gated recurrent units, GRU) 和 长短期记忆网络 (long short-term memory, LSTM)。 然后,我们将基于单向隐藏层来扩展循环神经网络架构,现代循环网络经常采用这种扩展。 我们将描述具有多个隐藏层的深层架构,并讨论基于前向和后向循环计算的双向设计。 在解释这些循环神经网络的变体时,我们将继续考虑 Section 8 中引入的语言模型问题。
事实上,语言建模只描绘了序列学习能力的冰山一角。 在各种序列学习问题中,如自动语音识别、文本到语音的转换和机器翻译,输入和输出都是任意长度的序列。 本章中,我们将以机器翻译为例介绍基于循环神经网络的“编码器-解码器”结构和束搜索,并用它们来生成序列。