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.mfbz.cn/a/729244.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

内存优化技巧:让数据处理更高效

Pandas无疑是我们数据分析时一个不可或缺的工具,它以其强大的数据处理能力、灵活的数据结构以及易于上手的API赢得了广大数据分析师和机器学习工程师的喜爱。 然而,随着数据量的不断增长,如何高效、合理地管理内存,确保Pandas Da…

【贪心算法初级训练】在花坛上是否能种下n朵花、碰撞后剩余的行星

1、在花坛上是否能种下n多花 一个很长的花坛,一部分地已经种植了花,另一部分却没有,花不能种植在相邻的地块上否则它们会争夺水源,两者都会死去。给你一个整数数组表示花坛,由若干个0和1组成,0表示没种植花…

课程设计:班级通讯录管理系统(Java+MySQL)

本项目旨在开发一个基于Java的班级通讯录管理系统,使用MySQL作为数据库,采用Swing进行UI设计。系统主要功能包括管理员登录认证、班级信息管理、学生信息管理。每个班级拥有独立窗口,同时注重窗口复用和代码精简,实现自适应布局&a…

性价比高的洗地机推荐,测评员精选四款热门洗地机分享

家庭清洁新升级,家用洗地机可以让家里打扫变得轻松高效。面对众多品牌和型号,朋友们常犯难:到底应该怎么选家用洗地机?别急,我这回的普及知识可不含糊,亲测超十款热门洗地机,从中精挑细选了四款…

手机天线都去哪里了?

在手机的演变历程中,天线的设计和位置一直是工程师们不断探索和创新的领域。你是否好奇,现在的手机为什么看不到那些曾经显眼的天线了呢? 让我们一起揭开这个谜题。 首先,让我们从基础开始:手机是如何发出电磁波的&…

摄像头劫持——保护自己免受窥探

今天为您带来当今科技界的最新趋势及探索方法。本周,我们将为您提供五个防止黑客在您不知情的情况下访问您的网络摄像头的建议。 网络摄像头 一、摄像头劫持 你是否曾经怀疑过,即使你没有主动使用网络摄像头,也可能有人正在通过它窥视你&am…

【码银送书第二十一期】《大数据智能风控:模型、平台与业务实践》

人行印发的《金融科技(FinTech)发展规划(2022一2025年)》明确指出金融科技成为防范化解金融风险的利器,运用大数据、人工智能等技术建立金融风控模型,有效甄别高风险交易,智能感知异常交易&…

关于创建虚拟机时kdump服务的简介

kdump 是一种先进的基于 kexec 的内核崩溃转储机制。 当系统崩溃时,kdump 使用 kexec 启动到第二个内核,这个内核通常被称为捕获内核。它以较小的内存启动,用于捕获转储镜像。 第一个内核会保留一部分内存给第二个内核启动使用。由于 kdump 利…

掌握JavaScript ES6精髓:探索函数和对象的高级扩展与实用技巧

序言 JavaScript,作为前端开发中不可或缺的语言,已经发展到了ECMAScript 2015(简称ES6)以及后续的版本。ES6带来了诸多语法上的改进和创新,使得代码更加简洁、优雅,同时也提供了更多的编程模式和实用技巧。…

MySQL客户端与服务端建立连接抓包分析

文章目录 MySQL客户端与服务端建立连接流程抓包分析1.连接建立流程2.各类数据包介绍2.1挑战数据包2.2认证数据包2.3切换认证插件请求数据包2.4切换认证插件响应数据包2.5成功数据包2.6失败数据包3.注意点4.测试代码MySQL客户端与服务端建立连接流程抓包分析 抓包工具采用的是W…

【AI副业指南】用AI做心理测试图文号,单月稳赚7000+(附详细教程)

大家好,我是画画的小强 因为AI的出现,很多自媒体副业项目变得简单容易上手,也给予很多想要在业余时间变现的朋友更丰富的项目选择。 今天分享的赛道绝对颠覆大家的认知,本期将叫大家如何通过AI在自媒体平台上做心理测试账号。 …

vue中实现百度地图全国与省市地图切换

前言 本文主要是用于示例全国地图,点击省市地图直接跳转到该省市地图并展示,可以拓展在地图上显示标记点(本文未做示例),后续有完整代码,但是由于需要与本来项目业务代码进项分割,可能会有些问题…

nexus配置问题

错误信息: npm ERR! code E401 npm ERR! Unable to authenticate, need: BASIC realm"Sonatype Nexus Repository Manager"解决办法一: npm login --registryhttp://192.168.52.128:8081/repository/npm-repo 输入 用户名 密码 邮箱完成后会…

Tower 使用指南

Tower 使用指南 目录 打开 git 仓库查看分支历史切换分支提交修改推送修改创建标签自动拉取最新代码 打开 git 仓库 File -> Open然后选择项目目录 查看分支历史 切换分支 提交修改 推送修改 创建标签 自动拉取最新代码

aardio - 日历

写了个日历小例程,因 lunar 农历库存在问题,经过研究算是变相解决了,日历也完成了雏形,先开源出来,感兴趣的玩玩。 请下载最新paint库、customPlus库、lunar库。 不同的颜色搭配,实现不同的风格&#xff1…

WDG看门狗

一、WDG简介 1、WDG(Watchdog)看门狗 (1)看门狗可以监控程序的运行状态,当程序因为设计漏洞、硬件故障、电磁干扰等原因,出现卡死或跑飞现象时,看门狗能及时复位程序,避免程序陷入…

URLDNS利用链

利用链分析在我的Github主页 Java反序列化学习 下面写下POC思路 利用点HashMap的readObject private void readObject(java.io.ObjectInputStream s)throws IOException, ClassNotFoundException {// Read in the threshold (ignored), loadfactor, and any hidden stuffs.de…

JAVAWeb---- 数据库的简单了解

目录 1.什么是数据库 2.什么是数据库管理系统 3.什么是SQL 4.什么是关系型数据库 1.什么是数据库 用来存储和管理数据的“仓库”,简称DB(Database); 2.什么是数据库管理系统 对数据库的一切操作都是在数据库管理系统进行的,比如MySQL&a…

Ollama深度探索:AI大模型本地部署的全面教程

目录 引言一、Ollama概述1、定义与定位2、核心功能3、技术优势4、应用场景 二、安装与配置1、系统要求2、安装方法3、配置指南4、启动Ollama服务 四、快速开始1、启动Ollama2、部署运行模型3、REEST API 五、自定义模型1、定制化的必要性2、使用Modelfile定制模型3、参数调整4、…

【数据结构与算法】树的存储,森林 详解

树的几种存贮结构(双亲表示法、孩子表示法、孩子兄弟表示法)的优缺点,各自适应的运算。 双亲表示法: 优点:方便查找双亲及其祖先结点缺点: 查找孩子和兄弟结点比较费事未表示出结点之间的先后次序 适应的运算:查找节点…