【神经网络学习笔记】遗传算法优化BP神经网络-非线性函数拟合

本文介绍了如何使用遗传算法优化BP神经网络的初始权重和阈值,以提高非线性函数拟合的准确性。遗传算法通过设定DNA序列来表示网络参数,经过适应度计算、选择、交叉和变异等步骤,逐步进化得到最优个体,从而改进神经网络的训练效果。主函数代码展示了这一过程,并提示用户下载相关资源查看子函数详情。
摘要由CSDN通过智能技术生成

我们知道,在建立神经网络的时候,需要给各个节点和连接赋予阈值和权值,但一般我们都是随机赋予,然后让系统在一次次的训练中需找到最小值。这种方法很有一种碰运气的成分在里面,而用遗传算法来优化BP神经网络则可以让神经网络从一个较接近的水准开始训练。

所谓用遗传算法优化,优化的是神经网络训练前各节点的初始值,这些初始值不再取随机值,而是用我们通过遗传算法得到的值来代替。

我们把每个物种赋予一个DNA序列,这个序列包含着各个阈值和权值,假设我们的网络是一个2-5-1的网络,那么DNA的长度就可以是2*5+5+5*1+1 = 21,每位表示一个阈值或权值。

再设定好这个种群的大小,即有多少个个体,然后就可以开始进化这个物种啦。

进化过程不短重复这几步

1.计算个体的适应度,即代入它的基因(阈值权值)计算所得到的与期望值的差值。

2.记录适应度最好即差值最小的个体。

3.轮盘法选择个体,适应度好的更容易被选到。

4.把选择出来的个体进行交叉和变异,相当于生物的有性繁殖和基因突变。

到了设定的遗传代数之后,得到的最优个体基因就比较接近最终的阈值权值啦,我们用这个个体的基因来初始化BP神经网络,再进行训练和预测,可以得到更好的效果。

下面是主函数的代码,其中的子函数请下载资源

%% 该代码为基于遗传算法神经网络的预测代码
% 清空环境变量
clc
clea
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值