✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,

代码获取、论文复现及科研仿真合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab完整代码及仿真定制内容点击👇

智能优化算法       神经网络预测       雷达通信      无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机

🔥 内容介绍

基于生物地理学算法 (BBO) 优化多层感知器MLP实现数据分类含 PSO、ACO、ES、GA 算法

生物地理学算法 (BBO) 是一种基于生物地理学理论的启发式算法,它模拟了生物种群在地理环境中的迁徙和适应过程。这种算法被广泛应用于解决优化问题,如数据分类、函数优化等。在本文中,我们将介绍如何利用BBO算法优化多层感知器 (MLP) 实现数据分类,并比较其与其他常见优化算法如粒子群算法 (PSO)、蚁群算法 (ACO)、进化策略 (ES)、遗传算法 (GA) 的性能。

多层感知器是一种常见的人工神经网络结构,它由多个神经元层组成,每个神经元层都与下一层全连接。MLP在数据分类、模式识别等领域有着广泛的应用,但其性能很大程度上取决于网络结构和参数的选择。因此,优化MLP的结构和参数对于提高其分类性能至关重要。

在本研究中,我们提出了一种基于BBO算法的MLP优化方法。首先,我们将MLP的结构和参数表示为一个优化问题,其中目标是最大化分类准确率。然后,我们利用BBO算法来搜索最优解,通过模拟生物种群的迁徙和适应过程,不断优化MLP的结构和参数。实验结果表明,基于BBO算法的MLP优化方法在数据分类任务中取得了较好的性能,相较于传统的PSO、ACO、ES、GA算法,具有更快的收敛速度和更高的分类准确率。

与PSO算法相比,BBO算法能够更好地避免陷入局部最优解,同时具有更强的全局搜索能力。与ACO算法相比,BBO算法能够更快地收敛到最优解,同时具有更好的鲁棒性。与ES算法相比,BBO算法能够更稳定地优化MLP的结构和参数,同时具有更高的分类准确率。与GA算法相比,BBO算法能够更快地找到最优解,同时具有更好的收敛性能。

基于生物地理学的优化器 (BBO) 被用作多层感知器 (MLP) 的训练器。当前的源代码是用于解决虹膜分类问题的 BBO-MLP 训练器的演示。本次提交中还有其他训练器:粒子群优化(PSO)、蚁群优化(ACO)、遗传算法(GA)、进化策略(ES)和基于概率的增量学习(PBIL)。BBO-MLP 的分类精度在 main.m 文件末尾计算,并与 PSO、ACO、ES、GA 和 PBIL 的分类精度进行比较。最后绘制了各算法的收敛曲线和分类精度。

综上所述,基于BBO算法的MLP优化方法在数据分类任务中具有较好的性能,相较于传统的PSO、ACO、ES、GA算法,具有更快的收敛速度和更高的分类准确率。未来,我们将进一步研究BBO算法在其他优化问题中的应用,并探索其在神经网络优化中的潜在价值。

📣 部分代码

%      Biogeography-Based Optimization (BBO) trainer for MLP        %
%                      source codes version 1                       %
%                                                                   %

clc
clear all
close all
% For modifying initial parameters please have a look at init.m file 

display('..........................................................................................')
display('BBO is training MLP ...')
display('..........................................................................................')
[cg_curve1,Hamming,best] = BBO(@MLP_Iris, 1, 1, 300); % BBO trainer
Best_W_B(1,:)=best;

display('..........................................................................................')
display('PSO is training MLP ...')
display('..........................................................................................')
[cg_curve2,best]= PSO(@MLP_Iris, 1);  % PSO trainer
Best_W_B(2,:)=best;

display('..........................................................................................')
display('GA is training MLP ...')
display('..........................................................................................')
[cg_curve3,best]= GA(@MLP_Iris, 1); % GA trainer
Best_W_B(3,:)=best;

display('..........................................................................................')
display('ACO is training MLP ...')
display('..........................................................................................')
[cg_curve4,best]= ACO(@MLP_Iris, 1); % ACO trainer
Best_W_B(4,:)=best;

display('..........................................................................................')
display('ES is training MLP ...')
display('..........................................................................................')
[cg_curve5,best]= ES(@MLP_Iris, 1); % ES trainer
Best_W_B(5,:)=best;

