LSTM

模型概述

中文:长短期记忆网络

英文:Long Short-Term Memory(缩写:LSTM)

LSTM 是一种循环神经网络(RNN)结构,专门设计来解决传统 RNN 的 长程依赖(long-term dependencies) 问题。它通过在每个时间步维护一个 细胞状态(cell state) 并用若干门(gates)控制信息流入、保留与输出,从而避免梯度消失或爆发,能够记住较长时间尺度的信息。

是一种改进的循环神经网络(RNN),专门解决传统RNN在处理长序列数据时的梯度消失或梯度爆炸问题,能有效捕捉序列中的长期依赖关系。

基础概念

1. 结构组成:由输入门、遗忘门、输出门和细胞状态构成,通过门控机制控制信息的流入、遗忘和输出。
2. 门控机制:遗忘门决定丢弃细胞状态中的无用信息,输入门筛选并存储新信息到细胞状态,输出门控制细胞状态经激活后输出的内容。
3. 细胞状态:类似“传送带”,信息在上面缓慢流动,门控机制对其进行选择性修改,确保长期信息的有效传递。

关键公式
$\begin{aligned} i_t &= \sigma\big(W_i x_t + U_i h_{t-1} + b_i\big)\end{aligned}$

$\begin{aligned}[4pt] f_t &= \sigma\big(W_f x_t + U_f h_{t-1} + b_f\big) \end{aligned}$

$\begin{aligned}[4pt] o_t &= \sigma\big(W_o x_t + U_o h_{t-1} + b_o\big) \end{aligned}$

$\begin{aligned}[4pt] \tilde{c}*t &= \tanh\big(W_c x_t + U_c h*{t-1} + b_c\big). \end{aligned}$

* $(x_t)$:输入向量(在时刻 $(t)$ 的输入)。
* 如果是标量时间序列,则为标量或标量扩展为向量;如果是词或类别,可是 embedding 向量。
* $(h_t)$:隐藏状态(hidden state),也可看作时刻 $(t)$ 的输出向量,维度为 `hidden_size`。
* $(c_t)$:细胞状态(cell state),存储长期记忆,维度与 $(h_t)$ 相同。
* $(i_t)、(f_t)、(o_t)$:分别是 输入门(input gate)、遗忘门(forget gate)、输出门(output gate),取值向量,元素范围 ((0,1)),决定信息通过多少。
* $(\tilde{c}_t)$:候选细胞状态(candidate cell state),通常经过 $(\tanh)$ 激活,范围 ((-1,1))。
* $(W_i, W_f, W_o, W_c)$:权重矩阵,连接当前输入 $(x_t)$ 到各门/候选的矩阵。
* $(U_i, U_f, U_o, U_c)$:权重矩阵,连接上一次隐藏状态 $(h_{t-1})$ 到各门/候选的矩阵。
* $(b_i, b_f, b_o, b_c)$:偏置向量(bias)。
* $(\sigma(\cdot))$:Sigmoid 激活函数(logistic),定义 $(\sigma(z)=1/(1+e^{-z}))$,输出范围 ((0,1))。
* $(\tanh(\cdot))$:双曲正切激活函数,输出范围 ((-1,1))。
* $(\odot)$:按元素乘(Hadamard product)。
* 维度关系(常见):若 $(x_t\in\mathbb{R}^{d_{in}})$,隐状态 $(h_t\in\mathbb{R}^{d_h})$,则 $(W)$ 的尺寸通常是 $(d_h\times d_{in})$,$(U)$ 的尺寸为 $(d_h\times d_h)$,偏置为 $(d_h)$。
--------------------------------------------------------------------------------

$c_t = f_t \odot c_{t-1} ;+; i_t \odot \tilde{c}_t.$

细胞状态(cell state)更新
--------------------------------------------------------------------------------

$h_t = o_t \odot \tanh(c_t).$

隐藏状态(输出)
--------------------------------------------------------------------------------

超参数
参数名 描述 值范围 默认值 建议值
learning_rate 学习率 0.0001-0.1 - -
sequence_length 序列长度 - - -
完整计算机制

1. 接收输入 $(x_t)$ 与先前隐藏状态 $(h_{t-1})$。
2. 计算三扇门$((i_t, f_t, o_t))$与候选记忆 $(\tilde{c}_t)$。
-- * 遗忘门 $(f_t)$ 决定上一步细胞状态 $(c_{t-1})$ 中哪些信息要保留、哪些要遗忘。
-- * 输入门 $(i_t)$ 决定当前候选信息 $(\tilde{c}_t)$ 中哪些应写入细胞状态。
3. 更新细胞状态:混合保留的旧信息与写入的新候选信息(公式(2))。
4. 输出隐藏状态:用输出门 (o_t) 控制从细胞状态中读出的信息(公式(3))。
5. 将 $(h_t)$(或 $(c_t)$)用于下游任务(下一时刻递归、或最后用全连接层输出预测)。

