递归神经网络 (RNN) 通常用于自然语言和语音识别应用程序,因为它们使用顺序或时间序列数据。RNN 可通过其反馈回路来识别。这些学习算法主要用于使用时间序列数据对未来结果进行预测。用例包括股票市场预测或销售预测,或序数或时间问题,例如语言翻译、自然语言处理 (NLP)、语音识别和图像字幕。这些功能通常会整合到 Siri、语音搜索和 Google Translate 等流行应用程序中。

RNN 使用其“记忆”,从先前的输入中获取信息,用于影响当前的输入和输出。传统的深度神经网络假设输入和输出相互独立,而 RNN 的输出则取决于序列中的先验元素。虽然未来的事件也有助于确定给定序列的输出,但单向递归神经网络无法在其预测中解释这些事件。

RNN 在网络的每一层之间共享参数,并在网络的每一层内共享相同的权重参数,通过反向传播和梯度下降过程调整权重,以促进强化学习。

RNN 使用通过时间的反向传播 (BPTT) 算法来确定梯度,专门针对序列数据,因此与传统的反向传播略有不同。BPTT 的原理与传统的反向传播相同,即模型通过计算从输出层到输入层的误差进行自我训练。BPTT 与传统方法的不同之处在于,BPTT 对每个时间步长的误差进行求和,而前馈网络不需要对误差进行求和,因为它们不会在每一层共享参数。

与其他神经网络类型相比,RNN 的优势之一在于它同时使用二进制数据处理和内存。RNN 可以规划多个输入和输出,以便 RMM 可以产生一对多、多对一或多对多的输出,而不是单个输入只能产生一个结果。 RNN 中也提供一些选项。例如长短期记忆 (LSTM) 网络通过学习长期依赖关系并采取行动,比简单的 RNN 更具优势。

然而,RNN 往往会遇到两个基本问题,即梯度爆炸和梯度消失。这些问题由梯度的大小决定,梯度是沿误差曲线的损失函数的斜率。

    当梯度消失或过小时,它会继续变小,更新权重参数,直到它们变得微不足道,即:零 (0)。出现这种情况时,算法将不再学习。梯度爆炸:梯度太大时会发生这种情况,并创建不稳定的模型。这种情况下,模型权重会变得过大,最终表示为 NaN(非数字)。针对此类问题的一种解决方案是减少神经网络中的隐藏层数量,从而消除 RNN 模型中的复杂性。

最后的一些缺点:RNN 可能还需要较长的训练时间,并且难以在大型数据集上使用。当 RNN 具有很多层和很多参数时,优化 RNN 会增加复杂性。