【神经网络】一文读懂LSTM神经网络

article/2025/9/22 11:14:34

简介


说到LSTM神经网络,大家都不陌生,LSTM指的是Long Short-Term Memory,意思是:长短时记忆,也就是说这个神经网络有记忆功能,为什么说它有记忆功能呢?因为在训练数据的时候,很久之前的文本保留下来的信息,可以对当下的预测产生影响,所以就认为神经网络记住了一部分信息。

1. 与RNN对比

由于LSTM来源于对RNN的升级,我们先从RNN入手,来理解整个LSTM在做什么
RNN
图上的三个节点其实是按照时间的顺序展开的,或者叫做顺着时序展开的,我们只需要关注其中的一个节点就可以了,从图上看,每个节点的输入有两个,输出也有两个。输出的两个是同一个值,一个用于输出结果,一个用于下一层的输入(其实是同一层,只是下一次迭代的输入),就这样不停的循环迭代训练,就完成了一个RNN神经网络的训练。可能有人要疑惑了,只有一个神经元节点,也就是说只有一个权重W,这样训练出来的网络模型能有很好的拟合能力,或者说是记忆能力?其实,图上只是展现了一个神经元的内部过程,其实这种神经元是可以并列有很多的,同时,也可以设置多个隐层,这样的话就会有很多的参数了,其记忆能力就会变强了。
接下来我们看看LSTM有什么升级
在这里插入图片描述
由图可知,和RNN相比,从输入和输出方面,LSTM多了个输入,也多了个输出,多的这个值,就是LSTM的记忆和遗忘机制,值通常用C表示,C指的是Cell,也就是细胞的状态的意思。也就是说,这个值能够决定记忆什么,忘记什么。那这个值的出现有什么好处呢?假如当这个值为0的时候,就说明前面的都不用记住了,也就是说,在反向求导的时候,到这里就可以停止了,我们知道,链式法则里的连乘或者连加,有了这个值的出现,我们就可以避免梯度的Explod和vanishing。具体C的遗忘机制的实现方法,我们在下面详细的探讨。

2. 细节解释

在这里插入图片描述
要看懂LSTM的具体实现步骤,就得了解每个小组件代表着什么意思。

  • Nerual Network Layer : 神经网络层,在是指经过这个图标的时候,会对数据进行非线性变换,通常是添加激活函数和偏置。σ一般指的是sigmoid激活函数,tanh便是tanh函数;
  • Pointwise Operation:智慧点操作,这个点有两种运算方式,一种是加,一种是乘;
  • Vector Transfer:向量的传输;
  • Concatenate:连接,一般是向量的拼接操作;
  • Copy:拷贝,即同一份数据,拷贝成两份输出。

3. 细胞状态

在这里插入图片描述
从图上可以看到,Cell状态的变换即C值的变换一共经过了两次操作,这两次操作决定了Ct-1的遗忘和更新,首先,Ct-1经过了乘法的Pointwise Operation,这一步决定了Ct-1值是否被遗忘,为什么呢?我们可以看出,与Ct-1相乘的数来自于下方的层,那么下方传过来的数据的取值范围是多少呢?我们可以看出,下方的数据通过的是一个sigmoid的层,也就是说下方穿过来的数据的取值为(0, 1),一般情况下,当输入值大于3或者小于-3的时候,sigmoid的值就接近了1和0,也就是说,C的值一般情况下会接近于Ct-1不变,或者0,也就是说记住了C或者遗忘了Ct-1,当然,一个介于(0, 1)之间的数与Ct-1相乘的话,则代表需要记住多少的Ct-1值。接下来,Ct-1值又遇到了一个加法,则是对Ct-1>值的变更,比如新的信息的加入,一般理解为需要记忆的新的东西。这么来看,我们就完成了C值的遗忘机制,也就是说,这个神经网络具备了记忆和遗忘的能力。
在LSTM中,这便是所谓的门的概念。【在集成电路里,逻辑门就是代表逻辑上的“真”与“假”或二进制当中的1和0,从而实现逻辑运算。】

4. 遗忘门

