适用平台:Matlab2023版及以上
SMA 黏菌优化算法,于2020年发表在SCI的1区Top期刊《Future Generation Computer Systems》上。
利用该计算机1区Top算法对对我们的CNN-BiGRU-Attention时序和空间特征结合-融合注意力机制的回归预测程序代码中的超参数如:卷积核大小、BiGRU单元个数、学习率等进行优化。
黏菌算法的背景:
该论文进行了一系列实验,包括定性分析、定量分析测试。定性分析包括
黏菌算法SMA的创新点:
模拟生物行为:
自适应性和灵活性:
多源信息融合:
动态搜索模式调整:
全局-局部搜索融合:
CNN-BiGRU-Attention模型的创新性:
①结合卷积神经网络 (CNN) 和双向门控循环单元 (BiGRU):CNN 用于处理多变量时间序列的多通道输入,能够有效地捕捉输入特征之间的空间关系。BiGRU 是一种能够捕捉序列中长距离依赖关系的递归神经网络。通过双向性,BiGRU 可以同时考虑过去和未来的信息,提高了模型对时间序列动态变化的感知能力。
②引入自注意力机制 (Self-Attention): Self-Attention 机制使得模型能够更灵活地对不同时间步的输入信息进行加权。这有助于模型更加集中地关注对预测目标有更大影响的时间点。
自注意力机制还有助于处理时间序列中长期依赖关系,提高了模型在预测时对输入序列的全局信息的感知。
优化套用:基于黏菌优化算法(SMA)、卷积神经网络(CNN)和双向门控循环单元 (BiGRU)融合注意力机制的超前24步多变量时间序列回归预测算法。
功能:
1、多变量特征输入,单序列变量输出,输入前一天的特征,实现后一天的预测,超前24步预测。
2、通过SMA优化算法优化学习率、卷积核大小、神经元个数,这3个关键参数,以最小MAPE为目标函数。
3、提供损失、RMSE迭代变化极坐标图;网络的特征可视化图;测试对比图;适应度曲线(若首轮精度最高,则适应度曲线为水平直线)。
4、提供MAPE、RMSE、MAE等计算结果展示。
适用领域:风速预测、光伏功率预测、发电功率预测、碳价预测等多种应用。
预测值与实际值对比:
训练特征可视化:
训练曲线的极坐标形式(误差由内到外越来越接近0)
适应度曲线:
SMA算法部分代码:
% 黏菌优化算法(SMA)
主循环
while it <= Max_iterations
====适应度排序====== =
for i=1:SearchAgents
检查解决方案是否超出搜索空间并将其带回
Flag4ub=X(i,:)>ub;
Flag4lb=X(i,:)<lb;
)=(X(i,:).*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb; :
fobj(X(i,:)); =
end
sort(AllFitness); =
worstFitness = SmellOrder(SearchAgents);
bestFitness = SmellOrder(1);
S=bestFitness-worstFitness+eps; %加上 eps 以避免分母为零
===计算每个粘菌的适应度权重===== =
for i=1:SearchAgents
for j=1:dim
if i<=(SearchAgents/2)
1+rand()*log10((bestFitness-SmellOrder(i))/(S)+1); =
else
1-rand()*log10((bestFitness-SmellOrder(i))/(S)+1); =
end
end
end
===更新最佳适应度值和最佳位置===== =
if bestFitness < Destination_fitness
bestPositions=X(SmellIndex(1),:);
Destination_fitness = bestFitness;
bestPred = Value{SmellIndex(1)};
bestNet = Net{SmellIndex(1)};
bestInfo = Info{SmellIndex(1)};
end
a = atanh(-(it/Max_iterations)+1);
1-it/Max_iterations; =
部分图片来源于网络,侵权联系删除!