【博士每天一篇文献-算法】Memory augmented echo state network for time series prediction

本文主要是介绍【博士每天一篇文献-算法】Memory augmented echo state network for time series prediction,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

阅读时间:2023-11-24

1 介绍

年份:2023
作者:济南大学,刘千文、李范俊
期刊: Neural Computing and Applications
引用量:0
这篇论文介绍了记忆增强的回声状态网络(MA-ESN),旨在平衡ESN的记忆能力和非线性映射能力,以提高时间序列预测的性能。传统的ESNs具有较高的记忆能力,但其非线性映射能力有限,导致在复杂时间序列上的预测表现较差。MA-ESN通过在储层中引入线性记忆模块和非线性映射模块的新组合方式来实现这种平衡。线性记忆模块改善了记忆能力,而非线性映射模块保持了网络的非线性映射。该文章还提供了MA-ESN的训练算法、理论稳定性分析以及计算复杂性分析。实验证明,MA-ESN在基准时间序列数据集上的记忆能力和预测性能方面优于传统的ESNs和一些类似的ESN变体。此研究的贡献包括提出了储层的特殊设计方法、在理论上分析了MA-ESN的稳定性,并通过设计两个独立模块实现了记忆-非线性的分离机制。文章最后提出了未来的研究方向。

2 创新点

(1)提出了称为记忆增强回声状态网络(MA-ESN)的改进版本,旨在平衡ESNs的记忆能力和非线性映射能力,从而提高时间序列预测性能。
(2)通过在储层中引入线性记忆模块和非线性映射模块的新方式组合,实现了MA-ESN的这种平衡。引入记忆-非线性分离机制。线性记忆模块提高了记忆能力,而非线性映射模块保留了网络的非线性映射。
(3)提供了MA-ESN的训练算法、理论上的稳定性分析以及计算复杂性分析。
(4)实验结果表明,MA-ESN在基准时间序列数据集上的记忆容量和预测性能方面优于典型的ESNs和一些类似的ESN变种。

3 相关研究

(1)(2010) Echo state networks with filter neurons and a delay & sum readout.
ESN引入了延迟和读数以获得更大的MC,其主要思想是在储层和输出层之间添加可训练的延迟。
(2)2016) A new echo state network with variable memory length
改进MC,Shuxian Lun等人提出了一种可变内存长度回声状态网络(VML-ESN),其内存长度由输入信号的自相关自动确定
(3)Crowd counting by using Top-k relations: a mixed ground-truth CNN framework.
马千利等人提出了一种回声记忆增强网络(EMAN),通过引入稀疏可学习权重的注意力机制来提高ESN的长期记忆能力。
(4)(2007) Optimization and applications of echo state networks with leaky integrator neurons.
为了改善ESN的MC,泄漏的积分器单元于设计储层。
(4) (2020)Long-short term echo state network for time series prediction
提出了长短时回波状态网络(LS-ESNs)来提高ESN的存储能力,其中不同的跳跃连接被引入不同的储库。虽然上面提到的这些方法提高了ESN的内存能力,但它们不可避免地增加了额外的可训练参数。
(5)2017) Difference between memory and prediction in linear recurrent networks
仅增加RNN的MC并不能带来更好的复杂时间序列预测性能,需要保持一定的非线性映射能力[15]。
(6) (2010) Memory versus non-linearity in reservoirs
ESNs库中内存和非线性之间的权衡存在问题。
(7)(2019) Linear memory networks. ICANN 2019: Theoretical Neural Computation.
为了提高RNN学习顺序数据中长期依赖关系的能力,提出了一种线性记忆网络(LMN),将循环层显式地分为功能和记忆分量,这可以通过具有特殊初始化的标准反向传播算法进行优化。
(8)2013) Reservoir computing and extreme learning machines for non-linear time-series data analysis.
为了有效地平衡ESN的记忆-非线性权衡问题,Butcher等人提出了一种新的架构,通过结合一个储层和两个前馈层,将一个储层与两个前馈层相结合,命名为具有随机静态投影(RSP)的储层。
(9)(2017) Reservoir computing beyond memory-nonlinearity trade-off
从理论上分析了储层计算的内存-非线性权衡,并通过在混合储层(混合储层)中同时引入线性和非线性激活函数来提高信息处理能力。

4 算法

图2显示了所提出的内存-非线性分离机制,其中V、VHidden、VMemory、VMemory、VOutput分别表示输入空间、隐藏空间、最后一时刻的内存空间、当前时刻的内存空间和输出空间,VMemory和Vemory之间的连接处的黑色小方块表示时间延迟。两个模块独立工作并相互服务。线性存储模块M作为自编码器,用于记忆非线性映射模块H的输出序列,同时,非线性映射模块通过非线性激活函数将线性存储模块的输入信号和编码输出组合在一起,形成新的特征。只有线性存储模块的输出用于形成网络的输出。

  • 非线性映射模块是一种前馈神经网络,可从输入信号生成新特征。
  • 线性存储模块的输出通过非线性激活函数,同时线性存储模块负责以线性循环方式记忆非线性映射模块的输出序列。

截屏2024-02-28 下午1.29.29.png

5 实验分析

5.1 稳定性分析

(1)确保MA-ESN具有回声状态特性(Echo State Property,ESP),以确保网络的动态稳定性。
(2)引入利普希茨条件的定义,以确保激活函数满足Lipschitz条件,其中Lipschitz系数L大于等于1。
(3)确保线性记忆模块的记忆状态之间的距离随时间收缩,以保持MA-ESN的ESP。
(4)给出保证MA-ESN具有ESP的充分条件,包括最大奇异值和满足一定条件的激活函数利普希茨系数。

