(三)循环神经网络RNN之LSTM和GRU

news2025/10/18 19:00:53

LSTM介绍

LSTM(Long Short Term Memory)是 Hochreater 和 Schmidhuber 在 1997 年提出的一种网络结构,尽管该模型在序列建模上的特性非常突出,但由于当时正是神经网络的下坡期,没有能够引起学术界足够的重视。随着深度学习逐渐发展,后来 LSTM 的应用也逐渐增多。

LSTM 区别于 SimpleRNN 的地方,主要就在于它在算法中加入了一个判断信息有用与否的“处理器”,这个处理器作用的结构被称为记忆块(Memory Block)

memory block 结构主要包含了三个门:遗忘门(Forget Gate)、输入门(Input Gate)、输出门(Output Gate)与一个记忆单元(Cell)。

所有RNN都具有一种重复神经网络模块的链式的形式。在标准的RNN中,这个重复的模块只有一个非常简单的结构,例如一个tanh层:
在这里插入图片描述
LSTM同样是这样的结构,但是重复的模块拥有一个不同的结构。具体来说,RNN是重复单一的神经网络层,LSTM中的重复模块则包含四个交互的层,三个Sigmoid 和一个tanh层,并以一种非常特殊的方式进行交互。

在这里插入图片描述

LSTM的核心思想

LSTM的关键就是细胞状态,水平线在图上方贯穿运行。
细胞状态类似于传送带。直接在整个链上运行,只有一些少量的线性交互。信息在上面流传保持不变会很容易。
在这里插入图片描述

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

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

遗忘门(记忆门)

在这里插入图片描述

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

输入门和细胞状态

在这里插入图片描述
下一步是确定什么样的新信息被存放在细胞状态中。这里包含两个部分:

  1. sigmoid层称“输入门层”决定什么值我们将要更新;
  2. 一个tanh层创建一个新的候选值向量 C ~ t \widetilde{C}_t C t ,会被加入到状态中。

在这里插入图片描述
现在是更新旧细胞状态的时间了, C t − 1 C_{t-1} Ct1更新为 C t C_{t} Ct。前面的步骤已经决定了将会做什么,我们现在就是实际去完成。

我们把旧状态与 f t f_{t} ft 相乘,丢弃掉我们确定需要丢弃的信息,接着加上 i t i_{t} it * C ~ t \widetilde{C}_t C t。这就是新的候选值,根据我们决定更新每个状态的程度进行变化。

输出门

在这里插入图片描述
最终,我们需要确定输出什么值。这个输出将会基于我们的细胞状态,但是也是一个过滤后的版本。

首先,我们运行一个sigmoid层来确定细胞状态的哪个部分将输出出去。
接着,我们把细胞状态通过tanh进行处理(得到一个在-1到1之间的值)并将它和sigmoid门的输出相乘,最终我们仅仅会输出我们确定输出的那部分。

LSTM完整结构

在这里插入图片描述
对输入门和遗忘门的理解:
在这里插入图片描述

LSTM如何避免梯度弥散?

在这里插入图片描述
与之前介绍的普通RNN不同,LSTM梯度是几项相加,而不包含激活函数导数连乘。所以LSTM不会存在梯度弥散的问题。

门控循环单元 GRU

GRU(Gated Recurrent Unit)这个结构是 2014 年才出现的,效果跟 LSTM 差不多,但是用到的参数更少,所以计算速度会更快一些。GRU 将遗忘门和输入门合成了一个单一的更新门,同时将记忆单元与隐藏层合并成了重置门,进而让整个结果运算变得更加简化且性能得以增强。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/334660.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构-JAVA】排序

排序在现实生活中的应用可谓相当广泛,比如电商平台中,选购商品时,使用价格排序或是综合排序、高考填报志愿的时候,会参考全国大学排名的情况。下面介绍一些计算机中与排序相关的概念:排序:所谓排序&#xf…

超详细的JAVA高级进阶基础知识03

目录 3. 面向对象高级 - 常用的API 3.1 Object 类 3.1.1 Object 类介绍 3.1.2 Object类的常用方法: 3.1.3 Objects 概述 3.2 Math 类 3.3 System 类 3.3.1 System 类概述 3.3.2 常用方法 3.4 BigDecimal 类 3.4.1 BigDecimal 类概述 3.4.2 BigDecimal 类…

windows 编译 open3d 下

1.安装cmake 快速通道:链接:https://pan.baidu.com/s/1gZYAlGRRj4UVGgaTBaZXjg?pwd1klo 提取码:1klo --来自百度网盘超级会员V4的分享警告不用管编译中成功就是61开始配置 cmake 那时候选的路径glew.libglfw3.libjsoncpp.libOpen3D.libpng.l…

jdk和Android sdk 和 ndk 和 apache-ant环境变量配置

ANDROID_HOMEG:\android-sdk-windowsCLASSPATH.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\jre\lib\rt.jar;%JAVA_HOME%\lib\dt.jar;%ANT_HOME%\libJAVA_HOMEC:\Program Files (x86)\Java\jdk1.8.0_361NDK_HOMEG:\android-ndk-r25cant下载https://www.likecs.com…

win环境安装部署Jenkins

win环境安装部署Jenkins,2022年11月:从2022年 6 月 28 日发布的 Jenkins 2.357 和2022年9 月发布的 LTS 版本开始,Jenkins 需要 Java 11 才能使用,放弃 Java 8,如果用JDK1.8,那么Jenkins版本需要是2.357版本…

