RNN
分类: 网络架构
RNN
定义
循环神经网络是一种专为处理序列数据设计的神经网络,通过隐藏状态在时间步之间传递信息,使网络具有对历史输入的”记忆”能力。
数学形式
: 时刻 的输入向量
: 时刻 的隐藏状态
: 分别为隐藏-隐藏、输入-隐藏、隐藏-输出的权重矩阵
: 偏置项
核心要点
通过权重共享(所有时间步共用同一组参数)实现对任意长度序列的处理
梯度消失/爆炸问题是原始 RNN 的核心缺陷,导致难以捕捉长距离依赖
反向传播通过时间(BPTT)是 RNN 的标准训练算法,将计算图沿时间展开后应用 Backpropagation
双向 RNN(BiRNN)同时利用过去和未来的上下文信息,广泛用于序列标注任务
RNN 的变体(LSTM、GRU)通过门控机制缓解梯度消失问题
已被 Transformer 架构在大多数 NLP 任务上超越,但在某些低延迟/流式场景仍有应用
代表工作
Elman (1990): “Finding Structure in Time”,提出 Elman 网络(简单 RNN)
Rumelhart et al. (1986): 提出 BPTT 训练算法
Schuster & Paliwal (1997): 提出双向 RNN
Cho et al. (2014): 提出 GRU(Gated Recurrent Unit),简化版门控 RNN