MATLAB神经网络---lstmLayer(LSTM 长短期记忆神经网络)

前言

描述LSTM就要先描述一下循环神经网络

循环神经网络

循环神经网络通过使用带自反馈的神经元,使得网络的输出不仅和当前的输入有关,还和上一时刻的输出相关,于是在处理任意长度的时序数据时,就具有短期记忆能力。

如下是一个按时间展开的循环神经网络图:

梯度消失和梯度爆炸是困扰RNN模型训练的关键原因之一,产生梯度消失和梯度爆炸是由于RNN的权值矩阵循环相乘导致的,相同函数的多次组合会导致极端的非线性行为。梯度消失和梯度爆炸主要存在RNN中,因为RNN中每个时间片使用相同的权值矩阵。

LSTM

  • LSTM的全称是Long Short Term Memory,顾名思义,它具有记忆长短期信息的能力的神经网络。
  • LSTM 神经网络是一种循环神经网络 (RNN),可以学习序列数据的时间步之间的长期依存关系。
  • LSTM 神经网络的核心组件是序列输入层和 LSTM 层。
  • 序列输入层将序列或时间序列数据输入神经网络中。
  • LSTM 学习序列数据的时间步之间的长期相关性

公式推导

LSTM之所以能够解决RNN的长期依赖问题,是因为LSTM引入了门(gate)机制用于控制特征的流通和损失。LSTM是由一系列LSTM单元(LSTM Unit)组成,其链式结构如图。

我们假设h为LSTM单元的隐藏层输出,c为LSTM内存单元的值,x为输入数据。LSTM单元的更新与前向传播一样,可以分为以下几个步骤。

1、计算遗忘门的值𝑓(𝑡)f_((t))。遗忘门主要用来控制历史信息对当前记忆单元状态值的影响,为记忆单元提供了重置的方式。

2、计算当前时刻的输入结点𝑔(𝑡)g_((t))𝑊(𝑥𝑔)W_((xg))𝑊(h𝑔)W_((hg))𝑊(𝑐𝑔)W_((cg))分别是输入数据和上一时刻LSTM 单元输出的权值:

3、计算输入门 (input gate) 的值𝑖(𝑡)i_((t))。输入门用来控制当前输入数据对记忆单元状态值的影响。所有门的计算受当前输入数据𝑥(𝑡)x_((t))和上一时刻LSTM单元输出值h(𝑡−1)h_((t-1))影响

4、计算当前时刻记忆单元的状态值𝑐(𝑡)c_((t))。记忆单元是整个LSTM神经元的核心结点。记忆单元的状态更新主要由自身状态𝑐(𝑡−1)c_((t-1))和当前时刻的输入结点的值𝑔(𝑡)g_((t)),并且利用乘法门通过输入门和遗忘门分别对这两部分因素进行调节。乘法门的目的是使 LSTM存储单元存储和访问时间较长的信息,从而减轻消失的梯度。

5、计算输出门𝑜(𝑡)o_((t))。输出门用来控制记忆单元状态值的输出。

6、最后计算LSTM单元的输出。

LSTM层的作用

LSTM层:长短时记忆网络层,它的主要作用是对输入序列进行处理,对序列中的每个元素进行编码并保存它们的状态,以便后续的处理。

LSTM 是一种特殊的 RNN,它通过引入门控机制来解决传统 RNN 的长期依赖问题

我们假设h为LSTM单元的隐藏层输出c为LSTM内存单元的值x输入数据

LSTM 的结构包含以下几个关键组件:

  1. 1、输入门(input gate):决定当前时间步的输入信息对细胞状态的影响程度。

2、遗忘门(forgetgate):决定上一个时间步的细胞状态对当前时间步的影响程度。

3、细胞状态(cell state):用于在不同时间步之间传递和存储信息。

4、输出门(output gate):决定细胞状态对当前时间步的输出影响程度。

5、隐藏状态(hiddenstate):当前时间步的输出,也是下一个时间步的输入。

LSTM的训练过程

1数据准备:(LSTM对于数据标准化要求很高)将时序序列数据切分为输入序列和目标序列。输入序列是用于模型输入的历史数据,目标序列是要预测的未来数据。

2初始化模型参数:初始化LSTM模型的权重参数,包括输入门、遗忘门、输出门等。

