鲸鱼优化算法WOA优化BP神经网络回归预测模型以及MATLAB代码实现
文章目录
1. 算法描述
鲸鱼优化算法(Whale Optimization Algorithm)是一种新兴的智能优化算法,在2016年提出。算法灵感来源于鲸鱼围捕猎物的行为。鲸鱼在捕猎过程中采用包围猎物与环形游动喷出气泡网来驱赶猎物两种方式进行捕猎。选取Sphere函数作为测试基函数,比较鲸鱼优化算法WOA与遗传算法GA、粒子群算法PSO的寻优性能,从结果图可以看到,鲸鱼算法具有较好的全局搜索性能。
2. 鲸鱼优化算法优化BP神经网络预测的步骤与流程图设计
针对BP神经网络训练过程中的初始权值和阈值由随机数产生,对训练的网络结构具有影响,采用鲸鱼优化算法优化BP神经网络的初始权值和阈值,从而得到较为稳定的WOA-BP神经网络模型。
2.1 WOA优化BP神经网络的步骤:
Step1:初始化BP神经网络的权值和阈值
Step2:计算鲸鱼优化算法WOA的决策变量长度,选取均方误差作为优化的目标函数。
Step3:设置算法停止准则,使用鲸鱼优化算法优化神经网络的权值和阈值参数。
Step4:将优化得到的权值和阈值参数赋给BP神经网络。
Step5:优化后的BP神经网络训练与测试,与优化前的BP神经网络进行误差分析和精度对比。
2.2 WOA优化BP神经网络的流程图设计
3. WOA-BP预测算法的参数设置
3.1 数据说明
采用建筑物能源数据集,建立BP神经网络回归预测与鲸鱼优化算法WOA优化BP神经网络的回归预测算法。
3.2 数据格式
样本编号 | features1 | features2 | features3 | … | featuresn | target |
---|---|---|---|---|---|---|
1 | – | – | – | – | – | – |
2 | – | – | – | – | – | – |
… | – | – | – | – | – | – |
n | – | – | – | – | – | – |
3.3 优化变量的选取与适应度函数设计
优化BP神经网络的权值和阈值参数,将训练集与测试集整体的均方误差作为适应度函数。适应度函数值越小,表明训练越准确,且兼顾模型的预测精度更好。
F = min ( M S E Trainingset , Testingset ) F=\min \left(M S E_{\text {Trainingset }, \text { Testingset }}\right) F=min(MSETrainingset , Testingset )
式中,TraingingSet,TestingSet,分别为训练集和测试集的样本。
3.4 算法的参数设置
a)BP神经网络的参数设置
net=newff(inputn,outputn,hiddennum_best,{'tansig','purelin'},'trainlm','learngdm');% 建立模型
%网络参数配置
net.trainParam.epochs=1000; % 训练次数
net.trainParam.lr=0.01; % 学习速率
net.trainParam.goal=0.00001; % 训练目标最小误差
net.trainParam.show=25; % 显示频率
net.trainParam.mc=0.01; % 动量因子
net.trainParam.min_grad=1e-6; % 最小性能梯度
net.trainParam.max_fail=6; % 最高失败次数
b) WOA算法的参数设置
% 初始化WOA参数
popsize=30; %初始种群规模
maxgen=50; %最大进化代数
dim=inputnum*hiddennum_best+hiddennum_best+hiddennum_best*outputnum+outputnum; %自变量个数
lb=repmat(-3,1,dim); %自变量下限
ub=repmat(3,1,dim); %自变量上限
3.5 使用WOA优化后的BP神经网络进行预测,并与BP神经网络的预测结果进行误差分析和对比
4. 运行结果
4.2 WOA优化BP神经网络预测的误差分析和对比
5. MATLAB代码
改进的BP神经网络回归预测算法类别 | 代码地址 |
---|---|
BP | [BP神经网络回归预测MATLAB代码] |
GA-BP | [[GA优化BP回归预测MATLAB代码(含优化前的对比)]] |
PSO-BP | [[粒子群算法PSO优化BP神经网络回归预测MATLAB代码]] |
ACO-BP | [[蚁群算法ACO优化BP神经网络回归预测MATLAB代码]] |
ASO-BP | [[原子搜索算法ASO优化BP神经网络回归预测MATLAB代码]] |
SSA-BP | [[麻雀搜索算法SSA优化BP神经网络回归预测MATLAB代码]] |
WOA-BP | [[鲸鱼优化算法WOA优化BP神经网络回归预测MATLAB代码]] |
ABC-BP | [[人工蜂群算法ABC优化BP神经网络回归预测MATLAB代码]] |
SOA-BP | [[海鸥优化算法SOA优化BP神经网络回归预测MATLAB代码]] |
CS-BP | [[布谷鸟搜索算法CS优化BP神经网络回归预测MATLAB代码]] |
Logistic-ASO-BP | [[基于Logistic混沌映射改进的原子搜索算法ASO优化BP神经网络回归预测MATLAB代码]] |
Logistic-SSA-BP | [[基于Logstic混沌映射改进的麻雀搜索算法SSA优化BP神经网络回归预测MATLAB代码]] |
Tent-ASO-BP | [[基于Tent混沌映射改进的原子搜索算法ASO优化BP神经网络回归预测MATLAB代码]] |
Tent-SSA-BP | [[基于Tent混沌映射改进的麻雀搜索算法SSA优化BP神经网络回归预测MATLAB代码]] |
Sine-SSA-BP | [\基于Sine混沌映射改进的麻雀搜索算法SSA优化BP神经网络回归预测MATLAB代码] |