LSTM长短期记忆网络

理解本文需要读者有RNN基础,关于RNN可参考《RNN循环神经网络》

1 背景

LSTM最早是1997年被提出的,由于深度学习的兴起,形成了完整的框架。LSTM是用于解决RNN处理长序列时梯度消失或梯度爆炸问题。

2 结构

LSTM各个层的结构一致,上图是LSTM中间某一层的结构。与RNN相比,逻辑更复杂,这样的结构能够避免RNN梯度消失或梯度爆炸问题,兼顾长期和短期的记忆。而RNN的结构如下图所示。

3 设计直觉

以柯南破案为例,构造一个LSTM模型,其中输入是一系列的线索,输出推理结论。LSTM的输出最后可以接一个概率分类器,输出每个嫌疑人是案犯的概率。

|------|-------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|
| 符号 | 含义 | 例子中类比对象 |
| x(t) | t时刻输入 | t时刻接收到的线索 |
| h(t) | t时刻隐藏状态 | t时刻学习到的特征或推理结果。它表示t时刻的短期记忆 |
| c(t) | t时刻细胞状态/工作记忆/长期记忆 | 表示t时刻掌握各个嫌疑人的信息。工作记忆是心理学和认知科学领域的概念,指的是个体在执行认知任务(如推理、学习、语言理解等)时,用于暂时存储和操作信息的一种有限容量的记忆系统。它就像大脑的 "工作台",在短时间内保持和处理当前需要关注的信息,例如我们在做数学心算时,暂时记住中间计算步骤的能力就依赖于工作记忆 |

3.1 遗忘过程

随着线索的增多和推理的进行,有些嫌疑人被排除,那么其相关的信息需要被遗忘。相反,有些很久以前的重要线索时至今日依然有效,这部分信息就不能被遗忘。

遗忘门根据上一时刻的推理h(t-1)和当前时刻接收到的线索x(t),决定工作记忆c(t)中各部分内容遗忘的比例。作用是清理无用信息。

举例:

情况1:上一时刻推理是"嫌疑人是左撇子",当前时刻接收到的线索是"小李惯用手是右手",那么在柯南的工作记忆中将排除小李的嫌疑,后续对于小李的信息将抹除

情况2:相反,如果当前时刻接收到的线索是"小红惯用手是左手",那么后续对于小红的记忆不会抹除。

3.2 输入过程

当接收到有价值的线索时,就要把这部分信息保存到工作记忆中。

输入门是根据上一时刻的推理h(t-1)和当前时刻接收到的线索x(t),决定存入工作记忆c(t)中的比例和内容,作用是记忆有价值的线索。比较特别的是此处既输出比例,又输出内容,二者相乘才得到最终内容,而不是直接输出最终内容,这是与遗忘过程相对应的,遗忘过程是计算出遗忘比例,再用比例乘原始长期记忆。

举例:

情况1:上一时刻推理是"嫌疑人是左撇子",当前时刻接收到的线索是"小李惯用手是右手,小李的社会关系有甲乙丙丁",那么生成候选记忆是小李的信息(比如社会关系),但存入比例为0,因此不会把候选记忆存入工作记忆中

情况2:当前时刻接收到的线索是"小红惯用手是左手。小红案发前去过五金店",那么生成的候选记忆是小红的信息(比如行程),存入比例较高,会把候选记忆存入工作记忆中。

3.3 工作记忆更新

即根据遗忘门和输入门,利用遗忘比例和保存比例,对上一时刻的工作记忆c(t-1)和当前时刻候选记忆c'(t)进行遗忘或保存,该遗忘的遗忘,该保存的保存。

3.4 输出过程

作用是根据已有信息做决策,形成中间推理结果。但并不是直接将已有信息提取出来,而是计算一个比例值,决定哪些部分提取比例高,哪些部分提取比例低。比例依然是由上一时刻的推理h(t-1)和当前时刻接收到的线索x(t)决定的。

