BAS:天牛须搜索智能优化算法

BAS:天牛须搜索智能优化算法

目录

一、BAS优化算法简介

二、原理及代码实现

1.仿生原理

2.算法

3.建模:(n维空间函数f最小化)

4.程序实现

5.算法特点

 



一、BAS优化算法简介

        天牛须搜索(Beetle Antennae Search-BAS),也叫甲壳虫须搜索,是2017年提出的一种高效的智能优化算法。类似于遗传算法、粒子群算法、模拟退火等智能优化算法,天牛须搜索不需要知道函数的具体形式,不要虚梯度信息,就可以实现高效寻优。相比于粒子群算法,天牛须搜索只只要一个个体,即一个天牛,运算量大大降低。


二、原理及代码实现

1.仿生原理

       天牛须搜索时受到天牛觅食原理启发而开发的算法。

       生物原理:当天牛觅食时,天牛并不知道食物在哪,而是根据食物气味的强弱来觅食。天牛有俩只长触角,如果左边触角收到的气味强度比右边大,那下一步天牛就往左飞,否则就往右飞。根据这一简单原理天牛就可以有效找到食物。

       天牛须搜索得来的启发:食物的气味就相当于一个函数,这个函数在三维空间每个点值都不同,天牛两个须可以采集自身附近两点的气味值,天牛的目的是找到全局气味值最大的点。仿照天牛的行为,我们就可以高效的进行函数寻优。

2.算法

天牛在三维空间运动,而天牛须搜索需要对任意维函数都有效才可以。因而,天牛须搜索是对天牛生物行为在任意维空间的推广。采用如下的简化模型假设描述天牛:

  •        天牛左右两须位于质心两边。
  •        天牛步长step与两须之间距离d0的比是个固定常数,即step=c*d0,其中c是常数。即,大天牛(两须距离长)走大步,小天牛走小步。
  •        天牛飞到下一步后,头的朝向是随机的。

3.建模:(n维空间函数f最小化)

       第一步:对一个n维空间的优化问题,我们用xl表示左须坐标,xr表示右须坐标,x表示质心坐标,用d0表示两须之间的距离。根据假设3,天牛头朝向任意,因而从天牛右须指向左须的向量的朝向也是任意的,所以可以产生一个随机向量dir=rands(n,1)来表示它。对此归一化:dir=dir/norm(dir);我们这样可以得到xl-xr=d0*dir;显然,xlxr还可以表示成质心的表达式;xl=x+d0*dir/2xr=x-d0*dir/2

       第二步:对于待优化函数f,求取左右两须的值:felft=f(xl)fright=f(xr);判断两个值大小,

  •        如果fleft<fright,为了探寻f的最小值,则天牛向着左须方向行进距离step,即x=x+step*normal(xl-xr)
  •        如果fleft>fright,为了探寻f的最小值,则天牛向着右须方向行进距离step,即x=x-step*normal(xl-xr)
  •        如以上两种情况可以采用符号函数sign统一写成:x=x-step*normal(xl-xr)*sign(fleft-fright)=x-step*dir*sign(fleft-fright)

       (注:其中normal是归一化函数)

循环迭代:

       dir=rands(n,1);dir=dir/norm(dir);%须的方向

       xl=x+d0*dir/2;xr=x-d0*dir/2;%须的坐标

       felft=f(xl);fright=f(xr);%须的气味强度

       x=x-step*dir*sign(fleft-fright)。%下一步位置

关于步长:

      两种推荐:

  1. 每步迭代中采用step=eta*step,其中eta在0,1之间靠近1,通常可取eta=0.95;
  2. 引入新变量temp和最终分辨率step0temp=eta*tempstep=temp+step0.

     关于初始步长:初始步长可以尽可能大,最好与自变量最大长度相当。

4.程序实现

function bas() [3]

clear all;close all

eta=0.95;%%%%%%%初始化%%%%%%%

c=5;%ratio between step and d0

step=1;%initial step set as thelargest input range

n=100;%iterations

k=20;%space dimension

x=rands(k,1);%intial value

xbest=x;fbest=f(xbest);

fbest_store=fbest;x_store=[0;x;fbest];

