发布时间:2022-12-01 15:00
圆圈搜索算法(Circle Search Algorithm,CSA)由Mohammed H. Qais等人于2022年提出,该算法由圆上正切关系启发所得,思路新颖,简单高效。
其中,角度 θ 在CSA的勘探和开发中起着重要作用,其计算公式如下:
LSTM(Long Short Term Memory)是具有记忆长短期信息的能力的神经网络,传统的训练方式采用梯度下降。然而,梯度下降方法容易陷入局部最优,群智能优化算法具有较强的全局搜索能力。本文采用圆圈搜索算法(CSA)直接优化LSTM的权值和阈值,提高LSTM的求解精度。
本文采用的数据序列为:
data=exp(sin(0:0.02:30));%数据集(可以根据自己的需求更改)
训练集和测试集各占数据集的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效果越好
测试集上真实值和预测值绝对误差(MAE):
由此可见,CSA优化LSTM的权值和阈值用于时间序列预测可行有效,加大迭代次数效果更佳。
完整MATLAB代码见博主微信朋友圈。
【两万字图文详解】 运动会管理系统-前后端分离-项目开发:【后端】SpringBoot, SpringMVC, MyBatis【前端】Vue.js,ElementUI
springboot整合ueditor实现图片上传和文件上传功能
22-07-17 西安 springboot(02)自定义启动器、常用启动器
成功解决RuntimeError: Input type (torch.FloatTensor) and weight type (torch.cuda.FloatTensor) should be
.Net使用Cancellation Framework取消并行任务
mysql 备份日志文件_mysql的日志及利用mysqldump备份及还原