第三讲 - LSTM 手算过程
1. 先回顾 LSTM 的完整公式
一个时间步的 LSTM 公式是:
这一讲我们只看一维情况,这样最容易理解。
2. 假设当前输入非常简单
假设现在是第 t 个时间步。
上一时刻的长期记忆是:
上一时刻的隐藏状态是:
当前输入是:
为了简化,我们不展开权重矩阵计算,直接假设三个门和候选记忆已经算出来了:
现在我们要计算:
和:
3. 第一步:理解遗忘门
遗忘门:
说明上一时刻的旧记忆要保留 90%。
旧记忆是:
所以保留下来的旧记忆是:
含义是:
上一时刻 0.8 的长期记忆,有 0.72 被保留下来了。
也就是说,这个时间步并没有大幅忘记历史信息。
4. 第二步:理解输入门
输入门:
说明当前新信息只写入 40%。
候选记忆是:
所以写入的新记忆是:
含义是:
当前输入产生的新信息是 0.7,但模型只认为其中 40% 值得写入长期记忆。
所以最终写进去的是 0.28。
5. 第三步:更新长期记忆
长期记忆更新公式是:
代入数值:
所以当前长期记忆变成:
这个结果说明:
旧记忆被大部分保留,新信息也被部分写入,
所以当前长期记忆增强了。
6. 第四步:计算隐藏状态
输出门:
说明长期记忆中有 80% 可以输出为当前隐藏状态。
隐藏状态公式:
代入:
因为:
所以:
最终:
7. 这一步到底发生了什么?
我们来总结一下。
上一时刻:
当前新信息:
模型的选择是:
所以它的行为是:
旧记忆保留很多;
新信息写入一部分;
最后把大部分长期记忆输出出去。
这就体现了 LSTM 的本质:
不是所有旧信息都保留,
也不是所有新信息都写入,
而是通过门控机制进行选择。
8. 换一个例子:模型想忘记旧信息
假设:
但是这次遗忘门变成:
输入门变成:
候选记忆:
则:
这说明:
模型几乎忘掉了旧记忆,并写入了新的负向信息。
在情感分析中,这可能对应一个转折场景。
例如前面是:
这部电影开头不错
后面出现:
但是结尾非常糟糕
此时模型可能会降低前面正面记忆的影响,写入负面信息。
9. 用情感分析理解手算过程
句子:
这家餐厅虽然服务一般,但是味道很好。
可以简单理解为:
| 时间步 | 词 | LSTM 可能做什么 |
|---|---|---|
| t1 | 这家餐厅 | 记录主题 |
| t2 | 虽然 | 记录“后面可能有转折” |
| t3 | 服务一般 | 写入一点负面信息 |
| t4 | 但是 | 准备调整前面信息 |
| t5 | 味道很好 | 写入强正面信息 |
| t6 | 最终输出 | 判断整体偏正面 |
在这个过程中:
遗忘门负责降低“不重要或被转折削弱的信息”;
输入门负责写入当前更关键的信息;
输出门负责把最终有用的信息输出给分类器。
10. 多维向量情况下也是一样
刚才我们为了简单,用的是一维数值。
真实模型里,、、、、 都是向量。
例如:
那么:
也就是说:
每一个维度都有自己的保留比例。
这非常重要。
LSTM 不是整体决定“全记住”或“全忘掉”,而是:
对记忆向量的每个维度分别控制。
11. LSTM 的门控到底是怎么学出来的?
前面我们直接给了:
但真实训练中,这些值不是人工设置的,而是通过参数学习出来的。
例如遗忘门:
这里的:
和
是可学习参数。
训练时,模型根据损失函数反向传播,不断调整这些参数。
最终模型会自己学会:
什么时候该忘,
什么时候该记,
什么时候该输出。
12. 从计算图角度理解 LSTM
LSTM 的核心路径是:
→
→
→
这条路径比普通 RNN 的隐藏状态递推更加稳定。
普通 RNN 是:
每一步都要经过非线性变换。
LSTM 的记忆更新是:
它有一条比较直接的加法路径。
所以信息更容易跨越多个时间步传递下去。
这也是 LSTM 缓解梯度消失的重要原因。
13. 你可以把 LSTM 当成“可学习的信息筛选器”
到这里,你应该建立一个非常重要的直觉:
LSTM 不是简单地记住全部历史,
而是学习如何筛选历史。
它每一步都在做三件事:
1. 旧信息哪些要留下?
2. 当前信息哪些要写入?
3. 当前状态哪些要输出?
对应就是:
遗忘门、输入门、输出门。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)