LSTM实战:遗忘门、输入门与输出门解决长期依赖

LSTM实战:遗忘门、输入门与输出门解决长期依赖

本文是上篇《Word2Vec与CBOW算法实战》的续篇 。上篇解决了"如何用词向量表示词语"的问题,但还有一个关键问题没解决:如何让模型理解前后词语之间的关联关系? 这就是 RNN 到 LSTM 要解决的问题。


一、为什么RNN无法处理长期依赖

1.1 RNN的基本结构

RNN(循环神经网络)的核心思想是:每个时间步的隐藏状态不仅取决于当前输入,还取决于上一时间步的隐藏状态。

复制代码
x(t) ──→ [U] ──┐
              ├──→ [激活] ──→ h(t) ──→ y(t)
h(t-1) ─→ [W] ──┘

RNN 的三个特点:

  1. 每个时间步使用的参数 U、W、b 都是共享的,这是 RNN 的重要特点
  2. 引入隐状态 h(hidden state)来提取序列特征
  3. 输入和输出序列必须等长

1.2 RNN 的致命缺陷:梯度消失

问题来源:

"当出现'我的职业是程序员,...,我最擅长的是电脑'。需要预测最后的词'电脑',需要先前提到的'职业是程序员'的上下文。相关信息和当前预测位置之间的间隔相当大。"

根本原因:

反向传播时,梯度需要从时间步 t 传回到时间步 1。每经过一个时间步,梯度就要乘以参数 W。当 W<1 时:

复制代码
梯度 = W^n × 初始梯度 → 随着 n 增大,趋近于 0

这就是梯度消失(Vanishing Gradient):距离越远,早期信息对当前预测的影响越弱,最终完全消失。

图解:虚线箭头表示远处词语的信息传递,随着距离增加,梯度指数衰减,导致 RNN 只能记住短期依赖,无法捕捉长序列中的语义关联。


二、LSTM登场:选择性记忆的解决方案

2.1 LSTM的核心思想

LSTM(Long Short-Term Memory Network,长短时记忆网络) 由 Sepp Hochreiter 和 Jürgen Schmidhuber 于 1997 年提出,专门解决 RNN 的长期依赖问题。

生动比喻:

"当你想在网上购买生活用品时,会查看用户评价。大脑下意识记住'好看'、'真酷'等关键词,而不关心'我'、'也'、'是'等字样。第二天你问评价说了什么,你不可能会全部记住,而是说出大脑里记得的主要观点,比如'下次肯定还会来买'。"

LSTM 的核心思想:记忆能力有限,记住重要的,忘记无关紧要的。

2.2 LSTM vs RNN 的根本区别

区别 RNN LSTM
信息传递方式 仅隐状态 h(t) 隐状态 h(t) + 细胞状态 C(t)
门控机制 无 有(3个门)
长期依赖 ❌ 无法处理 ✅ 通过门控选择性地传递
梯度消失 严重 通过门控机制缓解

三、LSTM核心:三大门机制

LSTM 引入了**门(Gate)**的概念,每个门是一个神经网络层,输出 0~1 之间的值,控制信息流动的比例。

3.1 遗忘门(Forget Gate)

功能 :决定从上一个细胞状态中丢弃哪些信息。

复制代码
f = σ(Wf · [h(t-1), x(t)] + bf)
  • 将 h(t-1) 和 x(t) 同时传入 sigmoid 层
  • 输出 f ∈ 0, 1:0 表示完全丢弃,1 表示完全保留
  • 例如:当新输入是新的主语时,遗忘门会降低旧主语相关信息的权重

3.2 输入门(Input Gate)

功能 :决定向细胞状态中添加哪些新信息。

分为两步:

复制代码
第一步:候选值生成
C~ = tanh(Wc · [h(t-1), x(t)] + bc)

第二步:决定更新哪些
i = σ(Wi · [h(t-1), x(t)] + bi)
  • sigmoid 输出 i ∈ 0, 1:决定候选值中哪些值得保留
  • tanh 输出 -1~1:生成候选值向量
  • 两者的乘积才是真正添加到细胞状态的新信息

3.3 细胞状态更新

复制代码
C(t) = f * C(t-1) + i * C~
  • f * C(t-1):遗忘门控制,丢弃旧信息
  • i * C~:输入门控制,添加新候选信息
  • 这就是 LSTM 的核心公式:选择性遗忘 + 选择性记忆