3前向传播:将输入序列通过LSTM模型进行前向传播。在每个时间步,LSTM模型将接收当前时间步的输入和上一时间步的隐藏状态,然后计算当前时间步的输出和新的隐藏状态,将其传递到下一个时间步。

4计算损失:将LSTM模型的输出与目标序列进行比较,计算模型的损失值。常用的损失函数包括均方误差(MSE)和交叉熵损失(Cross-Entropy)等。

5反向传播:根据损失值,通过反向传播算法计算梯度,并更新模型的权重参数,以减小损失函数的值。这一步是为了优化模型,使其能够更好地拟合训练数据。

6重复训练:重复执行步骤3到5,直到达到预先设定的停止条件,如达到最大训练轮数或损失收敛到一定阈值。

7预测:在训练完成后,使用已训练好的LSTM模型对未来的数据进行预测。将未来的输入序列输入到模型,通过前向传播得到预测结果。

在训练过程中,LSTM通过学习输入序列中的时序模式依赖关系来进行建模,并通过反向传播算法调整模型参数以最小化预测与实际值之间的误差。通过不断迭代训练和优化,LSTM模型逐渐提高预测性能,从而可以更好地预测时序序列的未来趋势和模式。

lstmLayer

描述

LSTM 层是长期学习的 RNN 层 时间序列和序列数据中时间步长之间的依赖关系。

该图层执行加互,这有助于改善梯度流 训练期间的长序列。

语法

  • layer = lstmLayer(numHiddenUnits) 创建 LSTM 图层并设置 NumHiddenUnits 属性。
  • layer = lstmLayer(numHiddenUnits,Name=Value) 使用一个或多个名称-值参数设置其他 OutputMode、Activations、State、Parameters and Initialization、Learning Rate 和 Regularization 以及 Name 属性。

用于递归神经网络的长短期记忆 (LSTM) 层 (RNN) - MATLAB - MathWorks 中国

其他层:

深度学习层列表 - MATLAB & Simulink - MathWorks 中国

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

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

相关文章

vue项目build 打包之后如何本地访问

vue项目build 打包之后如何本地访问 注意:vue项目build打包后 如果想实现本地访问 不能直接打开访问dist文件中的HTML文件(因为页面带会报错打不开。),需要启一个服务,通过服务来访问: 具体操作过程如下&am…

Java虚拟机 - JVM(类加载器、类加载的过程、双亲委派模型、GC垃圾回收)

一、JVM中数据内存区域划分 本地方法栈:里面保存的是native 关键字的方法,不是用Java写的,而是jvm内部用c实现的。 **程序计数器 和 虚拟机栈 每个线程都存在一份。 如果一个 JVM 进程 中有 10个 线程,那么就会存在 10份 程序计数…

高精度除法

高精度除法 思路题目 高进度数字指的是 数字的大小非常非常大,大到所有整型数据类型都存不下,本篇讨论的为一个高精度数除以一个较小的数。 思路 高精度除法的计算方式和我们人类平时计算除法的过程是一样的,我们来模拟一下。 首先 2 除 3…

pikachu中pkxss数据库怎么创建

在用小皮时候,只是知道个pikachu这个数据库,跟着视频看人家用pkxss数据库,自己也想用,查看了很多资料,又蒙又查,终于明白怎么弄,特此传授经验 图像中画横线的就是平常怎么创建数据库的&#xff…

Qt creator day2练习

使用手动连接,将登录框中的取消按钮使用第二种方式,右击转到槽,在该函数中,调用关闭函数,将登录按钮使用Qt4版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为“admin”,密…

vue3-openlayers 使用tianditu,wmts和xyz等source加载天地图切片服务

本篇介绍一下使用vue3-openlayers加载天地图切片,三种方法: 使用tianditu(ol-source-tianditu内部实现其实用的wmts)使用wmts(ol-source-wmts)使用xyz(ol-source-xyz) 1 需求 vue…

Kotlin 实战小记:No-Arg 引用解决 No constructor found的问题

一、问题 新的项目试用一下kotlin, 调用数据库查询数据的时候报了这个问题:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: No constructor found in com.neusoft.collect.entity.cm.CmRoom matc…

Linux搭建我的世界乌托邦探险之旅3.2整合包服务端,Minecraft开服教程

Linux服务器使用MCSM10 搭建 我的世界 乌托邦探险之旅3.2 整合包 服务端 的教程,Minecraft整合包开服教程。 大型养老探险整合包:乌托邦探险之旅3.2,探索上千种结构,造访丰富的自然群系,欣赏生动的生物动画&#xff0…

