LSTM时间序列预测:圆圈搜索算法(Circle Search Algorithm,CSA)优化LSTM权值和阈值(提供MATLAB代码)

一、圆圈搜索算法简介

圆圈搜索算法(Circle Search Algorithm,CSA)由Mohammed H. Qais等人于2022年提出,该算法由圆上正切关系启发所得,思路新颖,简单高效。

LSTM时间序列预测:圆圈搜索算法(Circle Search Algorithm,CSA)优化LSTM权值和阈值(提供MATLAB代码)_第1张图片

由上述圆可得到如下数量关系:
LSTM时间序列预测:圆圈搜索算法(Circle Search Algorithm,CSA)优化LSTM权值和阈值(提供MATLAB代码)_第2张图片

二、圆圈搜索算法原理

LSTM时间序列预测:圆圈搜索算法(Circle Search Algorithm,CSA)优化LSTM权值和阈值(提供MATLAB代码)_第3张图片

根据圆周上正切关系启发,CSA更新公式如下:
在这里插入图片描述

其中,角度 θ 在CSA的勘探和开发中起着重要作用,其计算公式如下:
LSTM时间序列预测:圆圈搜索算法(Circle Search Algorithm,CSA)优化LSTM权值和阈值(提供MATLAB代码)_第4张图片

三、圆圈搜索算法流程

LSTM时间序列预测:圆圈搜索算法(Circle Search Algorithm,CSA)优化LSTM权值和阈值(提供MATLAB代码)_第5张图片
LSTM时间序列预测:圆圈搜索算法(Circle Search Algorithm,CSA)优化LSTM权值和阈值(提供MATLAB代码)_第6张图片

四、求解结果

LSTM(Long Short Term Memory)是具有记忆长短期信息的能力的神经网络,传统的训练方式采用梯度下降。然而,梯度下降方法容易陷入局部最优,群智能优化算法具有较强的全局搜索能力。本文采用圆圈搜索算法(CSA)直接优化LSTM的权值和阈值,提高LSTM的求解精度。
本文采用的数据序列为:
data=exp(sin(0:0.02:30));%数据集(可以根据自己的需求更改)
LSTM时间序列预测:圆圈搜索算法(Circle Search Algorithm,CSA)优化LSTM权值和阈值(提供MATLAB代码)_第7张图片
训练集和测试集各占数据集的70%和30%。CSA优化LSTM的目标函数为训练集上真实值和预测值的均方误差(MSE),CSA种群大小为50,最大迭代次数为100,加大种群和迭代次数效果更佳。

%% 圆圈搜索算法CSA优化LSTM的权值和阈值实现数据预测。
close all
clear
clc
global net K XTrain YTrain XTest YTest mappingy method
data=exp(sin(0:0.02:30));%数据集(可以根据自己的需求更改)
Dim=sum(sum(K(:,1).*K(:,2)));%维度
lb=-5;%下界
ub=5;%上界
fobj=@Fun;%计算训练集上的函数值(真实值与预测值的均方误差MSE)
SearchAgents_no=50; % 种群大小(可以修改)
Max_iteration=100; % 最大迭代次数(可以修改)
[fMin,bestX,CSA_curve]=CSA(SearchAgents_no,Max_iteration,lb,ub,Dim,fobj);  %圆圈搜索算法CSA优化LSTM的权值阈值 bestX是最优权值阈值
o=TestFun(bestX);%在测试集上预测
o1=TrainFun(bestX);%在训练集上预测
save bestX bestX %保留圆圈搜索算法CSA优化LSTM得到的最优参数
save CSA_curve CSA_curve %保留
%% 画出圆圈搜索算法CSA优化LSTM的均方误差随迭代次数的图
figure
semilogy(CSA_curve,'Color','g')
xlabel('Iteration');
ylabel('MSE');
legend('CSA')
%%
display(['The best solution obtained by CSA is : ', num2str(bestX)]);
display(['The best optimal value of the objective funciton found by CSA is : ', num2str(fMin)]);%fMin越小说明圆圈搜索算法CSA优化LSTM效果越好


训练集上MSE随迭代次数变化的曲线图:
LSTM时间序列预测:圆圈搜索算法(Circle Search Algorithm,CSA)优化LSTM权值和阈值(提供MATLAB代码)_第8张图片

训练集上真实值和预测值对比图:
LSTM时间序列预测:圆圈搜索算法(Circle Search Algorithm,CSA)优化LSTM权值和阈值(提供MATLAB代码)_第9张图片

训练集上真实值和预测值绝对误差(MAE):
LSTM时间序列预测:圆圈搜索算法(Circle Search Algorithm,CSA)优化LSTM权值和阈值(提供MATLAB代码)_第10张图片

测试集上真实值和预测值对比图:
LSTM时间序列预测:圆圈搜索算法(Circle Search Algorithm,CSA)优化LSTM权值和阈值(提供MATLAB代码)_第11张图片

测试集上真实值和预测值绝对误差(MAE):
LSTM时间序列预测:圆圈搜索算法(Circle Search Algorithm,CSA)优化LSTM权值和阈值(提供MATLAB代码)_第12张图片
由此可见,CSA优化LSTM的权值和阈值用于时间序列预测可行有效,加大迭代次数效果更佳。

五、参考代码

完整MATLAB代码见博主微信朋友圈。

你可能感兴趣的:(单目标应用,神经网络,MATLAB,lstm,matlab,深度学习)