遗传算法优化的BP神经网络建模
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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);