智能优化算法应用:基于GWO优化BP神经网络 - 附代码

智能优化算法应用:基于GWO优化BP神经网络 - 附代码

智能优化算法应用:基于GWO优化BP神经网络

文章目录智能优化算法应用:基于GWO优化BP神经网络1.鸢尾花iris数据介绍

2.数据集整理

3.GWO优化BP神经网络3.1 BP神经网络参数设置

3.2 GWO灰狼算法应用

4.测试结果:

5.Matlab代码

摘要:本文主要介绍如何用灰狼算法优化BP神经网络,利用鸢尾花数据,做一个简单的讲解。

本案例利用matlab公用的iris鸢尾花数据,作为测试数据,iris数据是特征为4维,类别为3个类别。数据格式如下:

特征1

特征2

特征3

类别

单组iris数据

5.3

2.1

1.2

1

3种类别用1,2,3表示。

iris数据总共包含150组数据,将其分为训练集105组,测试集45组。如下表所示:

训练集(组)

测试集(组)

总数据(组)

105

45

150

类别数据处理:原始数据类别用1,2,3表示为了方便神经网络训练,类别1,2,3分别用1,0,0;0,1,0;0,0,1表示。

当进行数据训练对所有输入特征数据均进行归一化处理。

3.1 BP神经网络参数设置

通常而言,利用智能算法一般优化BP神经网络的初始权值和阈值来改善BP神经网络的性能。本案例基于iris数据,由于iris数据维度不高,采用简单的BP神经网络。神经网络参数如下:

图1.神经网络结构

神经网络参数如下:

%创建神经网络

inputnum = 4; %inputnum 输入层节点数 4维特征

hiddennum = 10; %hiddennum 隐含层节点数

outputnum = 3; %outputnum 隐含层节点数

net = newff( minmax(input) , [hiddennum outputnum] , { 'logsig' 'purelin' } , 'traingdx' ) ;

%设置训练参数

net.trainparam.show = 50 ;

net.trainparam.epochs = 200 ;

net.trainparam.goal = 0.01 ;

net.trainParam.lr = 0.01 ;

3.2 GWO灰狼算法应用

灰狼算法具体原理请参照:https://blog.csdn.net/u011835903/article/details/107716390

灰狼算法的参数设置为:

popsize = 20;%种群数量

Max_iteration = 20;%最大迭代次数

lb = -5;%权值阈值下边界

ub = 5;%权值阈值上边界

% inputnum * hiddennum + hiddennum*outputnum 为权值的个数

% hiddennum + outputnum 为阈值的个数

dim = inputnum * hiddennum + hiddennum*outputnum + hiddennum + outputnum ;% inputnum * hiddennum + hiddennum*outputnum维度

这里需要注意的是,神经网络的阈值数量计算方式如下:

本网络有2层:

第一层的权值数量为:4*10 = 40; 即inputnum * hiddennum;

第一层的阈值数量为:10;即hiddennum;

第二层的权值数量为:3*10 = 30;即hiddenum * outputnum;

第二层阈值数量为:3;即outputnum;

于是可知我们优化的维度为:inputnum * hiddennum + hiddennum*outputnum + hiddennum + outputnum = 83;

灰狼算法适应度函数值设定:

本文设置灰狼算法的适应度函数如下:

fitness=argmin(∑i=0N(Simout?GroundTruth)2)

fitness = argmin(\sum_{i=0}^N(Simout - GroundTruth)^2)fitness=argmin(i=0∑N?(Simout?GroundTruth)2)

例如:实际标签值为1,0,0;网络预测值为1.1,0.1,0.1;那么该单组数据的适应度值(误差)为 :

(1?0.1)2+(0?0.1)2+(0?0.1)2=0.83

(1-0.1)^2+(0-0.1)^2+(0-0.1)^2 = 0.83(1?0.1)2+(0?0.1)2+(0?0.1)2=0.83

所有测试数据误差之和即为最终的适应度值。那么神经网络的最终目的就是寻找到一组初始权值和阈值使得神经网络最终得到的误差最小。(注意适应度函数根据不同的应用按需要设置)

从灰狼算法的收敛曲线可以看到,整体误差是不断下降的,说明灰狼算法起到了优化的作用:

图2 灰狼算法收敛曲线

测试统计如下表所示

测试结果

测试集误差

训练集误差

BP神经网络

10.580

32.313

GWO-BP

5.596459

23.813974

https://mianbaoduo.com/o/bread/aJiTkpo=

智能优化算法应用:基于GWO优化BP神经网络 - 附代码相关教程

