发布时间: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代码见博主微信朋友圈。
一文搞懂│工厂模式、单例模式、策略模式、适配器模式、观察者模式的原理和使用
【USENIX ATC】支持异构GPU集群的超大规模模型的高效的分布式训练框架Whale
信锐交换机配置命令_思科、锐捷交换机配置常用命令及终极大爆炸
Spring Security 实现数据库登陆判断以及主界面获取用户名
Pycocotools 报error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Bui
记一次 Druid 超时配置的问题 → 引发对 Druid 时间配置项的探究