2024年8月最新!顶级优化套用!极光优化PLO-CNN-BiGRU-Attention时空特征融合注意力机制的回归预测程序!

文摘   教育   2024-12-23 09:53   江苏  
适用平台:Matlab2023版及以上

极光优化算法(Polar Lights Optimizer, PLO),于2024828发表在SCI、中科院顶级期刊Neurocomputing》上。该算法刚提出没几天,近期绝对没有套用这个算法的文献,先到先得,抓住该创新点哦!

我们利用PLO对我们的CNN-BiGRU-SelfAttention时序和空间特征结合-融合多头自注意力机制的回归预测程序代码中的超参数进行优化。

这篇论文提出了一种新颖的元启发式算法,命名为极光优化算法(Polar Lights Optimizer, PLO)算法的优化过程主要基于物理现象,模拟高能粒子在太阳风中的运动轨迹。极光是一种大气光学现象,主要出现在高纬度地区的夜空中,通常表现为绚丽多彩的光带或光幕。极光的形成是由于太阳风中的带电粒子(主要是电子和质子)进入地球磁场,并在两极附近的高层大气中与氧原子和氮分子发生碰撞,激发这些原子和分子发光。

通过使用29个典型的CEC2017无约束基准问题和22CEC2020真实约束的优化问题进行验证,还与传统的AOMVOEOAVOAHHOPSO-sonoSHADELSHADE-SPACMA,验证了SAO的优化能力。此外,为了进一步验证其优势,作者还将SAO应用于提取光伏系统的核心参数。结果表明,开发的LPO比其他先进的优化方法表现更好。
PLO算法的创新点主要体现在以下几个方面:
  • 基于物理定律的旋转运动模型:PLO算法引入了一个独特的旋转运动模型,模拟了高能粒子在地球磁场的作用下被偏转并与大气分子碰撞的情况。该模型模拟大气对带电粒子的速度衰减效应,通过物理定律来帮助粒子在局部利用阶段仔细搜索最优解,并在算法迭代过程中逐渐提高收敛精度。

  • 极光椭圆行走策略:PLO算法引入了极光椭圆行走策略,通过模拟高能粒子在极地上空逐渐汇聚并形成发光椭圆环的现象,粒子在椭圆环内自由移动,并随地球磁场的变化而混乱地跟随。该策略允许高能粒子在动态步长内搜索整个空间,并以粒子群的质心为指导,确保整个粒子群的收敛方向,从而提高了全局搜索能力 。

  • 粒子碰撞策略:PLO算法还引入了粒子碰撞策略,模拟高能粒子在整个飞行过程中发生的混乱无序的碰撞行为。该策略增强了算法跳出局部最优解的能力,使得算法在复杂的优化空间中具有更强的全局探索能力和局部开发能力 。

  • 无参数优化:与许多需要预先定义额外参数的算法不同,PLO不需要额外的参数设定。这使得PLO在应用于复杂问题时具有显著的优势,简化了算法的应用,并减少了对问题特定的参数调整需求 。

  • 全局探索与局部开发的平衡:PLO算法通过旋转运动和极光椭圆行走这两种策略的结合,实现了全局探索与局部开发的平衡。通过调整搜索步长和探索空间的策略,PLO能够在搜索过程的早期阶段逐步探索全局最优解,同时通过积累经验逐步提高对局部区域的开发精度 。

  • Levy飞行动态调整步长PLO 算法中,Levy 飞行与极光椭圆步策略结合使用,通过模拟带电粒子在极光带中的复杂运动模式,使得算法能够在全局范围内快速跳跃和定位有潜力的解空间区域。这种结合使得 PLO 在探索新的解空间区域时更加高效,进一步提升了算法的全局探索能力。

总结:PLO 是一种受到极光现象启发的元启发式算法。它通过模拟带电粒子在地球磁场和大气中的运动过程,设计了四个主要策略:旋转运动、极光椭圆步、动态步长粒子碰撞。这些策略分别用于局部搜索、全局搜索和避免陷入局部最优解。PLO 的数学模型引入了洛伦兹力、牛顿第二定律、阻尼因子以及自适应权重等创新元素,从而实现了全局与局部搜索的动态平衡,提高了优化算法的效果和精度。


CNN-BiGRU-SelfAttention模型的创新性:

  • 结合卷积神经网络 (CNN) 和双向门控循环单元 (BiGRU):CNN 用于处理多变量时间序列的多通道输入,能够有效地捕捉输入特征之间的空间关系。BiGRU 是一种能够捕捉序列中长距离依赖关系的递归神经网络。通过双向性,BiGRU 可以同时考虑过去和未来的信息,提高了模型对时间序列动态变化的感知能力。

  • 引入多头自注意力机制 (Multihead Self-Attention): 多头自注意力机制使得模型能够更灵活地对不同时间步的输入信息进行加权。这有助于模型更加集中地关注对预测目标有更大影响的时间点。自注意力机制还有助于处理时间序列中长期依赖关系,提高了模型在预测时对输入序列的全局信息的感知。

