
本课学习重点
- 序列
- 隐藏状态
- LSTM 门控
先从一个具体问题出发
“项目没有延期”与“项目延期没有”
词相同,顺序不同,含义就不同。气温、销量和声音也都有先后关系。序列模型除了读取当前输入,还需要携带之前的信息。
SEQUENCE & ATTENTION
通过序列状态实验理解 RNN、隐藏状态、长期依赖与 LSTM 门控。
这一课要回答:RNN 与 LSTM:理解有先后顺序的数据建立必要的基础概念
先认识三个关键词
先看每个概念负责什么,再把它们放回完整流程。无需先记公式,先建立直觉。
有顺序的一组观测
文字按词元排列,时间序列按时间排列,交换顺序可能改变含义。
传向下一步的摘要
RNN 把当前输入与上一步状态结合,形成新的状态。
决定写入、保留与读出
门控结构帮助重要信息跨越更长距离,缓解普通 RNN 的长期记忆困难。
把概念连接成流程
序列怎样逐步流动
按顺序走一遍,观察每一步的输入、动作与输出。
- 01
读取当前输入
一次处理一个词元或时间点。
- 02
结合过去状态
将已有摘要与当前信息共同计算。
- 03
更新记忆
保留有用信息,减弱无关信息。
- 04
产生当前输出
用于分类、预测下一步或生成序列。
互动实验 · 动手建立直觉
逐步读取序列,观察记忆衰减
向前推进序列,比较普通 RNN 与 LSTM 对早期关键信息的保留程度。
- 01周一:晴
- 02周二:晴
- 03周三:降温
- 04周四:阴
- 05周五:预测
当前读取:周一:晴。继续向后观察早期信息的衰减。
知道模型能做什么,也知道不能做什么
三个容易忽略的边界
技术名词描述的是一种计算方法。真正用于产品时,还要检查数据、指标、成本与使用场景。
隐藏状态容量有限
把很长历史压进固定向量,会丢失细节。
顺序处理限制并行
后一步依赖前一步,使长序列训练较慢。
LSTM 也不是无限记忆
它缓解长期依赖,但仍受数据、长度和训练条件影响。
可选代码实践 · 逐行理解
让 LSTM 读取一批序列
代码只呈现本课最关键的计算路径。先根据注释理解每一步,再放进完整项目。
course-10.py
import torch.nn as nn
lstm = nn.LSTM(
input_size=8,
hidden_size=16,
batch_first=True,
)
outputs, (hidden, cell) = lstm(sequence_batch)
last_state = outputs[:, -1, :]
prediction = nn.Linear(16, 1)(last_state)- 步骤 1
每个时间点用 8 个数字表示,隐藏状态大小为 16。
- 步骤 2
batch_first=True 表示输入形状按“批次、时间、特征”排列。
- 步骤 3
最后时间点的状态汇总了此前信息,可用于序列分类或数值预测。
知识检查与课程总结
确认你能把概念讲清楚
完成三个问题,再用五句话回顾本课主线。
已回答 0 / 3 题 · 当前答对 0 题
- 序列的顺序包含信息。
- RNN 用隐藏状态传递历史摘要。
- 长距离依赖可能导致早期信息衰减。
- LSTM 用门控控制记忆的写入、保留和读出。
- 序列长度与计算方式推动了注意力模型的发展。
下一课 · COURSE 11
注意力机制
不再只依赖一个固定摘要,让当前任务直接查看最相关的信息。