在这里插入图片描述
在上面介绍Cell状态的时候也粗略的讨论了这个遗忘门的基本机制,我们来看这个遗忘门的输入信息,分别是 ht-1xt,从公式上我们可以看到是这两个值与权重矩阵 Wf 相乘,我们可以理解为 ht-1xt 的拼接,拼接以后再与 Wf 相乘,然后加上一个偏置 bf,最后经过一个激活函数sigmoid,使得线性变换变成非线性变换,此时 ft 的取值为(1,0),这个值决定了 Ct-1 的值是否被记忆或者遗忘,或者说记住多少,这就是这个遗忘门的作用。

5. 输入门

在这里插入图片描述
同理,itft 公式是一样的,这就说明,it 也具有遗忘的功能,比如,Ct-1在遇到 ft 的时候,ft 决定保留Ct-1的记忆,则此时,it 则决定着对 Ct 的遗忘能力,所以,Ct 是LSTM需要记忆的新的值。我们可以看到Ct的取值范围是(-1,1),说明新增的记忆的是征服兼有的,这代表着什么呢,可以理解为正例记忆和反例记忆。

在这里插入图片描述
Ct-1 遗忘剩余的部分,与新的要记忆的部分 Ct 相加,就是要输出的Ct ,详细不再赘述。

6. 输出门

在这里插入图片描述
最后来到了输出门,本次输出的结果就从这个地方输出,我们可以看到ht 是由ot 与tanh(Ct) 相乘得来,也就是说本次需要多少为我所用的含义。

7. 变体

在这里插入图片描述
LSTM的变体有很多,最常提到的要数GRU(Gated Recurrent Unit)变体了,其内部构造也是相当的先进,本次不作为重点讲解对象,下次有机会再讲吧。

8. 总结

至此,LSTM的内部构造以及数据的运转机制和含义都交代完了,通过上面的理解,我们可以看出,LSTM对RNN的改进在于对数据的更细化的处理,总体上理解LSTM就是可长可短时的记忆机制,所以叫做长短时记忆神经网络。


http://chatgpt.dhexx.cn/article/0MfMY3O8.shtml

相关文章

深度学习中的循环神经网络LSTM详解

(一)、什么是循环神经网络LSTM? LSTM指的是长短期记忆网络(Long Short Term Memory),它是循环神经网络中最知名和成功的扩展。由于循环神经网络有梯度消失和梯度爆炸的问题,学习能力有限,在实际任务中的效果…

【神经网络】学习笔记三—LSTM简介篇

1. RNN和LSTM结构对比 RNN: 循环神经网络(Recurrent Neural Network,RNN)是一种用于处理序列数据的神经网络。相比一般的神经网络来说,他能够处理序列变化的数据。比如某个单词的意思会因为上文提到的内容不同而有不…

深度学习-LSTM网络-代码-示例

一、 LSTM网络原理 要点介绍 (1)LSTM网络用来处理带“序列”(sequence)性质的数据,比如时间序列的数据,像每天的股价走势情况,机械振动信号的时域波形,以及类似于自然语言这种本身带有顺序性质的由有序单…

LSTM模型介绍

递归神经网络(RNN) 人类不会每时每刻都开始思考。 当你阅读这篇文章时,你会根据你对之前单词的理解来理解每个单词。 你不会忘掉掉所有东西,然后再从头开始思考。 你的想法有持久性。 传统的神经网络不能做到这一点,…

人人都能用Python写出LSTM-RNN的代码![你的神经网络学习最佳起步]

0. 前言 本文翻译自博客: iamtrask.github.io ,这次翻译已经获得trask本人的同意与支持,在此特别感谢trask。本文属于作者一边学习一边翻译的作品,所以在用词、理论方面难免会出现很多错误,假如您发现错误或者不合适…

LSTM神经网络算法

RNN RNN 是包含循环的网络,允许信息的持久化。 在下面的示例图中,神经网络的模块,A,正在读取某个输入 x_i,并输出一个值 h_i。循环可以使得信息可以从当前步传递到下一步。 RNN 可以被看做是同一神经网络的多次复制&…

Understanding LSTM Networks(LSTM的网络结构)

Recurrent Neural Networks 人类不是每时每刻都从头开始思考的。当你读这篇文章的时候,你理解每个单词是基于你对以前单词的理解。你不会把所有的东西都扔掉,然后从头开始思考。你的思想有毅力。传统的神经网络无法做到这一点,这似乎是一个主…