gwo算法matlab源代码,智能优化算法应用:基于GWO优化BP神经网络 - 附代码相关推荐

  1. matlab虚拟力,31无线传感网络布局优化的虚拟力导向粒子群算法MATLAB源代码

    无线传感网络布局优化的虚拟力导向粒子群算法MATLAB源代码 本源代码主要参考了下面的文献:王雪, 王晟, 马俊杰. 无线传感器网络布局的虚拟力导向微粒群优化策略[J]. 电子学报, 2007, 11 ...

  2. TDOA定位的Chan算法MATLAB源代码

    TDOA定位的Chan算法MATLAB源代码 . function [POS_ref,POS1,POS2,POS3,POS4] = TDOA_chan(R,Pbs,Q) %************** ...

  3. 智能算法 | MATLAB实现SA模拟退火算法函数寻优

    智能算法 | MATLAB实现SA模拟退火算法函数寻优 目录 智能算法 | MATLAB实现SA模拟退火算法函数寻优 基本介绍 算法描述 程序设计 参考资料 基本介绍 模拟退火算法(Simulated ...

  4. 金融领域下的数据挖掘算法应用:智能推荐算法模型

    摩天,用友旗下社会化的企业数智化学习认证社区,提供数智营销.智慧医疗.数智金融.智能制造.项目管理等精品课程,数智化人才上摩天!https://mot.yonyou.com/ 你将会学到: 智能推荐系 ...

  5. 生猪价格matlab,基于时间序列的BP神经网络猪肉价格预测

    科技创新 2m6钎第20期I科技创新与应用 基于时间序列的BP神经网络猪肉价格预测 张津张瑞斌 (成都理工大学管理科学学院,四川成都610059) 摘要:猪肉价格是不稳定的,起伏变化的,猪肉价格的预测 ...

  6. 【毕业设计/Matlab系列】基于PCA和BP神经网络的人脸识别系统(基于AR人脸库)

    Date: 2022.5.30 文章目录 前言 1.算法原理 2.实现效果 3.测试matlab代码 前言 在大学毕业设计的时候,在毕业设计中实现了基于PCA和BP神经网络的人脸识别系统,采用matl ...

  7. matlab 神经网络dpi,基于DPI和BP神经网络的P2P流量识别研究

    研究与开发 现代计算机 2019.04 上 文章编号:1007-1423(2019)10-0031-05 DOI:10.3969/j.issn.1007-1423.2019.10.007 基于 DPI ...

  8. 【毕业设计/Matlab系列】基于PCA和BP神经网络的人脸识别系统(附matlab代码)

    Date: 2022.4.26 文章目录 前言 1.总体介绍 2.详细分析 2.1.训练程序 2.2.测试程序 3.测试效果图 4.测试部分matlab代码 前言 在毕业设计中实现了基于PCA和BP神 ...

  9. 【智能优化算法-蒲公英优化器】基于蒲公英优化器求解单目标优化问题附matlab代码

    1 内容介绍 群智能优化算法作为当前优化算法中的一个主要研究热点,经过近年的发展,已经发展为较为新颖的演化计算技术,受到越来越多不同领域研究工作者的关注.群智能优化算法比传统优化方法求解各种复杂优化问 ...

最新文章

  1. 软件测试培训:如何搭建测试环境
  2. MySql UBUNTU下复制配置
  3. Java程序员从笨鸟到菜鸟之(五)java开发常用类(包装,数字处理集合等)(下)
  4. 『设计模式』小伙你的穿搭很潮!--装饰者模式
  5. 系统云服务器,系统云服务器
  6. matlab里dcgain,制系统的时域分析
  7. pca主成分分析结果解释_主成分分析(PCA)原理精讲 | 统计学专题
  8. android 最新功能介绍,Android Studio 常用功能介绍
  9. bash:yum:command not found 解决办法
  10. 常用http状态码说明,status
  11. java向注册表单传递数据php_form表单传递数组数据、php脚本接收的实例
  12. CCS软件的C语言取模注意点
  13. 量子计算机 因数分解,中国实现绝热量子质因数分解 或建量子计算机
  14. MFC MDI 多视图选项卡式风格
  15. TX2--Building OpenCV for Tegra with CUDA
  16. Python图像库PIL的类Image及其方法介绍
  17. DEDECMS留言薄全站调用方法
  18. oracle求两个字段的日期差
  19. Pycharm 安装 github copilot 报错:failed to initiate the github login process please try again
  20. flutter添加水印、添加自定义水印、禁止截屏(Android)

热门文章

  1. Kafka KSQL安装
  2. 面试十五年经验程序员,面试官沦为听众
  3. 微信小程序内跳转公众号
  4. 从管理的角度分享技术 TL 的核心职责:包括沟通与辅导、招聘与解雇等
  5. 零基础入门金融风控-贷款违约预测
  6. v-chart折线图数据改造
  7. pdps修改服务器,Tecnomatix PDPS二次开发功能介绍
  8. 手把手教你做树莓派魔镜-MagicMirror(六)-安装MagicMirror
  9. 摄影测量学空间后方交会
  10. edup无线网卡驱动安装linux,EDUP EP-N8513 (RTL8188CUS芯片)在Ubuntu 12.10下的wifi不能连接问题解决方法...