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

该博客探讨了如何利用遗传算法优化BP神经网络的权重和阈值,以提升其在机器学习任务中的性能。通过GAMain、Objfun和BpFunction等函数的实现,展示了具体的优化过程,并给出了优化后的结果。
摘要由CSDN通过智能技术生成

所用数据同“2 - 较复杂的BP神经网络实现”
GAMain.m

clc
clear 
close all
%% 加载神经网络的训练样本 测试样本每列一个样本 输入P 输出T
%样本数据就是前面问题描述中列出的数据
load dataa
% warning('off')
% 初始隐层神经元个数
%hiddennum=31;
hiddennum=13;
inputnum=size(P1,1);       % 输入层神经元个数
outputnum=size(T1,1);      % 输出层神经元个数
w1num=inputnum*hiddennum; % 输入层到隐层的权值个数=输入层*隐含层节点个数
w2num=outputnum*hiddennum;% 隐层到输出层的权值个数=输出层*隐含层节点个数
N=w1num+hiddennum+w2num+outputnum; %待优化的变量的个数=权值+阈值(隐含层+输出层节点个数)

%% 定义遗传算法参数
NIND=40;        %个体数目,种群大小  #可修改该值来调整优化效果
MAXGEN=100;      %最大遗传代数  #可修改该值来调整优化效果
PRECI=10;       %变量的二进制位数,个体长度                                  ??如何确定,对优化结果有何影响
GGAP=0.95;      %代沟,95%的父代复制给了子代。GGAP缺省或NaN表示=1,GGAP也可大于1。传统遗传算子包括:选择,交叉,变异;新的遗传算子,如代沟,人工选择等等
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;
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值