当前位置: 首页 > news >正文

深度学习之 LSTM

1.1 LSTM的产生原因

​ RNN在处理长期依赖(时间序列上距离较远的节点)时会遇到巨大的困难,因为计算距离较远的节点之间的联系时会涉及雅可比矩阵的多次相乘,会造成梯度消失或者梯度膨胀的现象。为了解决该问题,研究人员提出了许多解决办法,例如ESN(Echo State Network),增加有漏单元(Leaky Units)等等。其中最成功应用最广泛的就是门限RNN(Gated RNN),而LSTM就是门限RNN中最著名的一种。有漏单元通过设计连接间的权重系数,从而允许RNN累积距离较远节点间的长期联系;而门限RNN则泛化了这样的思想,允许在不同时刻改变该系数,且允许网络忘记当前已经累积的信息。

1.2 图解标准RNN和LSTM的区别

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

在这里插入图片描述

​ LSTM 同样是这样的结构,但是重复的模块拥有一个不同的结构。不同于单一神经网络层,这里是有四个,以一种非常特殊的方式进行交互。

在这里插入图片描述

注:上图图标具体含义如下所示:

在这里插入图片描述

​ 上图中,每一条黑线传输着一整个向量,从一个节点的输出到其他节点的输入。粉色的圈代表 pointwise 的操作,诸如向量的和,而黄色的矩阵就是学习到的神经网络层。合在一起的线表示向量的连接,分开的线表示内容被复制,然后分发到不同的位置。

1.3 LSTM核心思想图解

​ LSTM 的关键就是细胞状态,水平线在图上方贯穿运行。细胞状态类似于传送带。直接在整个链上运行,只有一些少量的线性交互。信息在上面流传保持不变会很容易。示意图如下所示:

在这里插入图片描述

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

在这里插入图片描述

LSTM 拥有三个门,分别是忘记层门,输入层门和输出层门,来保护和控制细胞状态。

忘记层门

​ 作用对象:细胞状态 。

​ 作用:将细胞状态中的信息选择性的遗忘。

​ 操作步骤:该门会读取 h t − 1 h_{t-1} ht1 x t x_t xt,输出一个在 0 到 1 之间的数值给每个在细胞状态 C t − 1 ​ C_{t-1}​ Ct1中的数字。1 表示“完全保留”,0 表示“完全舍弃”。示意图如下:

在这里插入图片描述

输入层门

​ 作用对象:细胞状态

​ 作用:将新的信息选择性的记录到细胞状态中。

​ 操作步骤:

​ 步骤一,sigmoid 层称 “输入门层” 决定什么值我们将要更新。

​ 步骤二,tanh 层创建一个新的候选值向量 C ~ t \tilde{C}_t C~t加入到状态中。其示意图如下:

在这里插入图片描述

​ 步骤三:将 c t − 1 c_{t-1} ct1更新为 c t c_{t} ct。将旧状态与 f t f_t ft相乘,丢弃掉我们确定需要丢弃的信息。接着加上 i t ∗ C ~ t i_t * \tilde{C}_t itC~t得到新的候选值,根据我们决定更新每个状态的程度进行变化。其示意图如下:

在这里插入图片描述

输出层门
作用对象:隐层 h t h_t ht

​ 作用:确定输出什么值。

​ 操作步骤:

​ 步骤一:通过sigmoid 层来确定细胞状态的哪个部分将输出。

​ 步骤二:把细胞状态通过 tanh 进行处理,并将它和 sigmoid 门的输出相乘,最终我们仅仅会输出我们确定输出的那部分。

其示意图如下所示:

在这里插入图片描述

1.4 LSTM流行的变体

增加peephole 连接

​ 在正常的LSTM结构中,Gers F A 等人提出增加peephole 连接,可以门层接受细胞状态的输入。示意图如下所示:

在这里插入图片描述

对忘记门和输入门进行同时确定

​ 不同于之前是分开确定什么忘记和需要添加什么新的信息,这里是一同做出决定。示意图如下所示:

在这里插入图片描述

Gated Recurrent Unit

​ 由Kyunghyun Cho等人提出的Gated Recurrent Unit (GRU),其将忘记门和输入门合成了一个单一的更新门,同样还混合了细胞状态和隐藏状态,和其他一些改动。其示意图如下:

在这里插入图片描述

最终的模型比标准的 LSTM 模型要简单,也是非常流行的变体。

2 LSTMs与GRUs的区别

LSTMs与GRUs的区别如图所示:

在这里插入图片描述

从上图可以看出,二者结构十分相似,不同在于

  1. new memory都是根据之前state及input进行计算,但是GRUs中有一个reset gate控制之前state的进入量,而在LSTMs里没有类似gate;
  2. 产生新的state的方式不同,LSTMs有两个不同的gate,分别是forget gate (f gate)和input gate(i gate),而GRUs只有一种update gate(z gate);
  3. LSTMs对新产生的state可以通过output gate(o gate)进行调节,而GRUs对输出无任何调节。
http://www.lryc.cn/news/483261.html

相关文章:

  • LeetCode 3242.设计相邻元素求和服务:哈希表
  • 【AliCloud】ack + ack-secret-manager + kms 敏感数据安全存储
  • 探索JavaScript的强大功能:从基础到高级应用
  • 新增支持Elasticsearch数据源,支持自定义在线地图风格,DataEase开源BI工具v2.10.2 LTS发布
  • Spark的容错机制
  • YOLOv8改进 | 利用YOLOv8进行视频划定区域目标统计计数
  • 基于yolov8、yolov5的番茄成熟度检测识别系统(含UI界面、训练好的模型、Python代码、数据集)
  • wafw00f源码详细解析
  • 什么是crm?3000字详细解析
  • WEB3.0介绍
  • 【深度学习】LSTM、BiLSTM详解
  • 分子对接--软件安装
  • 【Python无敌】在 QGIS 中使用 Python
  • 全面解读:低代码开发平台的必备要素——系统策划篇
  • Vue开发自动生成验证码功能 前端实现不使用第三方插件实现随机验证码功能,生成的验证码添加干扰因素
  • # filezilla连接 虚拟机ubuntu系统出错“尝试连接 ECONNREFUSED - 连接被服务器拒绝, 失败,无法连接服务器”解决方案
  • 2024/11/13 英语每日一段
  • 【全栈开发平台】全面解析 StackBlitz 最新力作 Bolt.new:AI 驱动的全栈开发平台
  • 文献解读-DNAscope: High accuracy small variant calling using machine learning
  • 成都睿明智科技有限公司解锁抖音电商新玩法
  • 【操作系统】——调度算法
  • MySQL LOAD DATA INFILE导入数据报错
  • AI 写作(五)核心技术之文本摘要:分类与应用(5/10)
  • CTFL(二)贯穿软件开发生存周期中的测试
  • PMIC FS8405
  • matlab建模入门指导
  • 微搭低代码入门03函数
  • 零基础Java第十六期:抽象类接口(二)
  • 【css】html里面的图片宽度设为百分比,高度要与宽度一样
  • 前端三大组件之CSS,三大选择器,游戏网页仿写