定义
LSTM(Long Short-Term Memory,长短期记忆网络)是 RNN 的一种改进结构,用于缓解普通 RNN 难以保存长期信息以及梯度消失等问题。
作用
LSTM 通过门控机制选择性地保留重要信息、写入新信息并遗忘无关信息,从而提高对序列数据中长期依赖关系的建模能力。
结构
在普通 RNN 的基础上,LSTM 增加了一个长期记忆单元(Cell State)和三个门(Gate)来控制信息流动:
| 门结构 | 作用 |
|---|---|
| 遗忘门(Forget Gate) | 决定保留多少旧记忆 |
| 输入门(Input Gate) | 决定写入多少新信息 |
| 输出门(Output Gate) | 决定向外输出多少信息 |

算法
1. 遗忘门
输入为上一时刻的隐藏状态 $h_{t-1}$ 和当前输入 $x_t$:
$$ f_t = \sigma\left(W_f[h_{t-1},x_t]+b_f\right) $$
$f_t$ 的每个元素都在 0 到 1 之间;1 表示完全保留对应信息,0 表示完全遗忘。
公式中的 $[h_{t-1},x_t]$ 表示拼接操作;后续公式中的方括号含义相同。
2. 输入门
输入门计算需要写入多少新信息,并生成候选记忆:
$$ i_t = \sigma\left(W_i[h_{t-1},x_t]+b_i\right) $$
$$ \widetilde{C}t = \tanh\left(W_c[h{t-1},x_t]+b_c\right) $$
其中 $i_t$ 控制候选信息的写入比例,$\widetilde{C}_t$ 是当前时刻生成的候选记忆。
3. 细胞状态更新
$$ C_t = f_t \odot C_{t-1} + i_t \odot \widetilde{C}_t $$
其中,$\odot$ 表示逐元素相乘。
4. 输出门
$$ o_t = \sigma\left(W_o[h_{t-1},x_t]+b_o\right) $$
$$ h_t = o_t \odot \tanh(C_t) $$
两个重要状态
Cell State(细胞状态)$C_t$
表示长期记忆,保存序列中的重要信息,并能跨越多个时间步传递。
Hidden State(隐藏状态)$h_t$
表示当前时刻的输出,参与下一时刻的计算,也会向下一时间步和后续输出层传递信息。
符号说明
| 符号 | 含义 |
|---|---|
| $x_t$ | 当前时刻的输入 |
| $h_{t-1}$ | 上一时刻的隐藏状态 |
| $C_{t-1}$ | 上一时刻的细胞状态 |
| $\sigma$ | Sigmoid 激活函数 |
| $\tanh$ | 双曲正切激活函数 |
| $W$、$b$ | 可学习的权重和偏置 |