display('..........................................................................................')
display('PBIL is training MLP ...')
display('..........................................................................................')
[cg_curve6,best]=PBIL(@MLP_Iris, 1); % PBIL trainer
Best_W_B(6,:)=best;

 % Calculating classification rates
  
 load iris.txt
 x=sortrows(iris,2);
 
 H2=x(1:150,1);
 H3=x(1:150,2);
 H4=x(1:150,3);
 H5=x(1:150,4);
 T=x(1:150,5);
  
 H2=H2';
 [xf,PS] = mapminmax(H2);  % Normalzation of input
 I2(:,1)=xf;
 
 H3=H3';
 [xf,PS2] = mapminmax(H3); % Normalzation of input
 I2(:,2)=xf;
 
 H4=H4';
 [xf,PS3] = mapminmax(H4); % Normalzation of input
 I2(:,3)=xf;
 
 H5=H5';
 [xf,PS4] = mapminmax(H5); % Normalzation of input
 I2(:,4)=xf;
 Thelp=T;
 T=T';
 [yf,PS5]= mapminmax(T);   % Normalzation of output
 T=yf;
 T=T';
 
    for i=1:6
        Rrate=0;
        W=Best_W_B(i,1:63);
        B=Best_W_B(i,64:75);
        for pp=1:150
            actualvalue=my_MLP(4,9,3,W,B,I2(pp,1),I2(pp,2), I2(pp,3),I2(pp,4));
            if(T(pp)==-1)
                if (actualvalue(1)>=0.95 && actualvalue(2)<0.05 && actualvalue(3)<0.05)
                    Rrate=Rrate+1;
                end
            end
            if(T(pp)==0)
                if (actualvalue(1)<0.05 && actualvalue(2)>=0.95 && actualvalue(3)<0.05)
                    Rrate=Rrate+1;
                end  
            end
            if(T(pp)==1)
                if (actualvalue(1)<0.05 && actualvalue(2)<0.05 && actualvalue(3)>=0.95)
                    Rrate=Rrate+1;
                end              
            end
        end
        
        Final_Classification_Rates(1,i)=(Rrate/150)*100;
        
    end
    
 display('--------------------------------------------------------------------------------------------')
 display('Classification rate')
 display('   BBO       PSO       GA       ACO       ES       PBIL')
 display(Final_Classification_Rates(1:6))
 display('--------------------------------------------------------------------------------------------')
 

figure('Position',[500 500 660 290])
%Draw convergence curves
subplot(1,2,1);
hold on
title('Convergence Curves')
semilogy(cg_curve1,'Color','r')
semilogy(cg_curve2,'Color','k')
semilogy(cg_curve3,'Color','b')
semilogy(cg_curve4,'Color','r')
semilogy(cg_curve5,'Color','g')
semilogy(cg_curve6,'Color','c')
xlabel('Generation');
ylabel('MSE');

axis tight
grid on
box on
legend('BBO','PSO', 'GA', 'ACO', 'ES', 'PBIL')

%Draw classification rates
subplot(1,2,2);
hold on
title('Classification Accuracies')
bar(Final_Classification_Rates)
xlabel('Algorithm');
ylabel('Classification rate (%)');

grid on
box on
set(gca,'XTickLabel',{'BBO','PSO', 'GA', 'ACO', 'ES', 'PBIL'});

⛳️ 运行结果

基于生物地理学算法 (BBO) 优化多层感知器MLP实现数据分类含 PSO、ACO、ES、GA 算法对比附matlab代码_无人机

🔗 参考文献

S. Mirjalili, SM Mirjalili, A. Lewis, Let A Biogeography-Based Optimizer Train Your Multi-Layer Perceptron, Information Sciences, In press, 2014, DOI: http://dx . doi.org/10.1016/j.ins.2014.01.038

🎈 部分理论引用网络文献,若有侵权联系博主删除
🎁  关注我领取海量matlab电子书和数学建模资料

👇  私信完整代码、论文复现、期刊合作、论文辅导及科研仿真定制

1 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化
2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
2.图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
3 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化
4 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配、无人机安全通信轨迹在线优化
5 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化
6 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化
7 电力系统方面
微电网优化、无功优化、配电网重构、储能配置
8 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长
9 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合