优势

* 能够记住长距离依赖(减轻梯度消失问题)。
* 通过门机制灵活控制信息流(更易学习何时记住、忘记)。
* 在很多序列任务(语言建模、时间序列预测、语音)表现优秀。
* 比 GRU 更具表达能力(但参数更多、计算更重);比普通 RNN 更稳定。

例子

用序列 `236, 366, 599, 688, 122` 来预测第 六位(下一个数)的流程逻辑

1. 任务定义

-- *目标:给定前 5 个数 ([236,366,599,688,122]),预测下一个数(第 6 个)。根据任务可做回归(预测实数)或分类(若数值离散到有限集合)。

2. 数据预处理(计算什么)

-- *归一化 / 标准化:将数值缩放到合适范围(如 min-max 或 z-score)。

---- *结果用途*:加速训练、避免数值不稳定,使激活函数更有效。

-- *滑动窗口 / 批次构造:把序列拆成若干长度为 5 的输入窗口(训练时)。

---- *结果用途*:形成模型输入矩阵 ([batch, seq_len, feature_dim])。

-- *(可选)类别映射或 embedding:若数值代表类别则做 one-hot 或 embedding。

---- *结果用途*:让离散输入变为向量表示。

3. 模型输入准备(计算什么)

-- *把预处理后的向量按时间步送入 LSTM:第 1 步输入 $(x_1 = 236_{\text{norm}})$,第 2 步输入 $(x_2 = 366_{\text{norm}})$……到 $(x_5)$。

---- *结果用途*:每一步 LSTM 更新 $(h_t)$ 与 $(c_t)$。

4. 逐步递归(计算什么)

-- *对每个时间步 $(t=1..5)$:计算门值(遗忘门、输入门、输出门)、候选记忆、更新细胞状态 $(c_t)$、计算隐藏状态 $(h_t)$。

---- *中间结果用途*:

-- *$(c_t)$ 保存到目前为止认为应保留的长期信息;

-- *$(h_t)$ 是对到目前为止序列的“编码”或摘要,供下一个时间步或最终预测使用。

5. 最终时间步出的表示(计算什么)

-- *用最后的隐藏向量 $(h_5)$(或 $(c_5)$)作为序列的表示向量。

---- *结果用途*:把 $(h_5)$ 送入一个输出层(全连接层),用于生成最终预测:回归值或分类概率分布。

6. 输出与后处理(计算什么)

-- *若回归:全连接层直接输出一个实数(反归一化得到原尺度的预测值,例如 512.3)。

---- *结果用途*:预测的实数作为第 6 个数的估计。

-- *若分类(例如预测个位数 0–9):输出 softmax 概率,选择概率最大的类作为预测(比如预测下一个数的末位为 7)。

---- *结果用途*:概率可用于置信度阈值判定或更复杂决策(比如 top-k)。

7. 损失计算与反向传播(训练阶段,计算什么)

-- *计算预测与真实目标之间的损失(例如 MSE 或交叉熵),并对模型参数做反向传播与更新。

---- *结果用途*:通过多次训练让 LSTM 学会序列模式,从而在给定类似输入时输出准确的第 6 个数预测。

8. 推理阶段(使用)

-- *将真实序列 ([236,366,599,688,122]) 进行同样预处理与前向传播,得到模型预测结果(例如输出 710 或概率分布)。

---- *结果用途*:把该预测用于业务决策、报警、下游模型输入等。

总结实例要点(不列公式,只说明计算与用途):

* 计算:归一化 → 逐步计算门与状态 → 得到最终隐藏表示 → 输出层映射成预测 → 反归一化/取最大 → 得到第 6 个数预测。

* 每一步中间结果(归一化值、各门激活、$(c_t)、(h_t)$、输出概率/数值)都有明确用途(稳定训练、记忆保存、序列编码、最终决策)。

动画演示

发现更多可能性

默认固定广告

免费下载 数据序列智能分析

立即体验强大的数字序列预测与分析工具(280MB,推荐天翼网盘下载 访问码:bq4f)

天翼网盘下载 访问码:bq4f 其他下载

推荐内容

默认悬浮广告