遗传算法优化的BP神经网络建模

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

遗传算法优化的BP神经网络建模

十一月匆匆过去,每天依然在忙碌着与文档相关的东西,在寒假前一个多月里,努力做好手头上的事的前提下多学习专业知识,依然是坚持学习与素质提高并重,依然是坚持锻炼身体,为明年找工作打下基础。

遗传算法优化的BP神经网络建模借鉴别人的程序做出的仿真,最近才有时间整理。

目标:

对y=x1^2+x2^2非线性系统进行建模,用1500组数据对网络进行构建网络,500组数据测试网络。由于BP神经网络初始神经元之间的权值和阈值一般随机选择,因此容易陷入局部最小值。本方法使用遗传算法优化初始神经元之间的权值和阈值,并对比使用遗传算法前后的效果。

步骤:

未经遗传算法优化的BP神经网络建模

1、随机生成2000组两维随机数(x1,x2),并计算对应的输出y=x1^2+x2^2,前1500组数据作为训练数据input_train,后500组数据作为测试数据input_test。并将数据存储在data中待遗传算法中使用相同的数据。

2、数据预处理:归一化处理。

3、构建BP神经网络的隐层数,次数,步长,目标。

4、使用训练数据input_train训练BP神经网络net。

5、用测试数据input_test测试神经网络,并将预测的数据反归一化处理。

6、分析预测数据与期望数据之间的误差。

遗传算法优化的BP神经网络建模

1、读取前面步骤中保存的数据data;

2、对数据进行归一化处理;

3、设置隐层数目;

4、初始化进化次数,种群规模,交叉概率,变异概率

5、对种群进行实数编码,并将预测数据与期望数据之间的误差作为适应度函数;

6、循环进行选择、交叉、变异、计算适应度操作,直到达到进化次数,得到最优的初始权值和阈值;

7、将得到最佳初始权值和阈值来构建BP神经网络;

8、使用训练数据input_train训练BP神经网络net;

9、用测试数据input_test测试神经网络,并将预测的数据反归一化处理;

10、分析预测数据与期望数据之间的误差。

算法流程图如下:

运行后使用遗传算法改进前后误差的对比图:

程序:

1、未经遗传算法优化的BP神经网络建模

clear;

clc;

%%%%%%%%%%%%%输入参数%%%%%%%%%%%%%% N=2000; %数据总个数

M=1500; %训练数据

%%%%%%%%%%%%%训练数据%%%%%%%%%%%%%% for i=1:N

input(i,1)=-5+rand*10;

input(i,2)=-5+rand*10;

end

output=input(:,1).^2+input(:,2).^2;

save data input output

load data.mat

%从1到N随机排序

k=rand(1,N);

相关文档
最新文档