LSTM(Long Short-Term Memory)详解笔记
1. 为什么需要 LSTM
普通 RNN 的目标是处理序列数据,也就是输入在时间上有顺序依赖的数据,例如文本、语音、时间序列、视频帧等。RNN 的基本思想是:在每个时刻
其中
这个结构的核心问题在于:它虽然能“记住过去”,但记忆能力很差。因为隐藏状态每一步都要经过非线性变换和反复矩阵乘法,时间一长,早期信息就容易在传播中衰减掉。这就是经典的“长期依赖”难题。
更准确地说,RNN 在反向传播时会出现梯度消失和梯度爆炸问题。梯度消失意味着越早的时间步对最终损失的影响越难传回来,模型就很难学到“很久以前的信息到底该不该保留”。而 LSTM 正是为了解决这个问题而提出的。
2. LSTM 的核心思想
LSTM 的关键不是“更复杂”,而是“更会记”。它在 RNN 的基础上引入了一个新的记忆状态,通常记作
LSTM 通过三个门来控制信息流动:
-
遗忘门
:决定上一时刻记忆 有多少要保留; -
输入门
:决定当前输入中有多少信息写入记忆; -
输出门
:决定当前时刻从记忆中输出多少作为隐藏状态 。
这三个门的值一般都在
3. LSTM 的标准数学形式
设当前输入为
3.1 遗忘门
这里
因为 sigmoid 输出在
3.2 输入门与候选记忆
输入门:
候选记忆:
其中
3.3 更新细胞状态
这是 LSTM 最关键的一步:
其中
这一步非常重要,它表达了两个动作:
-
旧记忆通过
被选择性保留; -
新信息通过
被选择性写入。
这意味着记忆更新不再是“强行全覆盖”,而是“保留旧的,同时加入新的”。
3.4 输出门与隐藏状态
输出门:
隐藏状态:
这里
所以 LSTM 的本质可以概括为:
先决定“忘多少”,再决定“写多少”,最后决定“输出多少”。
4. 从信息流角度理解 LSTM
如果只看 RNN 的递推:
每一步都要把全部历史压缩到一个新的隐藏状态里,历史信息会不断被“重编码”。这就像你每看一页书,都把整本书重新手写一遍,时间一长必然丢信息。
而 LSTM 把信息分成两条流:
-
一条是相对稳定的记忆流
; -
一条是当前可见状态流
。
记忆流不像普通 RNN 那样每次都被大幅变形,而是通过门控做“增量更新”。这就是它能保留长期信息的原因。
5. 为什么 LSTM 能缓解梯度消失
这是 LSTM 最值得认真理解的地方。
在普通 RNN 中,隐藏状态是连续嵌套的非线性函数,反向传播时梯度要经过很多次矩阵乘法和激活函数导数。如果这些导数大多小于 1,梯度就会指数级衰减。
LSTM 的关键在于细胞状态更新公式:
注意这里对
更具体地看,如果只考虑
因为
这就是 LSTM 比 RNN 更适合长序列的根本原因。
6. LSTM 的“门”到底在做什么
可以把三个门理解成三个非常具体的控制器。
遗忘门
输入门
输出门
7. LSTM 和普通 RNN 的对比
7.1 结构上的区别
RNN 的状态更新很简单,基本上就是一个递推函数;LSTM 则多了记忆状态和门控机制。RNN 可以看成“单状态递推”,LSTM 可以看成“带控制的双通道递推”。
7.2 表达能力上的区别
RNN 更容易记短期关系,但长期关系难学。LSTM 通过记忆单元和门控机制,更容易建模长距离依赖,比如句子开头的主语和句末的谓语一致性、时间序列里很久以前的趋势影响等。
7.3 训练稳定性上的区别
RNN 训练时更容易出现梯度消失或爆炸。LSTM 因为有更好的梯度通路,训练通常更稳定。
7.4 代价上的区别
LSTM 不是白来的。它参数更多、计算更慢、显存占用更高。一个标准 LSTM 单元需要多组权重矩阵,开销明显大于普通 RNN。所以它的优势来自更复杂的结构,代价是更高的计算成本。
8. LSTM 的参数形式与维度理解
如果输入维度是
因此各门权重矩阵的形状通常是:
偏置向量:
这意味着 LSTM 每个时间步都要做四次线性变换,再加上多次非线性操作,所以它比简单 RNN 计算更重。
如果是多层 LSTM,那么上一层每个时间步的隐藏状态
9. 训练过程:LSTM 是怎么学出来的
LSTM 的训练本质上仍然是监督学习或自监督学习,只是网络结构换成了 LSTM。训练流程一般包括前向传播、损失计算、反向传播和参数更新。
9.1 前向传播
给定一个序列输入:
模型按时间顺序依次计算:
最后根据任务输出预测值。比如:
-
文本分类:使用最后时刻的
作为分类依据; -
序列标注:每个时刻都输出一个标签;
-
语言模型:每个时刻预测下一个词。
9.2 损失函数
损失函数取决于任务。比如分类常用交叉熵:
序列预测则可能用每个时间步损失的和:
9.3 反向传播:BPTT
LSTM 的反向传播通常使用 BPTT(Backpropagation Through Time,时间反向传播)。
思想是:把时间展开成一个很深的计算图,然后从后往前逐步求梯度。比如最终损失对某个早期参数的影响,会沿着时间链条逐步传回去。
这里 LSTM 的优势就体现出来了:由于
9.4 参数更新
参数可用 SGD、Momentum、Adam 等优化方法更新,例如:
其中
10. 局限性分析
尽管 LSTM 功能强大,但在面对极长序列或大规模并行需求时仍存在短板:
-
梯度问题依然存在: 它只是“缓解”而非“根治”。在超长序列(如数千步)中仍需配合 梯度裁剪 (Gradient Clipping) 使用。
-
并行性缺陷: 由于
强依赖于 ,模型无法像 Transformer 那样实现全序列并行化训练。 -
记忆容量限制: 作为一个固定维度的向量,细胞状态
的承载能力有限,难以完美记录所有历史细节。
11. 实战技巧与变体
-
双向 LSTM (BiLSTM): 同时捕捉“过去”与“未来”的信息,常用于翻译和命名实体识别。
-
Peephole Connections: 让门控结构直接观察
,增强对精确时间的控制能力。 -
调参建议:
-
Dropout: 在层间使用,防止过拟合。
-
归一化: 输入数据务必进行标准化,加速收敛。
-
截断 BPTT: 对于超长序列,只在一定窗口内传播梯度。
-
12. 典型应用场景
LSTM 目前仍是以下领域的核心工具:
-
时序建模: 股票价格预测、传感器异常检测。
-
自然语言处理: 情感分析、序列标注、机器翻译(作为 Encoder-Decoder 基础)。
-
信号处理: 语音识别、心电图(ECG)分析。
13. 核心精髓总结
如果将循环神经网络的演进做个比喻:
-
普通 RNN: 像是一直把记忆揉成一个球传下去,传得越远,球表面的字迹越模糊。
-
LSTM: 像是一个带旋转开关的记忆柜。
-
遗忘门: 清理过期文件。
-
输入门: 筛选新入库信息。
-
输出门: 决定向外展示哪些内容。
-
结论: LSTM 的核心强项不在于它能“记住全部”,而在于它拥有出色的**“选择性记忆”**能力。
14. 衍生结构:GRU
作为 LSTM 的“轻量化”版本,GRU (Gated Recurrent Unit) 合并了遗忘门和输入门,只有两个门控。它在保持大部分性能的同时,参数更少、计算速度更快,是追求效率时的首选。