首页 > 其他分享 >m分别使用ESN网络,ESN+RBF神经网络以及ESN+Volterra网络进行数据预测对比仿真

m分别使用ESN网络,ESN+RBF神经网络以及ESN+Volterra网络进行数据预测对比仿真

时间:2023-03-11 20:22:57浏览次数:44  
标签:... 网络 ext train esn RBF ESN Volterra

1.算法描述

       ESN是Jaeger于2001年提出一种新型递归神经网络,ESN一经提出便成为学术界的热点,并被大量地应用到各种不同的领域中,包括动态模式分类、机器人控制、对象跟踪核运动目标检测、事件监测等,尤其是在时间序列预测问题上,取得了较为突出的贡献。Jaeger本人在提出这种神经网络的第二年便在国际知名期刊上发表了关于将ESN网络用于时间序列预测的文章,为后来其发展做出了巨大的贡献。另外,国内大连理工大学的韩敏等人在ESN的使用方面也做出了突出的贡献。

 

ESN具有以下特点:

 

大且稀疏生物连接,RNN被当做一个动态水库

动态水库可以由输入或/和输出的反馈激活

水库的连接权值不会被训练改变?

只有水库的输出单元的权值随训练改变,因此训练是一个线性回归任务

 

 

 

 

假设有ESN是一个可调谐的sin波生成器:

 

黑色箭头是指固定的输入和反馈连接

红色箭头指可训练的输出连接

灰色表示循环内连接的动态水库

        Volterra滤波器的基本结构如下所示:

 

 

 

 

 

 

 

 

       使用RBF网络,对ESN得到的W权值进行迭代跟新,我这里,使用的方法为是将RBF网络构架整合到ESN中,使得ESN的权值输出为非线性模型,从而提升性能。其基本原理如下所示:

 

        对于RBF神经网络的学习算法,关键问题是隐层神经元中心参数的合理确定。在已有的常用学习算法中,中心参数要么是从给定的训练集样本中按照某种方法直接选取,要么采用聚类的方法进行确定。实际应用表明,这些学习算法均有不足之处,使之应用范围受到限制。如正交优选法,其缺点是隐层神经元中心的取值是训练集样本中的数据,这在多数情况下难以反映系统的真正映射关系,且在中心点的优选过程中会出现病态现象,导致训练失败。再如Moody和Darken算法,其缺点是无法合理地确定隐层神经元的数目,所得到的中心值也未必是合理的。

 

       最基本的RBF神经网络的构成包括三层,分别为输入层、隐层(中间层)和输出层。其中输入层由一些源点(感知单元)组成,它们将网络与外部环境连接起来,仅起到数据信息的传递作用,对输入信息不进行任何变换;隐层神经元的核函数(或称作用函数)取为径向基函数,对输入信息到隐层空间之间进行非线性变换,通常具有较高的维数;输出层是线性的,为输入层的激活模式提供响应。

 

 

 

 

 RBF神经网络的参数在此主要是指网络的中心、宽度、和调节权重。

 

 

 

 

 

 

 

 

2.仿真效果预览

matlab2022a仿真结果如下:

 

 

 

 

 

 

 

 

3.MATLAB核心程序

 

%lorenz_series
sequenceLength = 2100;
load data.mat
%每个变量需提取的数目
ext            = 2; 
inputSequence  = zeros(2098,2*ext);
outputSequence = zeros(2098,1) ;
for i=ext+1:2100
    outputSequence(i-ext,1)=lorenz_series(i,1);
    for j=1:ext
        inputSequence(i-ext,j)=lorenz_series(i-j,1);
    end
    Ystart=ext+1;
    Yend=2*ext;
    for k=Ystart:Yend
        neednum=k-ext;
        inputSequence(i-ext,k)=lorenz_series(i-neednum,2);
    end
end
 
%ESN
%split the data into train and test
train_fraction = 0.5 ; % use 50% in training and 50% in testing
[trainInputSequence, testInputSequence]  = split_train_test(inputSequence,train_fraction);
[trainOutputSequence,testOutputSequence] = split_train_test(outputSequence,train_fraction);
 