优化套用:基于极光优化算法(LPO)、卷积神经网络(CNN)和双向门控循环单元 (BiGRU)融合多头自注意力机制的超前24步多变量时间序列回归预测算法。

功能:

  • 多变量特征输入,单序列变量输出,输入前一天的特征,实现后一天的预测,超前24步预测。

  • 通过PLO优化算法优化学习率、卷积核大小、神经元个数,这3个关键参数,以最小MAPE为目标函数。

  • 提供损失、RMSE迭代变化极坐标图;网络的特征可视化图;测试对比图;适应度曲线(若首轮精度最高,则适应度曲线为水平直线)。

  • 提供MAPERMSEMAE等计算结果展示。

适用领域:风速预测、光伏功率预测、发电功率预测、碳价预测等多种应用。

数据集格式:
前一天18个气象特征如:温度、湿度、露点等,采样时间为24小时,输出为第二天的24小时的功率出力,也就是18×24输入,1×24输出,一共有75个这样的样本。


预测值与实际值对比结果:

训练特征可视化:
训练误差曲线的极坐标形式(误差由内到外越来越接近0)表明误差下降过程:
适应度曲线:
部分核心代码:
%% 清除内存、清除屏幕clcclear
%% 导入特征数据、当天的风速数据data = xlsread('特征序列及实际值.xlsx');Features = data(1:18,:); %% 特征输入 :75天,每天24小时,每小时一个采样点,共计75*24=1800小时,18个特征数据Wind_data = data(19,:); %% 实际值输出:75天,每天24小时,每小时一个采样点,共计75*24=1800小时的风速数据
%% 数据平铺为4-DLP_Features = double(reshape(Features,18,24,1,75)); %% 特征数据格式为18*24*1*75,分别对应18特征24小时,75天LP_WindData = double(reshape(Wind_data,24,1,1,75)); %% 实际数据格式为24*1*1*75 ,分别对应24小时,75天
%% 格式转换为cellNumDays = 75; %% 数据总天数为 75天for i=1:NumDays FeaturesData{1,i} = LP_Features(:,:,1,i);end
for i=1:NumDays RealData{1,i} = LP_WindData(:,:,1,i);end
%% 划分数据XTrain = FeaturesData(:,1:73); %% 训练集输入为 1-73 天的特征YTrain = RealData(:,2:74); %% 训练集输出为 2-74天 的实际值
XTest = cell2mat(FeaturesData(: , 74)); %% 测试集输入第 74 天的特征Ytest = cell2mat(RealData(: , 75)); %% 测试集输出为第 75天 的实际值N = size(Ytest,1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 优化算法信息 SearchAgents_no = 3; %% 搜索个体的数量Max_iter = 10; %% 最大迭代次数lb = [0.001, 1, 1]; %% 寻优参数下限 [学习率, 卷积核大小, 神经元数量];ub = [0.01, 5, 120]; %% 寻优参数上限 [学习率, 卷积核大小, 神经元数量];dim = 3; %% 有几个需要优化的参数就是几维fobj = @objectiveFunction;%% 目标函数
%% 极光优化算法PLO优化超参数 [Leader_score, Leader_pos, Convergence_curve, bestPred, bestNet, bestInfo] = PLO(SearchAgents_no, Max_iter, lb, ub, dim, fobj);%% 优化结果导出Best_Cost = Leader_score; %% 最佳适应度Best_Solution = Leader_pos; %% 最佳网络参数bestPred = bestPred{1}; %% 最佳预测值bestNet = bestNet{1}; %% 最佳网络bestInfo = bestInfo{1}; %% 最佳训练曲线% 显示优化结果disp(['优化所得参数分别为' num2str(Leader_pos)]);
部分图片来源于网络,侵权联系删除!

完整代码:https://mbd.pub/o/bread/ZpqXlpht

欢迎感兴趣的小伙伴点击阅读原文或上方链接获得完整版代码哦~

关注小编会不定期推送高创新型、高质量的学习资料、文章程序代码,为你的科研加油助力~

创新优化及预测代码
免费分享研究理论及方法,基础代码资料,努力提供电力系统相关专业预测及优化研究领域的创新性代码,保质保量!面包多地址:https://mbd.pub/o/yc_yh/work
 最新文章