目录一、前言二、为什么传统神经网络无法处理序列数据三、什么是 RNN四、RNN 的展开结构五、RNN 的数学原理六、RNN 的工作流程七、RNN 的优势八、RNN 的致命缺陷九、什么是 LSTM十、LSTM 模型结构十一、遗忘门Forget Gate十二、输入门Input Gate十三、输出门Output Gate十四、LSTM 工作流程十五、RNN 与 LSTM 对比十六、使用 PyTorch 实现 RNN十七、使用 PyTorch 实现 LSTM十八、LSTM 文本分类实战十九、RNN/LSTM 在 NLP 中的应用二十、为什么 Transformer 取代了 LSTM二十一、面试高频问题什么是RNNRNN为什么能够记忆历史信息RNN最大问题是什么LSTM如何解决长期依赖LSTM有几个门为什么Transformer取代LSTM二十二、总结在前面的文章中我们学习了感知器 多层神经网络 梯度下降 反向传播这些模型都有一个共同特点输入之间彼此独立例如图片分类 房价预测 用户画像样本之间通常没有时间顺序关系。但现实世界中存在大量时序数据例如自然语言 股票价格 天气变化 语音信号这些数据都有一个特点当前数据 依赖历史数据例如一句话今天天气非常____看到这里大脑已经猜到 后面可能是 好 热 冷因为前面的内容提供了上下文信息。传统神经网络无法处理这种依赖关系。于是RNN 循环神经网络诞生了。随后又发展出LSTM 长短期记忆网络成为 NLP 领域的重要基础模型。本文将系统讲解什么是RNN RNN结构原理 RNN存在的问题 什么是LSTM LSTM门控机制 LSTM与RNN区别 Python实战二、为什么传统神经网络无法处理序列数据假设输入 我 爱 人 工 智 能传统神经网络处理方式我 爱 人 工 智 能彼此独立。模型无法知道爱 是在 我 之后出现更无法知道人工智能 其实是一个整体词语因此传统神经网络 缺乏记忆能力三、什么是 RNNRNNRecurrent Neural Network 循环神经网络核心思想当前输出 不仅依赖当前输入 还依赖历史状态结构如下可以理解为神经网络拥有了记忆四、RNN 的展开结构RNN通常画成一个循环结构flowchart LR H -- H但真正计算时会展开。例如一句话我 爱 深 度 学 习展开后可以看到历史信息 不断向后传递五、RNN 的数学原理每个时间步输入 Xt上一时刻状态Ht-1计算当前状态Ht tanh(WxXt WhHt-1 b)当前输出Yt WyHt其中Wx 输入权重 Wh 历史状态权重 Wy 输出权重这也是 RNN 能够记忆历史信息的原因。六、RNN 的工作流程假设输入今天 天气 很好流程工作过程读取今天 保存状态 ↓ 读取天气 结合历史状态 ↓ 读取很好 得到最终语义七、RNN 的优势相比传统神经网络RNN能够记忆历史信息 处理变长输入 理解上下文关系适用于机器翻译 文本生成 语音识别 时间序列预测例如输入 今天天气很好 预测 适合出去玩八、RNN 的致命缺陷随着序列越来越长梯度越来越小称为梯度消失例如0.1 × 0.1 × 0.1 × 0.1 × 0.1结果0.00001导致前面信息无法传递到后面例如我出生在北京...... (中间100个词) ...... 我来自哪里RNN可能已经忘记北京这个信息。九、什么是 LSTM为了解决长期依赖问题。1997年Hochreiter Schmidhuber提出LSTM Long Short-Term Memory即长短期记忆网络核心思想增加记忆单元 控制信息保留与遗忘十、LSTM 模型结构LSTM比RNN复杂得多。结构如下其核心三个门 一个记忆单元十一、遗忘门Forget Gate作用决定忘记哪些信息例如我昨天吃了苹果 今天下雨了预测天气时苹果信息 没有价值可以丢弃。遗忘门输出0 表示忘记或者输出1 表示保留十二、输入门Input Gate作用决定记录哪些新信息例如今天北京下雪模型认为下雪 非常重要则写入记忆单元。十三、输出门Output Gate作用决定哪些信息参与输出例如历史天气 当前天气 未来天气预测输出门负责选择有价值信息十四、LSTM 工作流程完整过程本质上忘记旧信息 记录新信息 输出关键内容十五、RNN 与 LSTM 对比对比项RNNLSTM结构复杂度简单较复杂参数量少多训练速度快较慢长期记忆差强梯度消失容易发生大幅缓解NLP效果一般更好总结RNN适合短序列 LSTM适合长序列十六、使用 PyTorch 实现 RNN创建RNN层import torch import torch.nn as nn rnn nn.RNN( input_size10, hidden_size20, num_layers1 )输入数据x torch.randn( 5, 3, 10 ) output, hidden rnn(x) print(output.shape)输出(5,3,20)十七、使用 PyTorch 实现 LSTM创建LSTMimport torch import torch.nn as nn lstm nn.LSTM( input_size10, hidden_size20, num_layers2 )输入x torch.randn( 5, 3, 10 ) output,(hn,cn)lstm(x) print(output.shape)输出(5,3,20)其中hn 隐藏状态 cn 记忆状态十八、LSTM 文本分类实战构建情感分类模型class SentimentModel(nn.Module): def __init__(self): super().__init__() self.lstm nn.LSTM( input_size100, hidden_size128, batch_firstTrue ) self.fc nn.Linear( 128, 2 ) def forward(self,x): out,(h,c)self.lstm(x) outself.fc(h[-1]) return out用途正面评论 负面评论 情感分析十九、RNN/LSTM 在 NLP 中的应用经典应用机器翻译 聊天机器人 文本生成 语音识别 命名实体识别例如Google Translate 早期Siri 早期聊天机器人都大量使用LSTM。二十、为什么 Transformer 取代了 LSTM虽然LSTM很强。但仍然存在无法并行计算 训练速度慢 长文本效果有限因此2017年Attention Is All You Need提出Transformer逐渐取代RNN LSTM如今GPT BERT Claude DeepSeek全部基于Transformer。但理解Transformer 必须先理解RNN和LSTM因为它们代表了神经网络处理序列数据的演进过程二十一、面试高频问题什么是RNN能够处理序列数据 具有记忆能力的神经网络RNN为什么能够记忆历史信息隐藏状态不断向后传递RNN最大问题是什么梯度消失 长期依赖问题LSTM如何解决长期依赖增加门控机制 控制信息流动LSTM有几个门遗忘门 输入门 输出门为什么Transformer取代LSTM支持并行计算 训练速度更快 长距离依赖能力更强二十二、总结RNN第一次让神经网络拥有了记忆能力而LSTM进一步解决了长期依赖 梯度消失问题。整个技术演进路线前馈神经网络 ↓ RNN ↓ LSTM ↓ GRU ↓ Transformer ↓ GPT可以说RNN开启了序列建模时代LSTM让神经网络真正具备长期记忆能力而Transformer则站在它们的肩膀上推动了大语言模型时代的到来。掌握RNN与LSTM是深入理解现代AI架构演进的重要一步。