LSTM网络介绍

一、RNN

1.1 前言

对于序列类型数据(如:如文本、语音、股票、时间序列等数据)即当前数据内容与前面的数据有关,对于这类数据传统神经网络无法训练出具有顺序的数据,因为模型搭建时没有考虑数据上下之间的关系。

那么对于这类数据有没有一种更好的方案呢?RNN

1.2 RNN简介

处理序列输入时具有记忆性 ,可以保留之前输入的信息并继续作为后续输入的一部分进行计算。

RNN的特点:

引入了隐状态h的概念,隐状态h可以对序列类形的数据提取特征,接着再转换为输出

h1的计算:

基于上一个隐藏层的状态和当前的输入计算得来,总结一下即,而这里的𝑓一般是tanh、sigmoid、ReLU等非线性的激活函数

h2的计算:

这里需要注意:

1、在计算时,每一步使用的参数U、W、b都是一样的,也就是说每个步骤的参数都是共享的,这是RNN的重要特点;

2、下文的LSTM和GRU中的权值则不共享。

依次类推(使用相同的参数U、W、b):

这里为了方便,只画出序列长度为4的情况,实际上,这个计算过程可以无限地持续下去。

y1输出:

同理,依次类推:

在此过程中,需要注意:

RNN结构中输入是x1, x2, .....xn,输出为y1, y2, ...yn,也就是说,输入和输出序列必须要是等长的

1.3 RNN的应用

RNN可以被看做是同一神经网络的多次复制,每个神经网络模块会把消息传递给下一个。所以,如果我们将这个循环展开:

链式的特征揭示了RNN本质上是与序列和列表相关的,它们是对于这类数据的最自然的神经网络架构。

1.4 RNN的局限

上文提到RNN网络可以根据历史数据,推测当前数据,但是存在一个问题:历史数据中的相关信息与此处推测位置的数据相距不能过大。如果相距过大,RNN会丧失学习到连接如此远的信息的能力。即在实际上,RNN无法处理长期依赖问题。

原因:梯度会随着时间的推移不断下降减少,而当梯度值变得非常小时,就不会继续学习。

示例:

当出现"我的职业是程序员,...(此处省略10000字),我最擅长的是电脑"。当需要预测最后的词"电脑"。当前的信息建议下一个词可能是一种技能,但是如果我们需要弄清楚是什么技能,需要先前提到的离当前位置很远的"职业是程序员"的上下文。这说明相关信息和当前预测位置之间的间隔就变得相当的大。

那么该怎么缓解这个问题呢?LSTM/GRU

二、LSTM

2.1 LSTM简介

是一种RNN特殊的类型,可以学习长期依赖信息 。大部分与RNN模型相同,但它们用了不同的函数来计算隐状态。

LSTM网络可以学习只保留相关信息 来进行预测,并忘记不相关的数据。通俗来说:因记忆能力有限,记住重要的,忘记无关紧要的。

注意:

LSTM通过刻意的设计来避免长期依赖问题。记住长期的信息在实践中是LSTM的默认行为,而非需要付出很大代价才能获得的能力!

2.2 与RNN在网络结构上的区别

2.2.1 RNN的网络结构

所有RNN都具有一种重复神经网络模块的链式的形式。在标准的RNN中,这个重复的 模块只有一个非常简单的结构,例如一个tanh层。

2.2.2 LSTM的网络结构

LSTM同样是这样的结构,但是重复的模块拥有一个不同的结构。具体来说,RNN是重复单一的神经网络层,LSTM中的重复模块则包含四个交互的层,三个Sigmoid 和一个tanh层,并以一种非常特殊的方式进行交互。

上图中,σ表示的Sigmoid 激活函数与 tanh 函数类似,不同之处在于 sigmoid 是把值压缩到0~1 之间而不是 -1~1 之间。这样的设置有助于更新或忘记信息:

1、因为任何数乘以 0 都得 0,这部分信息就会剔除掉;

2、同样的,任何数乘以 1 都得到它本身,这部分信息就会完美地保存下来

