700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 基于遗传算法的BP神经网络优化算法(GA BP)实用算例

基于遗传算法的BP神经网络优化算法(GA BP)实用算例

时间:2023-12-02 16:12:31

相关推荐

基于遗传算法的BP神经网络优化算法(GA BP)实用算例

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

前言一、工程背景二、代码(部分)1.引入库2.读入数据进化过程注意具体安装步骤声明

前言

基于遗传算法的BP神经网络优化算法 GA BP

一、工程背景

基于遗传算法的BP神经网络优化算法,以某拖拉机的齿轮箱为工程背景,介绍使用基于遗传算法的BP神经网络进行齿轮箱故障的诊断。

二、代码(部分)

1.引入库

代码如下:加载神经网络的训练样本 测试样本每列一个样本 输入P 输出T

%% 加载神经网络的训练样本 测试样本每列一个样本 输入P 输出T%样本数据就是前面问题描述中列出的数据load data% warning('off')% 初始隐层神经元个数hiddennum=31;% 输入向量的最大值和最小值threshold=[0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1];inputnum=size(P,1); % 输入层神经元个数outputnum=size(T,1);% 输出层神经元个数w1num=inputnum*hiddennum; % 输入层到隐层的权值个数w2num=outputnum*hiddennum;% 隐层到输出层的权值个数N=w1num+hiddennum+w2num+outputnum; %待优化的变量的个数%% 定义遗传算法参数NIND=40; %个体数目MAXGEN=50;%最大遗传代数PRECI=10; %变量的二进制位数GGAP=0.95;%代沟px=0.7; %交叉概率pm=0.01; %变异概率trace=zeros(N+1,MAXGEN); %寻优结果的初始值FieldD=[repmat(PRECI,1,N);repmat([-0.5;0.5],1,N);repmat([1;0;1;1],1,N)]; %区域描述器Chrom=crtbp(NIND,PRECI*N); %初始种群

2.读入数据

代码如下:BP神经网络初始权值和阈值

%% BP神经网络初始权值和阈值w1num=inputnum*hiddennum; % 输入层到隐层的权值个数w2num=outputnum*hiddennum;% 隐含层到输出层的权值个数w1=x(1:w1num); %初始输入层到隐含层的权值B1=x(w1num+1:w1num+hiddennum); %隐层神经元阈值w2=x(w1num+hiddennum+1:w1num+hiddennum+w2num); %初始隐层到输出层的权值B2=x(w1num+hiddennum+w2num+1:w1num+hiddennum+w2num+outputnum); %输出层阈值net.iw{1,1}=reshape(w1,hiddennum,inputnum);net.lw{2,1}=reshape(w2,outputnum,hiddennum);net.b{1}=reshape(B1,hiddennum,1);net.b{2}=reshape(B2,outputnum,1);%% 训练网络net=train(net,P,T);%% 测试网络Y=sim(net,P_test);err=norm(Y-T_test);

进化过程

最优初始权值和阈值:共592个,也就是说优化的变量数量为592最优初始权值和阈值:略最小误差err=0.78338

注意

提示:网上查找发现是因为缺少遗传算法需要的一个谢菲尔德gatbx工具箱,于是参考matlab遗传算法gatbx工具箱介绍及安装说明下载并安装了gatbx工具箱。

我已下载好,直接网盘提取即可:

链接:/s/1EZcZ7J002lvJVPZ6-w4_xA

提取码:wdr6

具体安装步骤

1、把下载的gatbx工具箱压缩包,解压到MATLAB安装目录下toolbox路径下(也可以解压后再复制gatbx文件到MATLAB安装目录下toolbox路径下*)

2、打开MATLAB后在toolbox里找到gatbx文件夹添加到路径即可,不需要做任何的更改。

声明

第一次发文章,如有不足,请见谅。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。