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

相关推荐
陈鋆2 分钟前
智慧城市初探与解决方案
人工智能·智慧城市
qdprobot3 分钟前
ESP32桌面天气摆件加文心一言AI大模型对话Mixly图形化编程STEAM创客教育
网络·人工智能·百度·文心一言·arduino
QQ39575332373 分钟前
金融量化交易模型的突破与前景分析
人工智能·金融
QQ39575332374 分钟前
金融量化交易:技术突破与模型优化
人工智能·金融
The_Ticker17 分钟前
CFD平台如何接入实时行情源
java·大数据·数据库·人工智能·算法·区块链·软件工程
Elastic 中国社区官方博客23 分钟前
Elasticsearch 开放推理 API 增加了对 IBM watsonx.ai Slate 嵌入模型的支持
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
jwolf223 分钟前
摸一下elasticsearch8的AI能力:语义搜索/vector向量搜索案例
人工智能·搜索引擎
有Li32 分钟前
跨视角差异-依赖网络用于体积医学图像分割|文献速递-生成式模型与transformer在医学影像中的应用
人工智能·计算机视觉
新加坡内哥谈技术1 小时前
Mistral推出“Le Chat”,对标ChatGPT
人工智能·chatgpt
GOTXX1 小时前
基于Opencv的图像处理软件
图像处理·人工智能·深度学习·opencv·卷积神经网络