%generate an esn 
nInputUnits    = 4; 
nInternalUnits = 100; 
nOutputUnits   = 1; 
 
esn = generate_esn(nInputUnits,nInternalUnits,nOutputUnits, ...
                   'spectralRadius',0.9,...
                   'inputScaling',[0.1;0.1;0.1;0.1],...
                   'inputShift',[0;0;0;0],...
                   'teacherScaling',0.3,...
                   'teacherShift',-0.2,...
                   'feedbackScaling',0,...
                   'type', 'plain_esn'); 
esn.internalWeights = esn.spectralRadius * esn.internalWeights_UnitSR;
 
%train the ESN
nForgetPoints            = 100 ; % discard the first 100 points
[trainedEsn,stateMatrix] = train_esn(trainInputSequence, trainOutputSequence, esn, nForgetPoints) ; 
 
predictedTrainOutput = test_esn(trainInputSequence, trainedEsn, nForgetPoints);
predictedTestOutput  = test_esn(testInputSequence,  trainedEsn, nForgetPoints) ; 
 
nPlotPoints          = length(predictedTestOutput);  

 

  

 

标签:...,网络,ext,train,esn,RBF,ESN,Volterra
From: https://www.cnblogs.com/51matlab/p/17206844.html

相关文章

  • 计算机网络系统方法:Problem: Applications Need Their Own Protocols
    https://book.systemsapproach.org/applications/problem.html在本书的开头,我们谈到了人们希望在计算机网络上运行的应用程序--从网络浏览器到视频会议工具,无所不包。在中......
  • 计算机网络系统方法:密钥的分配
    为了使用密码器和认证器,交流的参与者需要知道使用什么密钥。在秘密钥匙密码的情况下,一对参与者如何获得他们共享的钥匙?在公钥密码的情况下,参与者如何知道哪个公钥属于某个......
  • 计算机网络系统方法:加密构件
    我们一步一步地介绍基于密码学的安全概念。第一步是本节介绍的加密算法--密码器和加密散列--。它们本身并不是一个解决方案,而是可以用来构建解决方案的构件。加密算法的参......
  • 一个网络和串口全双工通信的c++库
    欢迎指正概述该库是https://github.com/ZLMediaKit/ZLToolKit和https://github.com/itas109/CSerialPort的集合这是一个通信库,包括网络和串口通信网络包括:TCP客户端......
  • 11、NFS-CSI网络存储、SC提供动态制备模板 PV和PVC动态制备
    PV和PVC在Pod级别定义存储卷有两个弊端◼卷对象的生命周期无法独立于Pod而存在◼用户必须要足够熟悉可用的存储及其详情才能在Pod上配置和使用卷PV和PVC可用于降低这种耦......
  • Python 网络爬虫
    必考点1.导入库2.定义变量url=''''link=''''headers={user-agent:} 3.执行代码r=requests.get('''地址''',headers=headers,timeout=10)response.html ......
  • 如何选择理想的网络数据提供商?
    在当今的数字世界中,数据已成为推动现代企业发展的燃料,因为它使领导者能够做出经过深思熟虑的决策来推动公司向前发展。不幸的是,万维网上的大部分数据都是非结构化的,这意味......
  • 网络安全(中职组)-B模块:Web安全应用-2
    Web安全应用-2任务环境说明:√服务器场景:match_win03-3-1(关闭链接)√服务器场景操作系统:WindowsServer20031.使用渗透机KaliLinux,登录靶机HTTP服务后台管理页面,并......
  • 常见网络流建图
    梳理一些常见的网络流建图模型。disclaimer:以下名词,模型皆本人所造,不保证合理性及正确性。选择式例题:LuoguP3254建立\(\{A_i\}\)表示选择对象,\(\{B_j\}\)表示被选......
  • 计算机网络【英语专业词汇】
    计算机网络computernetwork主机host端系统endsystem通信链路communicationlink分组交换机packetswitch传输速率transmissionrate分组packet路由器route......