5.2 计算复杂度

(1)MA-ESN中的储层的计算复杂度包括两个方面:

  • 储层的计算复杂度可表示为Cres = Ch + Cm = O( TNxNh + 2TNhNm + SDTN^2m )

其中,T、Nx、Nh、Nm和SD分别代表信号的长度,输入神经元的数量,非线性映射模块的大小,线性存储器模块的大小和稀疏度。

  • MA-ESN的输出权重的计算复杂度可表示为Creg = O( TNyP + (T + P + Ny)P^2 )

(2)比较A-ESN和ESNs的计算复杂度,可以得出MA-ESN的计算复杂度比ESNs小。其中MA-ESN的复杂度可以表示为:CMA-ESN = O( 3TN^2m + N^3m ),而CESNs = O( TN^2m + N^3m )。由此可见,MA-ESN的复杂度大将近3倍。

5.3 数据集验证

数据集:10阶NARMA系统(10-order NARMA )、Lorenz系统(the Lorenz system)、太阳黑子时间序列(the Sunspot time series)、每日最低温度(daily minimum temperatures)和NCAA2022数据集(the NCAA2022 data set )。

5.3.1 记忆能力

  • 对典型的ESNs和一些具有特殊记忆机制的ESN变种进行比较。与典型ESN、LSTM、RSP、VML-ESN、LS-ESNs、混合储层和CESN相比,MA-ESN的MC分别提高了49.8%、74.6%、7.7%、48.1%、12.5%、7.2%和23.0%。
  • 通过创建无结构序列来测试MA-ESN的记忆能力,评估其在1维随机序列上的表现。
  • 评估各个模型从k=1到k=200的k-delay记忆能力。
  • 通过比较各模型的记忆能力,得出MA-ESN将储存器分成非线性映射模块和线性存储模块的方式可以显著提高网络的记忆容量。

6 思考

文中用到了很多数据集,可是只对比了多个数据集的记忆容量MC。预测误差上都没有对比,有可能通过引入非线性模块,提高了非线性能力和记忆容量,但是牺牲了预测精度。在后面的实验结果中,都只是绘制了单个模型的预测误差,没有对比多个模型的。
说明计算记忆容量的方式参考论文【short term memory in echo state networks】。

这篇关于【博士每天一篇文献-算法】Memory augmented echo state network for time series prediction的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/756662

相关文章

openCV中KNN算法的实现

《openCV中KNN算法的实现》KNN算法是一种简单且常用的分类算法,本文主要介绍了openCV中KNN算法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录KNN算法流程使用OpenCV实现KNNOpenCV 是一个开源的跨平台计算机视觉库,它提供了各

鸿蒙中@State的原理使用详解(HarmonyOS 5)

《鸿蒙中@State的原理使用详解(HarmonyOS5)》@State是HarmonyOSArkTS框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动UI的响应式编程模式,本文给大家介绍... 目录一、@State在鸿蒙中是做什么的?二、@Spythontate的基本原理1. 依赖关系的收集2.

springboot+dubbo实现时间轮算法

《springboot+dubbo实现时间轮算法》时间轮是一种高效利用线程资源进行批量化调度的算法,本文主要介绍了springboot+dubbo实现时间轮算法,文中通过示例代码介绍的非常详细,对大家... 目录前言一、参数说明二、具体实现1、HashedwheelTimer2、createWheel3、n

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

python中time模块的常用方法及应用详解

《python中time模块的常用方法及应用详解》在Python开发中,时间处理是绕不开的刚需场景,从性能计时到定时任务,从日志记录到数据同步,时间模块始终是开发者最得力的工具之一,本文将通过真实案例... 目录一、时间基石:time.time()典型场景:程序性能分析进阶技巧:结合上下文管理器实现自动计时

如何通过Golang的container/list实现LRU缓存算法

《如何通过Golang的container/list实现LRU缓存算法》文章介绍了Go语言中container/list包实现的双向链表,并探讨了如何使用链表实现LRU缓存,LRU缓存通过维护一个双向... 目录力扣:146. LRU 缓存主要结构 List 和 Element常用方法1. 初始化链表2.

golang字符串匹配算法解读

《golang字符串匹配算法解读》文章介绍了字符串匹配算法的原理,特别是Knuth-Morris-Pratt(KMP)算法,该算法通过构建模式串的前缀表来减少匹配时的不必要的字符比较,从而提高效率,在... 目录简介KMP实现代码总结简介字符串匹配算法主要用于在一个较长的文本串中查找一个较短的字符串(称为

通俗易懂的Java常见限流算法具体实现

《通俗易懂的Java常见限流算法具体实现》:本文主要介绍Java常见限流算法具体实现的相关资料,包括漏桶算法、令牌桶算法、Nginx限流和Redis+Lua限流的实现原理和具体步骤,并比较了它们的... 目录一、漏桶算法1.漏桶算法的思想和原理2.具体实现二、令牌桶算法1.令牌桶算法流程:2.具体实现2.1

MySQL中时区参数time_zone解读

《MySQL中时区参数time_zone解读》MySQL时区参数time_zone用于控制系统函数和字段的DEFAULTCURRENT_TIMESTAMP属性,修改时区可能会影响timestamp类型... 目录前言1.时区参数影响2.如何设置3.字段类型选择总结前言mysql 时区参数 time_zon