01-LSTM :解决梯度消失,捕捉长依赖
导出时间:2026/1/14 19:14:54
lstm模型网络结构
一句话理解 LSTM 在干嘛
LSTM 是一种“会记笔记的 RNN”,它一边读时间序列,一边维护一个长期记忆本,并且通过三道门决定:
遗忘门: 从旧记忆里擦掉一部分(别让垃圾信息一直占空间)
输入门: 把新信息筛选后写进记忆本(只记重点)
输出门: 从记忆本里挑选一部分输出给下一步(作为当前预测依据)
0)先教你“怎么读这张图”(从左到右)
你可以把这张图理解成:LSTM 在时间步 t 的一个“处理车间”。
它接收三样东西(左边进来):
- Input Data: Timestamp = t(左下角进来的) 记作:xt —— “当前这一时刻的数据”
- Hidden state input (from timestep = t-1)(左下角另一条进来的) 记作:ht−1 —— “上一刻短期记忆 / 上一刻的输出”
- Cell State from timestep = t-1(左上角那条粗黑线进来的) 记作:ct−1—— “上一刻长期记忆(记忆主干)”
然后输出两样东西(右边出去):
- Cell State to timestep = t+1:ct
- Hidden state output to timestep = t+1:ht
1)这张图里每个符号代表什么(读图必备)
你图里关键符号就 4 个:
✅ ① 黄色小方块 σ
这是 sigmoid,输出范围是 0~1
你可以把它理解成一个“阀门开关”:
- 0 = 完全关掉(不让信息过)
- 1 = 全开(信息全部通过)
- 0.3/0.7 = 通过一部分
所以 σ 在 LSTM 里就是“门(Gate)”的实现。
✅ ② tanh
这是 tanh,输出范围是 -1~1
作用是把内容“压一压”,让信息保持稳定,像把数据“处理成可写入记忆的格式”。
✅ ③ 圈圈里的 ×
这是 逐元素相乘(门控),含义是:
门输出一个 0~1 的比例,乘上信息 = 控制信息通过多少
✅ ④ 圈圈里的 +
这是 逐元素相加,用于:
把“旧记忆保留部分” + “新记忆写入部分” 合并成新的记忆
2)最关键:上面那条粗黑线是什么?
你图中顶部那条贯穿整个结构的粗黑线:
Cell State(细胞状态)c—— 长期记忆的“高速公路”
你可以把它想象成:
- 一条大水管,信息能很顺畅地往后流
- LSTM 通过门控往这条管道里“放行 / 截断 / 注入”信息
- 这也是 LSTM 能记长期信息、缓解梯度消失的根本原因之一
3)现在按你图的三个彩色框逐个讲(遗忘门、输入门、输出门)
A. 左边绿色区域:遗忘门(Forget Gate)
图上标红字:遗忘门(最左侧绿色框)
这一步在做什么?
它在决定:
“上一时刻的记忆 ct−1 ,哪些该留?哪些该忘?”
你看图里:
- 左上角粗黑线带着 ct−1 进来
- 经过一个 ×
- 这个 × 的另一个输入
B. 中间蓝色区域:输入门(Input Gate)
图上红字:输入门(蓝色框)
这一步在做什么?
决定:
“我现在要不要把新信息写进记忆本?写多少?写什么?”
你会看到蓝色区域里有两条支路:
✅(1)决定写多少:输入门 it
蓝色区域下方黄色 σ:
它输出 0~1,像是写入“比例”。
✅(2)决定写什么:候选记忆 c~t
蓝色区域中间那个 tanh:
它输出 -1~1,是准备写进记忆本的新内容草稿。
✅(3)写入动作:×
两个结果在图里汇合到 ×:
C. 图的核心:更新 Cell State(那个 +)
图中心位置那个 + 特别关键:
它把两部分加起来:
- 遗忘门保留下来的旧记忆:
- 输入门写入的新记忆:
合成新的长期记忆:
形象总结一句话
LSTM 的记忆更新不是“覆盖”,而是“保留一部分 + 新增一部分”。
这就是为什么它适合时间序列:它能长期积累规律。
D. 右边红色区域:输出门(Output Gate)
图上红字:输出门(右侧红框)
这一步在做什么?
决定:
“现在要从记忆本里拿出多少信息,作为当前输出 ht?”
你看图:
- ct先进入 tanh(让记忆变得适合输出)
- 然后经过 ×
- × 的另一个输入来自 σ
公式是:
举例更直观(时间序列预测场景)
比如预测股票:
- ct里可能记录了:
- 长期趋势(大盘周期)
- 上周的波动规律
- 昨天突然的大涨(异常事件)
- 但如果今天 xt 显示市场很平稳,那么输出门 ot 可能会更倾向输出“趋势”相关的信息
- 如果今天 xt 出现突发跳变,那么输出门会让 “异常事件”相关维度更大
也就是说:
输出门决定“现在输出应该强调哪种记忆”。