液体神经网络LNN-Attention创新结合——基于液体神经网络的时间序列预测(PyTorch框架)

1.数据集介绍

ETT(电变压器温度):由两个小时级数据集(ETTh)和两个 15 分钟级数据集(ETTm)组成。它们中的每一个都包含 2016 年 7 月至 2018 年 7 月的七种石油和电力变压器的负载特征。

traffic(交通) :描述了道路占用率。它包含 2015 年至 2016 年旧金山高速公路传感器记录的每小时数据

electrity(电力):从 2012 年到 2014 年收集了 321 个客户每小时电力消耗。

exchange_rate(汇率):收集了 1990 年至 2016 年 8 个国家的每日汇率。

Weather:包括 21 个天气指标,例如空气温度和湿度。它的数据在 2020 年的每 10 分钟记录一次。

ILLNESS:描述了患有流感疾病的患者与患者数量的比率。它包括 2002 年至 2021 年美国疾病控制和预防中心每周数据。

 数据集链接:

https://drive.google.com/drive/folders/1ZOYpTUa82_jCcxIdTmyr0LXQfvaM9vIy

参考文献:

[1]https://ojs.aaai.org/index.php/AAAI/article/view/16936

[2]https://www.nature.com/articles/s41597-022-01721-8

[3]https://www.nature.com/articles/s42256-022-00556-7

2.处理方法

(1)方法

·液体神经网络

Ramin Hasani 等人首次引入了液体时间常数网络Liquid Time-constant networks,这使得网络具有可变的非线性关系,而不是预先定义固定的非线性。随后,他们将这类LTC细胞应用于神经回路策略(NCP)架构中。

Liquid Neural Networks (LNNs) 是一种连续时间循环神经网络(CT-RNN),它们通过微分方程(ODE)来描述隐藏状态随时间的演化过程。在 LNNs 中,隐藏状态的导数和时间常数不是固定的,而是由神经网络动态生成的,这种机制被称为 Liquid Time Constant (LTC)。

图片

而 CfC(Closed-form Continuous-depth)网络 是 LNNs 的一种高效实现方式。与传统 LNN(例如 LTC)通过数值求解器解 ODE 不同,CfC 使用了一个近似的闭式解(closed-form solution),这使得它在训练和推理过程中显著更快。在 CfC 中,隐藏状态 x(t)x(t)x(t) 在任意时间点 t的更新方式如下:

图片

图片

三个神经网络共享一个前馈骨干网络,它是由多个全连接层和非线性激活函数组成。然后分别接入三种不同的“头部”,其中f的头是一个放射函数b+a(Δt),其中Δt是时间步长,a和b是由两层线性全连接层计算得出。g和h的头是使用tanh激活函数的全连接层。

·Attention机制

缩放点积Attention 是 Transformer 模型中的核心机制,能够高效捕获序列数据中的全局依赖关系。它的目标是基于查询(Query)、键(Key)和值(Value)之间的相似性计算加权输出。公式如下:

图片

优势在于:全局信息建模,每个查询都能与所有键进行匹配,捕获序列的全局依赖。计算高效,点积操作简单且易于并行化。适应不同权重,Softmax 的归一化使模型能够灵活关注重要位置。

图片

(2)实验结果

训练集、验证集和测试集划分设置为6:2:2。

注:需根据数据集的特征进一步探索最合适的参数组合,以提升模型性能。

本文方法ETTm1数据集

图片

图片

本文方法ETTh1数据集

图片

图片

3.代码下载

液体神经网络LNN-Attention创新结合——基于液体神经网络的时间序列预测(PyTorch框架)

代码结构清晰,注释加明,尊重原创成果,请勿随意转发,谢谢理解!!!

图片

最后:

小编会不定期发布相关设计内容包括但不限于如下内容:信号处理、通信仿真、算法设计、matlab appdesigner,gui设计、simulink仿真......希望能帮到你!

 

液体神经网络(Liquid State Machine, LSM)是一种基于储层计算(Reservoir Computing)的理论框架,其核心思想类似于回声状态网络(Echo State Network, ESN),但在实现上更加注重生物启发性和动态系统的建模能力[^4]。 以下是基于Python的一个简单LSM代码实现示例: ### Liquid State Machine (LSM) 的基本实现 ```python import numpy as np class LiquidStateMachine: def __init__(self, input_size, reservoir_size, output_size, spectral_radius=0.9): self.input_size = input_size self.reservoir_size = reservoir_size self.output_size = output_size # 初始化权重矩阵 self.W_in = np.random.uniform(-1, 1, size=(reservoir_size, input_size)) self.W_res = np.random.uniform(-1, 1, size=(reservoir_size, reservoir_size)) # 调整谱半径 max_eigval = np.max(np.abs(np.linalg.eigvals(self.W_res))) self.W_res *= spectral_radius / max_eigval def activate(self, x): """激活函数""" return np.tanh(x) def run(self, inputs): T = len(inputs) states = np.zeros((T, self.reservoir_size)) for t in range(T): u_t = inputs[t] s_t = self.activate( np.dot(self.W_res, states[max(0, t-1)]) + np.dot(self.W_in, u_t) ) states[t] = s_t return states # 示例输入数据 input_data = np.array([[0.1], [0.2], [0.3]]) lsm_model = LiquidStateMachine(input_size=1, reservoir_size=100, output_size=1) states = lsm_model.run(input_data) print(states.shape) # 输出形状应为 (3, 100),表示三个时间步的状态向量 ``` 上述代码定义了一个简单的液态机模型。它通过随机初始化连接权值并调整谱半径来构建储层结构。该模型可以接收一系列输入信号,并返回对应的内部状态序列。 #### 关键概念解释 - **Spectral Radius**: 控制着储层动力学的行为模式,通常设置在小于等于1范围内以保持系统稳定。 - **Activation Function**: 使用双曲正切函数作为非线性变换操作的一部分[^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MatpyMaster

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值