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

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 中国

相关文章:

  • 遥遥领先,华为《仓颉编程语言白皮书》重磅来袭!!!
  • 不清楚数据治理路线图怎么制定?跟随这个思路即可
  • AI创作在论文写作中扮演什么角色?
  • Python有哪些就业方向?就业市场广阔!
  • C# —— 构造函数
  • 【Python高级编程】新手小白必须得学会的文本文件操作,资料资源均可分享!
  • mac苹果窗口辅助工具:Magnet for mac 2.14.0中文免激活版
  • 数据采集之二主一从,485总线共享器
  • Android SurfaceFlinger——注册监听调用流程(七)
  • 如何最简单的方式使用nodejs中的http-server发布轻量级的html网页
  • settings和toolchains.xml 区别用法配置
  • Android中球体碰撞代码分享-kotlin,入门版
  • 【数据结构与算法】树的存储,森林 详解
  • @PreAuthorize与@Secured注解的区别是什么?
  • 【Java】已解决java.net.HttpRetryException异常
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • CentOS从零开始部署Nodejs项目
  • github指令
  • Joomla 2.x, 3.x useful code cheatsheet
  • js操作时间(持续更新)
  • nodejs调试方法
  • Python连接Oracle
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 大主子表关联的性能优化方法
  • 给Prometheus造假数据的方法
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 思否第一天
  • 异常机制详解
  • 主流的CSS水平和垂直居中技术大全
  • const的用法,特别是用在函数前面与后面的区别
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • "无招胜有招"nbsp;史上最全的互…
  • # AI产品经理的自我修养:既懂用户,更懂技术!
  • # 数据结构
  • #vue3 实现前端下载excel文件模板功能
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • (16)Reactor的测试——响应式Spring的道法术器
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (LLM) 很笨
  • (SERIES12)DM性能优化
  • (STM32笔记)九、RCC时钟树与时钟 第一部分
  • (办公)springboot配置aop处理请求.
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (七)Knockout 创建自定义绑定
  • (转)iOS字体
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转)原始图像数据和PDF中的图像数据
  • .aanva
  • .NET Core 和 .NET Framework 中的 MEF2