理解 LSTM 网络

递归神经网络人类并不是每时每刻都从头开始思考。正如你阅读这篇文章的时候,你是在理解前面词语的基础上来理解每个词。你不会丢弃所有已知的信息而从头开始思考。你的思想具有持续性。传统的神经网络不能做到这点,而且这似乎也是它的主要缺陷。比如&…

LSTM网络的简单理解

目录 RNN递归神经网络LSTM神经网络结构变形1.peephole connections结构2.在忘记门与输入门之间引入一个耦合3.门循环单元(GRU) 今天对LSTM网络进行学习。 在理解LSTM网络之前,我们首先要对Recurrent Neural Networks(RNNs&#xf…

循环神经网络与LSTM

1. 循环神经网络 ①基本结构 在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的。但是这种普通的神经网络对于很多问题却无能无力。例如,你要预测句子的下一个单词是什么&am…

实例 :教你使用简单神经网络和LSTM进行时间序列预测(附代码)

翻译:张玲 校对:丁楠雅 本文约1500字,建议阅读5分钟。 作者基于波动性标准普尔500数据集和Keras深度学习网络框架,利用python代码演示RNN和LSTM RNN的构建过程,便于你快速搭建时间序列的预测模型。 图片来源&#xff…

【LSTM】深入浅出讲解长短时记忆神经网络(结构、原理)

本文收录于《深入浅出讲解自然语言处理》专栏,此专栏聚焦于自然语言处理领域的各大经典算法,将持续更新,欢迎大家订阅!​​个人主页:有梦想的程序星空​​个人介绍:小编是人工智能领域硕士,全栈…

深入理解LSTM神经网络

本文内容及图片主要参考:Understanding LSTM Networks LSTM核心思想 LSTM最早由 Hochreiter & Schmidhuber 在1997年提出,设计初衷是希望能够解决神经网络中的长期依赖问题,让记住长期信息成为神经网络的默认行为,而不是需要…

LSTM神经网络实战

上一遍博客简单的介绍了LSTM神经网络的工作原理, 有兴趣的打开了解一下: https://blog.csdn.net/weixin_52486467/article/details/126301845 显目介绍: 一、问题背景 电力系统负荷(电力需求量,即有功功率&#xf…

LSTM -长短期记忆网络(RNN循环神经网络)

文章目录 基本概念及其公式输入门、输出门、遗忘门候选记忆元记忆元隐状态 从零开始实现 LSTM初始化模型参数定义模型训练和预测 简洁实现小结 基本概念及其公式 LSTM,即(long short-term Memory)长短期记忆网络,也是RNN循环神经网络的一种改进方法&…

机器学习之LSTM的Python实现

什么是LSTM? LSTM(长短期记忆人工神经网络),是一种可以学习长期依赖特殊的RNN(循环神经网络)。 传统循环网络RNN虽然可以通过记忆体,实现短期记忆,进行连续数据的预测。但是当连续…

神经网络:LSTM基础学习

1、LSTM简介 在时间序列数据学习中,传统的循环神经网络(RNN)存在较多的学习瓶颈和技术缺陷,而长短时记忆(LSTM)神经网络克服了循环神经网络的缺陷,使其在长时间序列数据学习训练中能克服梯度爆炸…

Lstm(循环神经网络)

算法模型Lstm(循环神经网络): 简介 LSTM和RNN相似,它们都是在前向传播的过程中处理流经细胞的数据,不同之处在于 LSTM 中细胞的结构和运算有所变化。 LSTM结构: 遗忘门: 遗忘门的功能是决定应丢弃或保留哪些信息。…

基于MATLAB的LSTM神经网络时序预测

参考博客及文献:4 Strategies for Multi-Step Time Series Forecasting Multivariate Time Series Forecasting with LSTMs in Keras (machinelearningmastery.com) LSTM进阶:使用LSTM进行多维多步的时间序列预测_lstm多维多部预测_一只小EZ的博客-CSD…

LSTM神经网络图解

LSTM神经网络图详解 (1)遗忘门,用于计算信息的遗忘(保留)程度,通过sigmoid处理后为0到1的值,1表示全部保留,0表示全部忘记。 f t σ ( W f ⋅ [ h t − 1 , x t ] b f ) f_{t}\si…