RNN Framework

1. Vanilla RNN(Elman 网络)

解决问题:最基础的序列建模,通过循环连接保留前一时刻信息,适合短期依赖任务。

局限:梯度在长序列上传播时易消失或爆炸,无法有效捕捉长程依赖​

创新点:在隐藏层引入循环连接,同一组权重在所有时间步共享,实现对可变长度序列的处理

应用场景:早期语言模型、简单序列分类、短序列预测等。

2. 长短期记忆网络(LSTM)

解决问题:Vanilla RNN 难以捕捉跨越长距离的依赖,且梯度易消失。

创新点:引入细胞状态(cell state)与三种门控(输入门、遗忘门、输出门),通过门控流控信息读写,保持长期记忆。

应用场景:语言模型、机器翻译、语音识别、手写识别、时间序列预测等领域表现卓越​。

3. 门控循环单元(GRU)

解决问题:在保持长程记忆能力的同时,减少 LSTM 的参数和计算复杂度。

创新点:用重置门(reset gate)和更新门(update gate)替代 LSTM 的三个门,将细胞状态与隐藏状态合并,简化结构​。

应用场景:与 LSTM 类似,如语音建模、多声部音乐建模、自然语言处理等,且在一些任务中性能相当或更优​。

4. 双向 RNN(BiRNN)

解决问题:Vanilla RNN 只能利用过去信息,难以利用未来上下文。

创新点:并行构建一个正向 RNN 和一个反向 RNN,将两者输出拼接/相加,以同时捕捉过去与未来信息​。

应用场景:命名实体识别、语音识别、序列标注、情感分析等需要全局上下文的任务​。

5. 深度/堆叠 RNN(Stacked RNN)

解决问题:单层 RNN 表达能力有限,难以捕获更复杂的时序特征。

创新点:在每个时间步将多个 RNN 层堆叠,使得第 $l$ 层的输出成为第 $l+1$ 层的输入,增强特征抽象能力​。

应用场景:图像字幕生成、复杂序列预测、多层语义抽取、交通流量预测等对建模深度要求高的任务​。

6. 编码-解码(Seq2Seq)架构

解决问题:处理可变长度输入到可变长度输出的映射,如机器翻译中源语言到目标语言的转换。

创新点:编码器将输入序列编码成一个固定维度的上下文向量,解码器基于该向量自回归生成输出序列,并可结合注意力机制解决“瓶颈”问题​。

应用场景:机器翻译、文本摘要、对话生成、图像描述等序列到序列任务。​