【小白学Python】爬取数据(三)

【小白学Python】自定义图片的生成(一) 【小白学Python】自定义图片的生成(二) 本文继前两篇文章之后,将前两篇生成图片的文字自动化爬取生成, 爬取zhihu的部分问答数据,仅作本人的学习使用。…

29. 透镜阵列

导论: 物理传播光学(POP)不仅可以用于简单系统,也可以设计优化复杂的光学系统,比如透镜阵列。 设计流程: 透镜阵列建模 在孔径类型中选择“入瞳直径”,并输入2 在视场设定中。设置一个视场&…

STM32高级控制定时器(STM32F103):PWM输出模式

目录 概述 1 PWM模式介绍 2 PWM类型 2.1 PWM边缘对齐模式 2.2 PWM中心对齐模式 3 使用STM32Cube配置PWM 3.1 STM32Cube配置参数 3.2 生成Project 4 设置PWM占空比 4.1 函数介绍 4.3 函数源码 5 测试代码 5.1 编写测试代码 5.2 函数源码 6 运行代码 概述 本文主…

一平台一张图,撑起危化生产“安全伞”

安全生产是永恒的主题,是一切工作的基础。 风险辨识不到位、特种作业不合规、隐患治理不彻底、应急能力不匹配……如何从消除事故隐患、从根本上解决问题?随着新一代信息技术和安全生产的深度融合,安全生产的管理方式也在发生深刻变化。 提前…

基于STM32的智能水产养殖系统(三)

智能水产养殖系统设计 背景 智能水产养殖系统的设计背景主要源于对传统养殖方式的现代化需求和技术进步的推动。以下是该背景的详细阐述: 现代化养殖需求增加: 随着人口增长和食品需求的提升,传统的水产养殖方式面临诸多挑战,如资…

4、matlab双目相机标定实验

1、双目相机标定原理及流程 双目相机标定是将双目相机系统的内外参数计算出来,从而实现双目视觉中的立体测量和深度感知。标定的目的是确定各个摄像头的内部参数(如焦距、主点、畸变等)和外部参数(如相机位置、朝向等&#xff09…

海南云亿商务咨询有限公司抖店开店怎么样?

在数字化浪潮席卷全球的今天,电商行业日新月异,其中抖音电商以其独特的短视频直播模式,迅速崛起成为电商领域的新贵。海南云亿商务咨询有限公司,作为抖音电商服务的佼佼者,凭借专业的团队和丰富的经验,致力…

代理配置SQUID

目录 SQUID代理服务器配置 监听浏览器访问记录 拒绝访问配置 SQUID代理服务器配置 实验系统 windows 10 xxxxx Roucky_linux9.4 192.168.226.22 监听浏览器访问记录 1. 安装squid yum install squid -y 2. 编辑squid配置文件 vim /etc/squid…

一个很好用的地图工具的使用:思极地图,以及vue+思极地图的使用

前言: 随着现在国网等一部分公司的需求,在线地图-思极地图 出现在我们眼前,给我们带来了很多便利,这里分享下他的信息与使用。 实现效果: 相关资料: 1、官网地址 2、在线地址 3、官方api地址 实现步骤-js…

从Instance classifier重新思考多实例学习

弱监督的WSI分类通常被形式化为多实例学习(MIL)问题,其中每张slide都被视为一个bag,从中切出的patch被视为实例。现有的方法要么通过伪标记训练实例分类器,要么通过注意力机制将实例特征聚合为bag特征,然后…

新能源汽车的能源动脉:中国星坤汽车电缆在新能源汽车电气化中的应用!

随着新能源汽车行业的蓬勃发展,汽车电缆组件作为汽车电气系统的核心组成部分,其重要性日益凸显。中国星坤汽车电缆组件以其卓越的性能和创新技术,为汽车的电能传输、信号传递和控制提供了坚实的保障。本文将深入解析星坤汽车电缆组件的特性、…

从社交网络到元宇宙:Facebook的战略转型

随着科技的迅猛发展和数字化时代的深入,社交网络已不再局限于简单的信息交流和社交互动,而是逐步向更广阔、更深远的虚拟现实空间——元宇宙(Metaverse)转变。作为全球最大的社交网络平台之一,Facebook正在积极推动这一…