ChatGPT逐鹿:谷歌“翻车”,微软抢跑,国内概念股狂飙

2023年开年才一个月,微软、谷歌两大巨头在AI战场就上演了“神仙打架”。 1月里两家公司围绕OpenAI和ChatGPT发布的密集消息余温尚在,2月7日,谷歌就官宣了自家的ChatGPT竞品Bard,并发布演示Demo。2月8日,微软直接上线了…

室内三维地图怎么做的?室内地图怎么做好看?

室内导航、定位中须采用基于建筑平面图生产的室内地图,现有的生产室内地图的方法都是依靠人工去根据建筑平面图使用矢量绘图工具去绘制矢量化的室内地图示意图,然后再去标明具体的区域名称功能或者标注位置点。因此制作室内地图往往都比较耗时&#xff0…

blender基础操作

shiftc:游标回到世界中心 shifta: 添加物体 gx或y或z:沿x轴或y轴或z轴移动 gx加数字:往x轴方向移动几格 rx加度数:绕x轴旋转多少度 分割界面:右键单击间隙,选择verticle tab: 来回切换编辑界面和物体界面&…

下班前几分钟,逮到一个腾讯10年老测试开发,聊过之后大彻大悟...

优秀的人真的是比比皆是,不比不知道,一比吓一跳 老话说的好,这人呐,一单在某个领域鲜有敌手了,就会闲得蛋疼。就在昨天下班的前几分钟认识了一个在阿里工作了 10 年的测试开发,因为本人天赋比较高&#xff…

Nacos 配置管理最佳实践

作者:翼严 Nacos 简介 Nacos 是一个更易于构建云原生应用的微服务基础平台,核心包含动态服务发现,配置管理,服务管理平台。 配置管理是 Nacos 的核心功能,它提供了运行期不重启应用的情况下动态修改配置值的功能。 …

修改Vue项目运行的IP和端口

前言 我们在使用VsCode启动Vue项目的时候,我发现:默认的端口号好像和tomcat一样,默认都是8080,如果8080被占用了,就会使用8081,8082这样的方式以此类推。 那么,我们是否可以像后端一样,通过修改…

MySQL数据库04——索引

索引基础 使用索引的主要原因之一就是提供唯一的字段值。唯一索引强制表中任意两条记录的索引值互不相同。创建唯一索引需要使用UNIQUE关键字。下面通过例题说明创建和使用惟一索引的方法。 创建和使用唯一索引 首先,在MySQL 中创建例题中将要使用的testuni表&…

独立图片服务器有什么突出之处

服务器是网络中非常重要的设施,承载着不同流量的访问,这就要求服务器具有快速的吞吐量、高稳定性和高可靠性。独立图片服务器作为独立服务器的衍生品,在数据利用方面的应用可以为企业在数据处理和分析方面带来一场革命。本文就将介绍独立图片…

windows 重启redis的方法

目录打开本地的文件夹选中文件的路径输入cmd在cmd命令窗口中输入以下的指令指令的内容以及对应的命令含义前言:最近在本地搭建redis环境,突然发现本地的redis启动失败了,使用reids的启动命令也不行,于是找了不少的方法&#xff0c…

windows下Spark环境搭建

一、下载 我的是hadoop3.0.0,下载Hadoop3.0:下载链接 自己选择一个盘,我这里是 D:\software 1、配置Hadoop_HOME环境变量 新建系统变量 2、在Path环境变量,添加 %HADOOP_HOME%\bin3、修改配置文件:在hadoop-3.0.0\etc\hadoop…

原创 | arXiv上成功发表的预印本有什么特征?这样写,你的论文也能中!

作者:林嘉亮审校:陈之炎本文约4400字,建议阅读8分钟本文介绍了专注于科学和工程领域的印刷本平台——arXiv的特征。“预印本(preprint)是一份完整的科学论文手稿(通常也会同时提交给需要同行评审的期刊&…

Linux centos系统安装argoverse-api问题解决

1、遇到带有sklearn关键字的报错 将setup.py中的sklearn改为scikit-learn 2、遇到CMake 3.1 or higher is required. You are running version 2.8.12.2....... 在python包管理器发现版本正常 于是使用centos命令手动安装 1、移除老版本cmake版本并安装依赖包 yum remove c…

[Unity 打包WebGL用本地服务器Tomcat测试]

打包WebGLUnity-WebGL-环境部署、打包1、 步骤流程图:不要忘记把场景加上去发布时不要勾选Development Build,勾选后文件非常大,然后点击上图左下角的 Player Settings设置一下分辨率、做一个 UI 自适应。strip engine code:官方文…

从降本增效到电机控制知识树

回顾永磁同步电机控制应用场景,电机控制算法的发展大体归结于四个字,降本增效。以下内容围绕这四个字,增效、降本两个方面梳理该领域相关知识,串联永磁同步电机控制技术体系。 1、 增效 增效即提高控制性能,具体落脚…

[Nginx]Ngnix基础

文章目录一、基础1.1 what can nginx do1.1.1 基本HTTP服务1.1.2 高级HTTP服务1.1.3 Nginx常用的功能模块1.1.4 Nginx的核心组成1.2 why nginx?1.3 安装(略)1.4 nginx的目录结构1.5 nginx.conf的几个关键配置keepalive_timeoutkeepalive_requestsserver块和locatio…