3.4 输出门(Output Gate)

功能 :决定当前隐藏状态 h(t) 中输出哪些信息。

复制代码
o = σ(Wo · [h(t-1), x(t)] + bo)
h(t) = o * tanh(C(t))
  • tanh 将细胞状态压缩到 -1, 1,突出重要信息
  • o 控制输出比例,生成最终的隐藏状态 h(t)
  • h(t) 即为当前时间步的输出向量

四、LSTM完整前向传播时序图

LSTM 核心思想:选择性遗忘 + 选择性记忆 = 长期依赖的精准控制


五、RNN vs LSTM vs GRU 深度对比

核心对比

特性 RNN LSTM GRU
门控机制 无 3个门(遗忘/输入/输出) 2个门(更新/重置)
长期依赖 ❌ 梯度消失 ✅ 门控选择记忆 ✅ 门控处理
细胞状态 ❌ 无 ✅ 专有细胞状态 C(t) ❌ 无
参数量 最少 最多(W×4矩阵) 中等
训练难度 最难(梯度消失) 较难(门控计算开销大) 较易(结构简单)
适用场景 短序列、简单模式 长序列、需长期记忆 性能接近LSTM,资源受限
推理速度 最快 较慢(3个门计算) 较快
表达能力 ★☆☆☆☆ ★★★★★ ★★★★☆

一句话选型

短序列 → RNN ,长序列 → LSTM ,资源受限 → GRU ,综合最优 → LSTM。


六、LSTM典型应用场景

应用 说明 示例
NLP 文本生成 根据前文预测下一个词 输入"今"→输出"天"→输出"气"...
机器翻译 编码器LSTM读取源语言,解码器LSTM生成目标语言 "I love China" → "我爱中国"
情感分析 捕捉评论中的情感倾向 "太好吃了,下次还来" → 正面(0.92)
股票预测 捕捉时序数据中的长期趋势 p(t-7)...p(t) → p(t+1)

七、总结与扩展

LSTM 的本质

复制代码
LSTM = RNN + 三大门
     = 信息传递通道 × 三个信息过滤器
     = 遗忘门(选择性丢弃) + 输入门(选择性添加) + 输出门(选择性输出)

核心优势 :通过门控机制,LSTM 解决了 RNN 的梯度消失问题,能够选择性记忆 长期信息,同时自动遗忘无关信息。

扩展方向

方向 说明
GRU LSTM 的简化版,只有 2 个门,参数量更少,效果接近 LSTM
双向LSTM(Bi-LSTM) 同时考虑前向和后向上下文,效果更好
多层LSTM 堆叠多层 LSTM,提取更高级的语义特征
注意力机制 Transformer 的核心,让模型自动关注重要信息
Seq2Seq 编码器-解码器架构,机器翻译、对话生成的基础
相关推荐
联犀19 分钟前
如何工程化降低语音交互AI设备的延迟(小智ai,芙崽这样的ai设备)
人工智能
杉岩数据21 分钟前
杉岩数据董事长陈坚:从数据存储到行业智能——杉岩的AI时代战略布局
人工智能
冬奇Lab24 分钟前
Loop 工程到底是高深的新技术,还是炒冷饭?用训练一个识别狗的模型讲明白
人工智能
冬奇Lab33 分钟前
一天一个开源项目(第260篇):Plannotator —— 给 AI 编码 Agent 配一块「可批注的审阅台」,计划和代码改动都能在浏览器里逐条批示
人工智能·开源·claude
泯泷36 分钟前
语音,正在成为 AI Agent 最自然的接口
人工智能·llm·agent
杨凯凡2 小时前
IT日报|2026-11-13:GitHub 大规模凭据攻击、Signal 形式化验证、Claude 新模型与 AI 安全诉讼
人工智能·安全·github
一个天蝎座 白勺 程序猿2 小时前
别让收藏夹替你学习:我搭AI知识体系的完整方法,脚本直接拿去用
人工智能·学习·ai·ai学习
伞伞悦读2 小时前
【第83期】特征选择中的验证泄漏排查的实验与排查
人工智能·深度学习·机器学习
用户697625682563 小时前
用 Alook 把本机编程 agent 拉进频道:Pi + MiniMax 实操
人工智能
P1Browser3 小时前
账号触发平台安全审核?拆解标准申诉流程与材料清单
大数据·人工智能·安全·多账号管理·指纹浏览器·账户安全·运营合规