加载中...
RNN(Recurrent Neural Network)通过隐藏状态在时间步之间传递信息,天然适合处理序列数据。但它存在梯度消失和无法并行训练的缺陷,在 Transformer 出现后逐渐退出 NLP 主流,但在资源受限的边缘设备场景仍有价值。

| 类型 | 序列模型 |
| 提出时间 | 1980 年代(Elman 1990 提出标准形式) |
| 主要缺陷 | 梯度消失、无法并行训练 |
普通神经网络假设输入之间彼此独立,但语言、音乐、时间序列的前后文本质上是有依赖的。RNN 的解决方案:保留一个隐藏状态向量 h,每个时间步同时接收当前输入 x_t 和上一步的 h_{t-1},更新后输出新的 h_t。这样信息在时间轴上流动,理论上可以记住任意远的历史。
但实践中,梯度在反向传播时要经过几十上百次矩阵乘法,要么指数级消失(网络忘记远距离依赖),要么指数级爆炸(训练崩溃)。1990 年代就有理论分析,却长期没有好的工程解决方案。[1]
RNN 曾是语音识别、机器翻译、语言建模的标准方案,2015-2017 年间被 LSTM、GRU 改进版本统治。谷歌 2016 年上线的神经机器翻译系统就使用了 8 层堆叠 LSTM。
RNN 最根本的工程缺陷是无法并行:第 t 步的计算必须等第 t-1 步完成,导致长序列训练极慢。Transformer 则完全去掉了顺序依赖,训练效率高一到两个数量级。目前 RNN 类架构的复兴版本(Mamba、RWKV)试图结合两者优点:推理时像 RNN 一样省内存,训练时通过特殊设计保留一定并行度。

| 类型 | 序列模型 |
| 提出时间 | 1980 年代(Elman 1990 提出标准形式) |
| 主要缺陷 | 梯度消失、无法并行训练 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