单目标应用:基于白鲨优化算法(WSO)优化极限学习机(ELM)的数据预测(ELM隐藏层神经元可修改,提供MATLAB代码)

一、白鲨优化算法WSO

白鲨优化算法(White Shark Optimizer,WSO)由Malik Braik等人于2022年提出,该算法受大白鲨导航和觅食时具有的非凡听觉和嗅觉启发。该算法思路新颖,策略高效。

大白鲨体呈纺锤型,躯干较粗壮。头一般长。尾基上下方各具一凹洼;尾柄具侧突。吻较短而尖突。眼中大,圆形,无瞬膜。前鼻瓣细小突出;无口鼻沟或触须。口裂宽,弧形,下颌极短,口闭时露齿;颌齿大型,边缘具锯齿,前面齿窄长而如钻子状,侧面齿侧扁如刀状,往后则渐低小,齿无小齿尖。喷水孔微小,有时消失。背鳍2个,第一背鳍稍大,起点与胸鳍后端相对或稍中,后缘凹入,上角略尖圆,下角微尖突;第二背鳍很小,起点与臀鳍起点相对,后缘微凹入,上角钝圆,下角微尖突;胸鳍宽大型,镰刀状,后缘微凹入,外角钝尖,内角钝圆;尾鳍宽短,尾椎轴稍上扬,上尾叉较长大,由上叶、尾椎轴及下叶中后部组成;下尾叉较短小,由尾鳍下叶前部的突出部分组成。体背侧青灰色,或暗褐色,或近黑色;腹侧淡色至白色。胸鳍腋上具一黑色斑块;腹鳍白色,前部具一青灰色斑块;背鳍、胸鳍和尾鳍后部暗色。

WSO原理参考博客:WSO原理

二、极限学习机ELM

极限学习机(Extreme Learning Machine, ELM)在2004年由 南洋理工大学 的Guang-Bin Huang、Qin-Yu Zhu和Chee-Kheong Siew提出,并发表于当年的IEEE国际交互会议(IEEE International Joint Conference)中,目的是为了对 反向传播算法 (Backward Propagation, BP)进行改进以提升学习效率低并简化学习参数的设定,其网络结构如下:

田艳丰,王顺,王哲,刘洋,邢作霞.基于粒子群算法改进极限学习机的风电功率短期预测[J].电器与能效管理技术,2022(03):39-44+76.DOI:10.16628/j.cnki.2095-8188.2022.03.006.

单目标应用:基于白鲨优化算法(WSO)优化极限学习机(ELM)的数据预测(ELM隐藏层神经元可修改,提供MATLAB代码)_第1张图片

单目标应用:基于白鲨优化算法(WSO)优化极限学习机(ELM)的数据预测(ELM隐藏层神经元可修改,提供MATLAB代码)_第2张图片

三、数值实验

由于随机产生的ω 和b对结果影响较大,且连接权值 β采用传统数值方法求解容易陷入局部最优。因此采用元启发式算法求解ω ,b和β更能有效提升ELM的性能。白鲨优化算法的每个个体由ω ,b和β组成,每个个体对应着ELM的一组结构参数,最优个体即为ELM的最优结构参数。数据集为3输入2输出,构建结构为3-10-2的ELM,并采用白鲨优化算法优化其参数ω ,b和β,使其样本均方误差(MSE)最小。

部分训练数据如下:前三列为输入,后两列为输出

-1.48581167519363	-1.24838611867669	2.90849868110777	-7.12850815017173	3.91945924326752
-2.03682497937084	-1.62549659918318	3.13733337825971	-8.83647993618459	4.35150159725524
-2.91742828577637	0.278657528235883	-0.837911588995676	-4.71828745432118	-4.31265493124381
-3.21719904347192	3.39707706048949	-2.78007625033151	-0.257244776122853	-12.7914294147824
-1.46432363263533	4.67415564678337	-4.74153932171945	6.48704770323217	-15.5541742479215
-0.887293701938956	-1.46604451186305	-1.05138013886818	-2.18925177687279	0.993415182918969
-2.74524848803191	0.189889117698133	-0.545993957457130	-4.75461390090856	-3.67102068088531
0.608661647703807	1.46640115252994	3.47955701801905	-0.795832570081499	1.15541636066298
-0.223687042120698	-4.19582942928925	0.914801846218669	-5.55800535974931	9.08277366267646
0.491883077422103	0.694781935631662	-4.92537060283375	6.60391869330961	-5.82305139667497
-2.92111776672356	-2.80000783866272	-0.703721826758106	-7.93852154535173	1.97517608384377
4.77369467717302	0.268255595708386	2.54725767650979	7.26838727354463	6.78444116226604
1.48643924691083	-1.42820292917462	1.75976910011832	-0.215093535471286	6.10261420537839
2.58442283029874	-3.80663063787233	-3.56073431137983	4.92294933410499	6.63694979466356
-3.60549116907897	1.95886927980877	4.73842863912621	-9.99054169747538	-2.78480108957030

部分代码如下:WSO种群大小为100,最大迭代次数为1000,训练样本数目为100。

close all
clear
clc
global inputnum hiddennum outputnum TrainNum 
inputnum=3;%神经网络输入层神经元个数(输入样本维度)
hiddennum=10;%神经网络隐藏层神经元个数(可以自己修改) 
outputnum=2;%神经网络输出层神经元个数(输出样本维度)
TrainNum=100;%训练集数目 
%% WSO优化ELM神经网络,目标函数是均方误差MSE
SearchAgents_no=100; %  种群大小(可以修改)
Function_name='F1'; 
Max_iteration=1000; % 最大迭代次数(可以修改)
[lb,ub,dim,fobj]=fun_info(Function_name);% 在fun_info.m中可以查看上下限及目标函数
[fMin,bestX,WSO_curve]=WSO(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);  % bestX是最优参数
save bestX bestX %保留WSO优化神经网络得到的最优参数
%%
figure
semilogy(WSO_curve,'Color','g')
title('Objective space')
xlabel('Iteration');
ylabel('MSE');
%axis tight
grid on
box on
legend('WSO')
%%
display(['The best solution obtained is : ', num2str(bestX)]);
display(['The best optimal value of the objective funciton is : ', num2str(fMin)]);%fMin越小说明效果越好

四、实验结果

预测值与真实值:
单目标应用:基于白鲨优化算法(WSO)优化极限学习机(ELM)的数据预测(ELM隐藏层神经元可修改,提供MATLAB代码)_第3张图片

第一个目标的预测值与真实值:
单目标应用:基于白鲨优化算法(WSO)优化极限学习机(ELM)的数据预测(ELM隐藏层神经元可修改,提供MATLAB代码)_第4张图片

第二个目标的预测值与真实值:

单目标应用:基于白鲨优化算法(WSO)优化极限学习机(ELM)的数据预测(ELM隐藏层神经元可修改,提供MATLAB代码)_第5张图片

两个目标的预测值与真实值的绝对误差MAE:
单目标应用:基于白鲨优化算法(WSO)优化极限学习机(ELM)的数据预测(ELM隐藏层神经元可修改,提供MATLAB代码)_第6张图片

由此可以看出,基于WSO优化ELM的数据预测效果理想,非常不错。

你可能感兴趣的:(单目标应用,MATLAB,智能优化算法,算法,matlab,机器学习)