当前位置 : 主页 > 编程语言 > python >

【回声状态网络ESN预测】基于粒子群优化回声状态网络ESN实现数据预测附matla

来源:互联网 收集:自由互联 发布时间:2022-06-15
1 简介 由于结构简单,收敛速度快等优点,回声状态网络(Echo State Network, ESN)已被广泛的用于时间序列的预测.针对回声状态网络中随机生成权值矩阵带来的不适用于特定时间序列的问题,本

1 简介

由于结构简单,收敛速度快等优点,回声状态网络(Echo State Network, ESN)已被广泛的用于时间序列的预测.针对回声状态网络中随机生成权值矩阵带来的不适用于特定时间序列的问题,本文提出利用粒子群优化算法来优化回声状态网络部分随机权值..实验结果表明,本文提出的方法可以进一步提升回声状态网络对时间序列的预测精度.

【回声状态网络ESN预测】基于粒子群优化回声状态网络ESN实现数据预测附matlab代码_优化算法

【回声状态网络ESN预测】基于粒子群优化回声状态网络ESN实现数据预测附matlab代码_粒子群_02

【回声状态网络ESN预测】基于粒子群优化回声状态网络ESN实现数据预测附matlab代码_优化算法_03

2 部分代码

function MGS = createmg(LEN, SUBS, ALPHA, BETA, GAMA, TAU, INITDUMMY)
% create Mackey-GLass time series
% LEN - sequence length
% SUBS - subsampling
% ALPHA, BETA, GAMA, TAU - Mackey-GLass time series parameters
% INITDUMMY - initial steps to supress (subsampling not taken into account)
% set default values
if nargin < 2, SUBS = 10; end;
if nargin < 3, ALPHA = 0.2; end;
if nargin < 4, BETA = 10; end;
if nargin < 5, GAMA = 0.1; end;
if nargin < 6, TAU = 17; end;
if nargin < 7, INITDUMMY = 1000; end;
% set positions
start = SUBS * TAU + 1;
stop = SUBS * (INITDUMMY + TAU + LEN + 1);
delay = SUBS * TAU;
% preallocate array and set up initial conditions
S = zeros(1, stop);
S(start) = 1;
% create Mackey-Glass time series
for SI=(start:stop-1),
NOM1 = ALPHA * S(SI-delay);
DEN1 = 1 + S(SI-delay)^BETA;
S(SI+1) = S(SI) + (NOM1 / DEN1 - GAMA * S(SI)) / SUBS;
end;
% remove dummy steps and take samples into output sequence
S(1:SUBS * (INITDUMMY + TAU)) = [];
MGS = S(1:SUBS:SUBS*LEN);

3 仿真结果

【回声状态网络ESN预测】基于粒子群优化回声状态网络ESN实现数据预测附matlab代码_粒子群_04

4 参考文献

[1]张亚楠, 赵丽娜. 基于改进粒子群算法优化回声状态网络的时间序列预测[J]. 计算机科学与应用, 2021, 11(8):10.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

【回声状态网络ESN预测】基于粒子群优化回声状态网络ESN实现数据预测附matlab代码_优化算法_05




网友评论