目录

1.算法描述

2.仿真效果预览

3.MATLAB核心程序

4.完整MATLAB


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:2100outputSequence(i-ext,1)=lorenz_series(i,1);for j=1:extinputSequence(i-ext,j)=lorenz_series(i-j,1);endYstart=ext+1;Yend=2*ext;for k=Ystart:Yendneednum=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);
05_024_m

4.完整MATLAB

V

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

  1. 回归预测 | MATLAB实现DBN-RBF深度置信网络结合RBF神经网络多输入单输出回归预测

    回归预测 | MATLAB实现DBN-RBF深度置信网络结合RBF神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现DBN-RBF深度置信网络结合RBF神经网络多输入单输出回归预测 预 ...

  2. matlab 神经网络设计多层隐含层_数据预测之BP神经网络具体应用以及matlab代码

    1.具体应用实例.根据表2,预测序号15的跳高成绩. 表2 国内男子跳高运动员各项素质指标 序号 跳高成绩() 30行进跑(s) 立定三级跳远() 助跑摸高() 助跑4-6步跳高() 负重深蹲杠铃() ...

  3. 基于双隐含层的BP神经网络数据预测matlab仿真

    目录 1.算法仿真效果 2.MATLAB源码 3.算法概述 4.部分参考文献 1.算法仿真效果 matlab2022a仿真结果如下:

  4. RBF神经网络——直接看公式,本质上就是非线性变换后的线性变化(RBF神经网络的思想是将低维空间非线性不可分问题转换成高维空间线性可分问题)...

    Deeplearning Algorithms tutorial 谷歌的人工智能位于全球前列,在图像识别.语音识别.无人驾驶等技术上都已经落地.而百度实质意义上扛起了国内的人工智能的大旗,覆盖无人驾驶 ...

  5. 深度信念网络_【文章推荐】应用于油中溶解气体分析的深度信念网络与典型神经网络对比研究...

    文章推荐 应用于油中溶解气体分析的深度信念网络与典型神经网络对比研究 原文发表在<高压电器>2020年第9期. 请进<高压电器>网站(www.zgydq.com)下载全文. D ...

  6. RBF(径向基)网络

    元学习论文总结||小样本学习论文总结 2017-2019年计算机视觉顶会文章收录 AAAI2017-2019 CVPR2017-2019 ECCV2018 ICCV2017-2019 ICLR2017 ...

  7. 机器学习——RBF神经网络

    RBF神经网络 本文部分资料与案例来源:<MATLAB神经网络43个案例分析> RBF神经网络简述 再介绍RBF神经网络之前我们先来看一下径向基函数(RBF),在百度百科上,RBF定义如下 ...

  8. 基于径向基函数RBF神经网络的非线性函数拟合研究-含Matlab代码

    目录 一.RBF神经网络基本原理 二.模型建立 三.RBF网络拟合结果分析 四.注意事项 五.参考文献 六.Matlab代码获取 一.RBF神经网络基本原理 1988年Broomhead和Lowe将径 ...

  9. 径向基(Radial Basis Function:RBF)神经网络学习笔记

    原创不易,转载前请注明博主的链接地址:Blessy_Zhu https://blog.csdn.net/weixin_42555080 一. 从BP神经网络到RDF神经网络 在上一篇文章BP(Back ...

  10. python rbf神经网络_RBF(径向基)神经网络

    只要模型是一层一层的,并使用AD/BP算法,就能称作 BP神经网络.RBF 神经网络是其中一个特例.本文主要包括以下内容: 什么是径向基函数 RBF神经网络 RBF神经网络的学习问题 RBF神经网络与 ...

最新文章

  1. 12_Android中HttpClient的应用,doGet,doPost,doHttpClientGet,doHttpClient请求,另外借助第三方框架实现网络连接的应用,
  2. 被黑客盯上了…数据都给打包带走了…
  3. 安装Docker step by step
  4. AI+建筑战略再升级 旷视AIoT产品家族合体首秀
  5. matlab抓取股票数据,Matlab通过sina web接口获取个数即时股票数据函数实现代码
  6. Go语法·类型选择(type switch)
  7. js 预编译 AO对象跟GO对象
  8. 搞了三天终于成功跑起来GitHub上的vue-element-admin最新解决办法!(mac系统亲测有效)
  9. 腾讯安卓开发面试,腾讯+字节+阿里面经真题汇总,Android篇
  10. 计算机硬盘的报废处理,计算机硬盘和内存存储器的安全销毁与资源化处理
  11. 【docker问题】Client.Timeout exceeded while awaiting header
  12. C++多线程启动、暂停、继续与停止
  13. 如何通过检测微芯片操作来对抗硬件木马
  14. 乌云飘散后,一群白帽子这样成长
  15. python函数可以改变哪种数据类型的实参_Python函数参数的几种类型
  16. FinFET全面攻占iPhone 五分钟让你看懂FinFET
  17. Kali Linux系统下无线网卡MW310UH的驱动安装教程
  18. maven引入自己的jar包避坑
  19. 代理服务器列表 20100116
  20. 设计模式之----开闭原则(Open closed principle OCP)的理解

热门文章

  1. AI 让已故歌手重聚,再发4首原创新歌
  2. 【Unity3D实战】摇摆直升机开发实战(一)
  3. PAT 1082 射击比赛 python
  4. (二)U盘安装Windows Server 2008 R2系统
  5. CodeForces - 735D Taxes (哥德巴赫猜想)
  6. 基于C#.NET Remoting技术的全球文字聊天室
  7. 自定义android控件EditText边框背景
  8. 聚类有效性指标(CVI)
  9. 洛谷P5960 【模板】差分约束算法
  10. 用python画钢铁侠图片_Photoshop快速把钢铁侠图片转为素描水墨风格教程