蝙蝠算法(BA)优化长短期记忆神经网络原理及matlab代码

目录

0 引言

1 数学模型

2 优化长短期记忆神经网络

2.1 优化的方式

2.2 伪代码

3 matlab代码

3.1 主函数代码

3.2 BA-LSTM

4 视频讲解

0 引言

蝙蝠算法(Bat Algorithm,BA)是杨教授于2010年基于蝙蝠群体移动和搜寻猎物提出的启发式算法。算法主要假设理想化模拟蝙蝠回声定位感知距离、探索猎物和避免障碍物。从而建立数学模型进行求解问题。

1 数学模型

BA算法的数学模型主要对模拟蝙蝠探索猎物、避免障碍物和感知距离进行以下理想化假设:

(1)回声定位:蝙蝠利用回声定位系统寻找猎物进行捕猎行为,主要分为速度、位置更新,具体数学模型见下式:

式(1)为超声频率,其中fin/max为超声频率边界,β为随机变量。式(2)蝙蝠速度更新,x*为最优蝙蝠个体;式(3)为蝙蝠对应位置更新。

(2)随机飞行:回声定位确定最优解,引入脉冲频率,当随机数大于脉冲频率,利用局部随机飞行为每个蝙蝠生成一个新的解决方案,避免局部收敛。

ε为-1到1的随机值,At为响度,即所有蝙蝠随机维度步长。

(3)响度和脉冲发射的变化:随着迭代过程的进行,响度A和脉冲发射的速率r必须相应地更新。一旦蝙蝠找到猎物,响度通常会降低,而脉冲发射率会增加。

式中α和γ是常数,

2 优化长短期记忆神经网络

2.1 优化的方式

前篇对长短期记忆神经网络原理讲解(长短期记忆神经网络LSTM原理及matlab代码-CSDN博客),从长短期记忆神经网络matlab代码运算过程中,可以看到LSTM受多个超参数影响(隐藏层节点、学习率、分批量、正则化等等)。因此结合上述BA原理介绍,可以将这些超参数作为蝙蝠种群,每一个种群对应LSTM的预测值,将这个预测值作为适应度更新蝙蝠位置进行上述活动。

2.2 伪代码

3 matlab代码

3.1 主函数代码

%%参数
% A 响度 (不变或者减小)
% r 脉冲率 (不变或增加))
% r0 常数
% Af 常数
% Rf 常数
% Qmin 最小频率
% Qmax 最大频率
% maxT 最大迭代
% sizep 种群
% SYD 适应度函数

%% 主函数
while t <= maxT
    for i = 1:sizep

        bata = rand();
        Q(i)=Qmin+(Qmax-Qmin)*bata;% eq(1)
        popv(i,:)=popv(i,:)+(pop(i,:)-bestS)*Q(i);% eq(2)速度
        Stemp = pop(i,:)+popv(i,:);% eq(3)
        % 脉冲率
         if rand>r(i)
             Stemp=bestS-1+2*rand(1,dim);
         end

         fitTemp = SYD(Stemp,net);
         net.trainParam.showWindow = 0;
         
         if (fitTemp<=pfitness(i))&&(rand()<A(i))
            pop(i,:) = Stemp;
            pfitness(i) = fitTemp;
            A(i) = Af*A(i);
            r(i) = r0*(1-exp(-Rf*t));
         end
         
         if fitTemp <= bestMin
            bestMin = fitTemp;
         	bestS = Stemp;
         end
    end
    bestArchive(t) = bestMin;
    t = t +1;
end
end

3.2 BA-LSTM

1)时间序列:时间序列:蝙蝠算法优化长短期记忆神经网络(BA-LSTM)

4 视频讲解

B站搜索:‘ 不想学习的陈成 ’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值