在学习了循环神经网络的基础结构和实现方式后,我们现在来讨论它们在训练过程中遇到的实际困难。循环神经网络,尤其是在处理长序列时,在时间反向传播算法中会表现出数值不稳定性。本章讨论两个主要难题:梯度消失问题,即误差信号在时间上反向传播时呈指数级减小(梯度趋近于$0$);以及梯度爆炸问题,即这些信号变得非常大(梯度变得数值不稳定)。这两个问题都严重影响了网络学习跨越遥远时间步依赖关系的能力,而这正是使用循环神经网络的主要原因之一。你将学习这些梯度问题产生的原因,并了解缓解它们的常用方法。我们将介绍如何使用梯度裁剪来控制梯度爆炸,讨论有效的权重初始化策略,并考虑不同激活函数在循环层中的影响。了解这些训练机制对于构建和调整有效的序列模型非常重要。