(11)时间序列预测之xLstm


前言

1. LSTM 结构

在这里插入图片描述

在这里插入图片描述

2. sLSTM结构

  引入了指数门(红色)以及归一化稳定化

在这里插入图片描述

  其整体结构如下(未涉及稳定化)所示:

在这里插入图片描述
  对更新门和遗忘门进行稳定化处理:

在这里插入图片描述
同时,还支持以下结构
  记忆混合(Memory Mixing):sLSTM允许通过循环连接(recurrent connections)进行记忆混合,这在原始的LSTM中是不可能的。这种新的记忆混合技术允许sLSTM在不同的内存单元之间共享信息。
  多头部结构(Multi-Head Structure):sLSTM可以具有多个头部,每个头部都有自己的记忆混合,但头部之间没有跨头的记忆混合。这种设计为sLSTM提供了一种新的记忆混合方式。

3. mLSTM结构

提高LSTM的存储容量,我们将LSTM的存储单元从标量 c ∈ R c∈R cR 增加到矩阵 c ∈ R d × d c∈R^{d×d} cRd×d.
并使用类似于Tranformer注意力机制的q,k,v对 c c c 进行更新
在这里插入图片描述
其整体结构如下所示:

在这里插入图片描述
特点:
  并行化(Parallelization):与sLSTM不同,mLSTM的设计允许完全的并行化处理,因为它放弃了隐藏层之间的循环连接(memory mixing)。
  协方差更新规则(Covariance Update Rule):mLSTM使用协方差更新规则来存储和检索信息。这种规则通过将键(key)和值(value)对存储为矩阵的行或列来实现,从而提高了检索的分离度和信号/噪声比。
  多头部和多单元结构:mLSTM可以扩展为多个头部和多个单元,其中多个头部和多个单元在mLSTM中是等效的,因为它没有跨头部的记忆混合。

4. xLSTM结构

  xLSTM 使用了残差堆叠架构,将 sLSTM 和 mLSTM 集成到残差块(residual block)中,通过残差堆叠形成更复杂的架构。

在这里插入图片描述


一、xLSTMTime模型

网络结构

在这里插入图片描述

二、xLSTM-Mixer

网络结构

xLSTM-Mixer架构包括三个阶段:
(1) 假设信道独立,并执行时间混合的初始 NLinear 预测;
(2) 后续联合混合(Joint Mixing),通过两个不同角度(包括Reverse View)的 sLSTM块 的混合变量和时间信息;
(3) 最终视图混合,将两个潜在的预测结果混合,得到最终预测。
在这里插入图片描述

实验结果

长时间序列预测

对4种不同预测长度{96、192、336、720}的结果求平均值
在这里插入图片描述


总结

参考

论文
XLSTM:Extended Long Short-Term Memory
xLSTMTime : Long-term Time Series Forecasting With xLSTM

博客
xLSTM-----含完整代码
xLSTM: Extended Long Short-Term Memory

XLSTM,全称为eXtended Long Short-Term Memory,是一种改进版的长短期记忆网络(LSTM),它在传统LSTM的基础上增加了稀疏连接(Sparse Connections)和注意力机制(Attention Mechanisms)。这种模型特别适合处理时间序列数据的预测,尤其是当数据存在长期依赖性和复杂模式时。 在Python中,你可以使用深度学习库Keras或PyTorch来实现XLSTM。以下是一个简单的步骤指南: 1. **安装所需库**: - `pip install keras` 或 `pip install tensorflow>=2.0` - 可选安装`pyyaml`、`h5py`等辅助库 2. **导入必要的模块**: ```python import numpy as np from keras.models import Sequential from keras.layers import LSTM, Dense, Attention, SpatialDropout1D ``` 3. **定义XLSTM模型**: ```python def build_xlstm_model(input_shape, output_size): model = Sequential() model.add(LSTM(units=64, return_sequences=True, input_shape=input_shape)) model.add(SpatialDropout1D(0.2)) # 添加空间dropout防止过拟合 model.add(Attention()) # 添加注意力层 model.add(LSTM(units=32, return_sequences=False)) model.add(Dense(output_size, activation='linear')) # 输出层 return model ``` 4. **编译模型**: ```python model.compile(optimizer='adam', loss='mse') # 使用均方误差作为损失函数 ``` 5. **训练模型**: ```python # 准备训练数据 train_data, train_labels = ... model.fit(train_data, train_labels, epochs=50, batch_size=32) ``` 6. **进行预测**: ```python test_data = ... # 测试数据 predictions = model.predict(test_data) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值