即相当于要么是1则记住,要么是0则忘掉,所以还是这个原则:因记忆能力有限,记住重要的,忘记无关紧要的

2.3 LSTM的核心思想

LSTM有通过精心设计的称作为"门"的结构来去除或者增加信息到细胞状态的能力。门是一种让信息选择式通过的方法。他们包含一个sigmoid神经网络层和一个pointwise乘法的非线性操作。

如此,0代表"不许任何量通过",1就指"允许任意量通过"!从而使得网络就能了解哪些数据是需要遗忘,哪些数据是需要保存。

2.4 LSTM的分类

2.4.1 遗忘门

功能:决定应丢弃哪些关键词信息。

步骤:

在LSTM中的第一步是决定我们会从细胞状态中丢弃什么信息。这个决定通过一个称为"忘记门"的结构完成。该忘记门会读取上一个输出和当前输入,做一个Sigmoid 的非线性映射,然后输出一个向量(该向量每一个维度的值都在0到1之间,1表示完全保留,0表示完全舍弃,相当于记住了重要的,忘记了无关紧要的),最后与细胞状态相乘。

如下图:红圈表示Sigmoid 激活函数,蓝圈表示tanh 函数

对于上图公式:

权值,是不共享,即是不一样的,即:

2.4.2 输入门

功能:用于更新细胞状态。

这里包含两个部分:

第一,sigmoid层称"输入门层"决定什么值我们将要更新;

第二,一个tanh层创建一个新的候选值向量,会被加入到状态中

步骤:

1、首先将前一层隐藏状态的信息和当前输入的信息传递到 sigmoid 函数中去。将值调整到 0~1 之间来决定要更新哪些信息。0 表示不重要,1 表示重要。

2、将前一层隐藏状态的信息和当前输入的信息传递到 tanh 函数中去,创造一个新的侯选值向量。最后将 sigmoid 的输出值与 tanh 的输出值相乘,sigmoid 的输出值将决定 tanh 的输出值中哪些信息是重要且需要保留下来的。

上图公式:

2.4.3 更新细胞状态

更新为。前面的步骤已经决定了将会做什么,我们现在就是实际去完成把旧状态与相乘,丢弃掉我们确定需要丢弃的信息,接着加上。这就是新的候选值,根据我们决定更新每个状态的程度进行变化

2.4.4 输出门

功能:用来确定下一个隐藏状态的值。

步骤:

1、将前一个隐藏状态和当前输入传递到 sigmoid 函数中,然后将新得到的细胞状态传递给 tanh 函数。

2、将 tanh 的输出与 sigmoid 的输出相乘,以确定隐藏状态应携带的信息。再将隐藏状态作为当前细胞的输出,把新的细胞状态和新的隐藏状态传递到下一个时间步长中去。

相关推荐
范桂飓2 小时前
Skills 开发实践
人工智能
moonsims2 小时前
AiBrainBox-V的核心优势及应用场景分析vs四光吊舱C3-C5
人工智能·无人机
zhengyquan2 小时前
7000mAh 电池 + 独立 AI 键,小米 18 Pro 是堆料还是突破?
大数据·人工智能
俊哥V2 小时前
每日 AI 研究简报 · 2026-04-17
人工智能·ai
geneculture2 小时前
意识的多学科定义:从16个视域,到融智学统合——基于“意+识”框架且区分“意识≠心智”系统研究
大数据·人工智能·融智学的重要应用·哲学与科学统一性·融智时代(杂志)·意识=意+识·智=信息处理+选择用意
昇腾CANN2 小时前
码力全开特辑直播预告|4月20日19:00,PyPTO Tensor编程范式介绍
人工智能·昇腾·cann
悟乙己2 小时前
andrej-karpathy-skills:让 AI 编程更靠谱 Karpathy 四大原则深度解析
人工智能·dreamweaver
不知名的老吴2 小时前
AI辅助编程之生成测试用例
人工智能·测试用例
Ai173163915792 小时前
GB200 NVL72超节点深度解析:架构、生态与产业格局
大数据·服务器·人工智能·神经网络·机器学习·计算机视觉·架构