本文最后更新于63 天前,其中的信息可能已经过时,如有错误请留言
循环神经网络(Recurrent Neural Network,RNN) 是一种专门处理序列数据(如文本、语音、时间序列)的神经网络。
- 与传统的前馈神经网络不同,RNN 具有”记忆”能力,能够保存之前步骤的信息。
- 循环神经网络能够利用前一步的隐藏状态(Hidden State)来影响当前步骤的输出,从而捕捉序列中的时序依赖关系。

RNN 的核心思想
RNN 的核心在于循环连接(Recurrent Connection),即网络的输出不仅取决于当前输入,还取决于之前所有时间步的输入。这种结构使 RNN 能够处理任意长度的序列数据。
传统神经网络:输入和输出是独立的(例如图像分类,单张图片之间无关联)。
RNN:通过循环连接(Recurrent Connection)将上一步的隐藏状态传递到下一步,形成”记忆”。
- 每一步的输入 = 当前数据 + 上一步的隐藏状态。
- 输出不仅依赖当前输入,还依赖之前所有步骤的上下文。
就像人阅读句子时,理解当前单词会依赖前面读过的内容(例如”他打开了__”,你会预测”门”或”书”)。
RNN 的工作机制
RNN 在每个时间步 t 执行以下计算:
- 接收当前输入 xₜ 和前一时刻的隐藏状态 hₜ₋₁
- 计算新的隐藏状态 hₜ = f(Wₕₕ·hₜ₋₁ + Wₓₕ·xₜ + b)
- 产生输出 yₜ = g(Wₕᵧ·hₜ + c)
其中 f 和 g 通常是激活函数(如 tanh 或 softmax)。
Wₓₕ 输入 → 隐藏状态 的权重矩阵 Wₕₕ 隐藏状态 → 隐藏状态 的权重矩阵 Wₕᵧ隐藏状态 → 输出 的权重矩阵
RNN 的优缺点
优点:
- 能够处理变长序列
- 理论上可以记住任意长度的历史信息
- 参数共享(同一组权重用于所有时间步)
缺点:
- 梯度消失/爆炸问题(难以学习长期依赖)
- 计算效率较低(无法并行处理时间步)