例如,当前时刻接收到的线索是"小红惯用手是左手。小红案发前购买过刀具",那么对于小红信息的提取比例较高,将其信息提取后,经过加工(tanh),将推理出小红的作案嫌疑较大。

例如,当前时刻接收到的线索是"凶手被受害人划伤",柯南开启尘封的记忆,想起来小红手指包着创可贴,那么将小红信息的提取比例较高。"小红手指包着创可贴"这个记忆很可能是很久之前看到过的,但仍能够对当前的推理产生帮助。

可以发现,输入的线索和上一时刻的短期记忆(统称为线索)通过输入门和遗忘门形成长期记忆,实现了线索到长期记忆的转化,在未来合适的时间线索将会触发,产生影响。

4 计算过程

4.1 遗忘门

作用:遗忘门用于控制上一时刻的长期记忆有多少比例保留到当前时刻。

计算方法:上一时刻输出h(t-1)与当前时刻输入xt拼接后,乘Wf做线性变换,添加偏置bf后,经过Sigmoid函数得到ft。f代表forget。ft是一个0到1之间的比例,在下文工作记忆的计算中可以看到,ft表示长期记忆有多少比例保留到当前时刻。这里Wf和bf是需要训练的参数。

4.2 输入门

作用:输入门用于更新长期记忆。其中i(t)表示当前时刻信息有多少比例更新到长期记忆里,C(t)表示产生的当前时刻信息。

计算方法:i(t)与遗忘门类似,只是参数换成了W(i)和b(i),i表示input。将参数换成W(c)和b(c),再经过tanh激活得到了C(t),其中c代表cell。

4.3 输出门

作用:输出门用于筛选长期记忆中有用的信息,并将此信息输出。

计算方法:与输入门类似,只是参数换成配Wo和bo,其中o代表output,h代表hidden。

4.4 长期记忆

将遗忘门和输入门的结果结合,得到更新后的长期记忆。

4.5 sigmoid和tanh

sigmoid输出0-1的数值,在LSTM中类似于筛选器,按重要性对信息进行筛选。

tanh输出-1到1的数值,在LSTM中起到激活的作用,并增加非线性。

5 参考资料

长短期记忆神经网络(LSTM)介绍以及简单应用分析「建议收藏」-腾讯云开发者社区-腾讯云

相关推荐
xiatian_win12316 分钟前
本地部署 OpenManus 保姆级教程(Windows 版)
人工智能·windows
蹦蹦跳跳真可爱58919 分钟前
Python----计算机视觉处理(opencv:像素,RGB颜色,图像的存储,opencv安装,代码展示)
人工智能·python·opencv·计算机视觉
BIT_Legend38 分钟前
Torch 模型 model => .onnx => .trt 及利用 TensorTR 在 C++ 下的模型部署教程
c++·人工智能·python·深度学习
蹦蹦跳跳真可爱5891 小时前
Python----计算机视觉处理(Opencv:自适应二值化,取均值,加权求和(高斯定理))
人工智能·python·opencv·计算机视觉
轻松Ai享生活1 小时前
从代码粘贴侠到优雅的Coder? - 3个大神教我的脱坑不传之秘
人工智能·面试·程序员
机器之心1 小时前
GPT4规模大模型落地,Meta提ExFM框架:万亿参数基础大模型的工业级落地成为可能
人工智能·openai
Scabbards_1 小时前
理解知识如何在大型Vision-Language Models 中演化
人工智能·语言模型·自然语言处理
机器之心1 小时前
OpenAI突然发布智能体API!支持网络和文件搜索以及computer use
人工智能·openai
noedn1 小时前
测试大语言模型在嵌入式设备部署的可能性-ollama本地部署测试
人工智能·语言模型·自然语言处理
PawSQL2 小时前
推理模型对SQL理解能力的评测:DeepSeek r1、GPT-4o、Kimi k1.5和Claude 3.7 Sonnet
java·数据库·人工智能·sql·sql优化·pawsql·deepseek