display(['0:','xbest=[',num2str(xbest'),'],fbest=',num2str(fbest)])

for i=1:n %%%%%%%迭代部分%%%%%%%

d0=step/c;dir=rands(k,1);dir=dir/(eps+norm(dir));

xleft=x+dir*d0;fleft=f(xleft);

xright=x-dir*d0;fright=f(xright);

x=x-step*dir*sign(fleft-fright);f=f(x);

if f<fbest

xbest=x;fbest=f;

end

x_store=cat(2,x_store,[i;x;f]);fbest_store=[fbest_store;fbest];

display([num2str(i),':xbest=[',num2str(xbest'),'],fbest=',num2str(fbest)])

step=step*eta;

end

figure(1),clf(1),%%%%%%%数据显示部分%%%%%%%

plot(x_store(1,:),x_store(end,:); 'r-o')hold on,

plot(x_store(1,:),fbest_store,'b-.');xlabel('iteration');ylabel('minimum value')

end

function y=f(x)%%%%%%%被优化的函数,这部分需要换用你自己的被优化函数%%%%%%%

y=norm(x);

end

5.算法特点

  1. 运算量非常小,收敛非常快;
  2. 具有全局寻优能力;
  3. 代码非常短,容易实现。

摘自:https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=88093251_103_hao_pg&wd=%E5%A4%A9%E7%89%9B%E9%A1%BB%E4%BC%98%E5%8C%96&oq=bas%25E4%25BC%2598%25E5%258C%2596&rsv_pq=fb49d68800025b91&rsv_t=c52cm0ph7CdP6p%2FDrUZ7VX6Y2LFg7op2IFY5f2Ssj3d9Y30JodOrQEBjsLb6swbFqAc4Xbp2B5v%2FHg&rqlang=cn&rsv_dl=tb&rsv_enter=1&rsv_sug3=33&rsv_sug1=16&rsv_sug7=100&rsv_sug2=0&rsv_btype=t&inputT=17554&rsv_sug4=19568&rsv_jmp=slow用的url网络请求的数据。


  • 3
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: 天牛搜索算法是一种启发式搜索算法,通过模拟天牛的觅食行为,来寻找最优解。而BP神经网络是一种基于反向传播算法机器学习算法,用于解决分类或者回归问题。那么如何将天牛搜索算法与BP神经网络相结合进行优化呢? 首先,可以利用天牛搜索算法来确定BP神经网络的网络结构和初始权值。天牛搜索算法能够在解空间中进行搜索,并基于经验进行搜索空间的压缩和优化。可以根据问题的特点和需要,设计合适的搜索算法,并利用搜索的结果来确定BP神经网络的隐藏层数量、神经元数量和权值大小,从而减少网络的复杂度和训练时间。 其次,可以结合天牛搜索算法进行特征选择和参数优化。天牛搜索算法可以在特征空间中进行搜索,找到最重要的特征,并选择适当的特征组合来提高网络的泛化能力和分类准确率。同时,也可以利用天牛搜索算法来优化BP神经网络的参数,如学习率、动量因子和迭代次数,以提高网络的收敛性和训练效果。 最后,可以使用天牛搜索算法来优化BP神经网络的模型选择和集成学习。天牛搜索算法可以根据模型的性能和搜索空间的质量,选择最优的模型结构和参数组合,并利用集成学习的思想,将多个不同参数的BP神经网络进行组合,以提高整体的预测精度和泛化能力。 综上所述,将天牛搜索算法与BP神经网络相结合进行优化,可以在网络结构、特征选择、参数优化和模型选择等方面进行改进,从而提高网络的性能和预测能力。但需要注意的是,具体的优化策略和参数设置需要根据具体问题和实验经验进行调整和优化。 ### 回答2: 天牛搜索算法是一种优化算法,可以应用于BP神经网络。BP神经网络是一种用于解决分类和回归问题的模型,但由于其存在训练时间长、易陷入局部最优、收敛速度慢等问题,需要进行优化。 天牛搜索算法是一种基于天牛头攻击行走时观察到的行为规律提出的启发式优化算法。通过模拟天牛寻找食物时的行为,该算法能够快速找到目标,并且具有全局搜索能力和优化能力。 在应用于BP神经网络优化时,天牛搜索算法可以起到以下作用: 首先,天牛搜索算法可以加快神经网络的训练速度。传统的BP神经网络训练过程需要多次迭代和修正权值,而天牛搜索算法可以通过搜索最优解的方式,优化权值和偏置值的调整过程,从而加速网络学习过程,提高训练效率。 其次,天牛搜索算法可以帮助BP神经网络避免陷入局部最优解。BP神经网络存在容易陷入局部最优的问题,而天牛搜索算法能够进行多次的全局搜索,从而有助于寻找更优的权值和偏置值组合,避免陷入局部最优解,提高网络的泛化能力。 最后,天牛搜索算法还可以根据目标函数的特点,找到一组最优的神经网络参数组合,进一步提高神经网络的性能。通过灵活调整搜索算法中的参数,可以适应不同的问题,实现对BP神经网络的有效优化。 综上所述,天牛搜索算法可以应用于BP神经网络的优化中,通过加快训练速度、避免陷入局部最优和进一步提高性能,提高神经网络的训练效率和泛化能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值