• 单目标应用:白鲸优化算法(Beluga whale optimization,BWO)优化双向长短时记忆BiLSTM的权值和阈值(提供MATLAB代码)


    一、算法简介

    白鲸优化算法(Beluga whale optimization,BWO)由Changting Zhong等人于2022年提出,该算法模拟了白鲸游泳,觅食和“鲸鱼坠落”行为。

    白鲸是高度社会化的动物,它们可以聚集在2到25名成员的群体中,平均有10名成员。白鲸是杂食性的,包括但不限于虾,蠕虫,鳕鱼,鳟鱼和鲑鱼。当夏天来临时,许多生物聚集在一些河口,所以鲸鱼聚集在一起吃东西。白鲸通常通过吸力将猎物带入嘴里,因为牙齿不锋利。有时,白鲸与协调小组通过引导鱼进入浅水来攻击和喂养鱼。此外,白鲸在夏季受到虎鲸,北极熊和人类的威胁,因为河口的人口密度很高。一些鲸鱼在迁徙过程中可能会死亡并落入深海,这被称为“鲸鱼坠落”,为大量没有阳光和氧气的生物提供充足的食物。

    在这里插入图片描述

    二、算法原理

    白鲸优化算法包含三个阶段:游泳(全局勘探),觅食(局部开发)和“鲸鱼坠落”。

    2.1全局勘探

    该阶段是模拟白鲸的游泳行为,根据位置的奇偶数采用不同的位置更新,其数学模型如下:

    在这里插入图片描述

    2.2局部开发

    该阶段是模拟白鲸的捕食行为,当前白鲸可以根据其周围白鲸的位置移动和合作觅食。因此,白鲸通过相互共享位置信息来捕食,从而引入最佳位置和其他位置,其数学模型如下:

    在这里插入图片描述

    其中:
    在这里插入图片描述

    2.3鲸鱼坠落

    在迁徙和觅食期间,白鲸受到虎鲸,北极熊和人类的威胁。大多数白鲸都很聪明,可以通过彼此分享信息来逃避威胁。然而,少数白鲸没有幸存下来并落入深海海底,被其他生物所食,这种现象被称为“鲸鱼坠落”。
    在这里插入图片描述

    其中:
    在这里插入图片描述
    在这里插入图片描述

    三、算法描述及流程

    3.1算法描述

    在这里插入图片描述

    3.2算法流程

    在这里插入图片描述

    四、双向长短时记忆BiLSTM

    在这里插入图片描述
    双向长短时记忆BiLSTM传统的权值和阈值更新方式采用梯度下降,由于梯度下降法容易使参数陷入局部最优。群智能优化算法具有较强的全局搜索能力,因此,本文采用白鲸优化算法BWO优化BiLSTM的权值和阈值,提高网络的求解精度。

    五、实验结果

    BWO优化BiLSTM的目标函数为训练集上网络预测值与真实值的均方误差MSE,BiLSTM的隐藏层含5神经元,输入层为10个神经元,输出层为1个神经元,步长为1;BWO种群大小为50,最大迭代次数为100。数据集为:data=exp(sin(0:0.05:10*pi)).cos(0:0.05:10pi);%数据集(可以根据自己的需求更改)如下所示:
    在这里插入图片描述
    训练集和测试集各占数据集的70%和30%。

    部分代码:

    %% 白鲸优化算法BWO优化双向长短时记忆BiLSTM实现数据的预测。
    data=exp(sin(0:0.05:10*pi)).*cos(0:0.05:10*pi);%数据集(可以根据自己的需求更改)
    Dim=sum(sum(K(:,1).*K(:,2)));%维度
    lb=-5;%下界
    ub=5;%上界
    fobj=@Fun;%计算训练集上的函数值(真实值与预测值的均方误差MSE)
    SearchAgents_no=50; % 种群大小(可以修改)
    Max_iteration=100; % 最大迭代次数(可以修改)
    [bestX,fMin,BWO_curve]=BWO(SearchAgents_no,Max_iteration,lb,ub,Dim,fobj);  %白鲸优化算法BWO优化双向长短时记忆BiLSTM的权值阈值 bestX是最优权值阈值
    o=TestFun(bestX);%在测试集上预测
    o1=TrainFun(bestX);%在训练集上预测
    save bestX bestX %保留白鲸优化算法BWO优化双向长短时记忆BiLSTM得到的最优参数
    save BWO_curve BWO_curve %保留
    %% 画出白鲸优化算法BWO优化双向长短时记忆BiLSTM的均方误差随迭代次数的图
    figure
    semilogy(BWO_curve,'Color','g')
    xlabel('Iteration');
    ylabel('MSE');
    legend('BWO')
    %%
    display(['The best solution obtained by BWO is : ', num2str(bestX)]);
    display(['The best optimal value of the objective funciton found by BWO is : ', num2str(fMin)]);%fMin越小说明白鲸优化算法BWO优化双向长短时记忆BiLSTM效果越好
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    求解结果:

    训练集上MSE随迭代次数变化的曲线图:
    在这里插入图片描述
    训练集上真实值和预测值对比图:
    在这里插入图片描述

    训练集上真实值和预测值绝对误差(MAE):
    在这里插入图片描述

    测试集上真实值和预测值对比图:
    在这里插入图片描述

    测试集上真实值和预测值绝对误差(MAE):
    在这里插入图片描述
    由此可见,白鲸优化算法(Beluga whale optimization,BWO)优化双向长短时记忆BiLSTM的权值和阈值用于时间序列预测效果十分不错。

    六、参考代码

  • 相关阅读:
    应用性能监控:SkyWalking
    protobuf 中复合数据类型的读写
    (pytorch进阶之路)DDPM回顾及Autoregressive diffuision model
    城市之间的联系
    CISSP-安全与风险管理
    JUC - 线程基础
    【LeetCode】【剑指offer】【扑克牌中的顺子】
    Linux入门攻坚——4、shell编程初步、grep及正则表达式
    “懒宅经济”崛起,智能家电品牌快收好这份软文推广指南
    【Java】Java 代码注释是代码逻辑的灵魂
  • 原文地址:https://blog.csdn.net/weixin_46204734/article/details/125614837