遗传算法优化的神经网络,遗传算法 优化

本文介绍了遗传算法优化神经网络的方法,包括遗传算法的基本步骤,如初始化、选择、交叉和变异,并提供了matlab和python的实现示例,用于优化概率神经网络和BP神经网络的初始权值。

遗传算法优化概率神经网络的matlab代码

原理大概是,设置一个初始种群,种群里的个体就是平滑因子,经过遗传算法的选择、交叉、变异后,逐渐找到一个最佳的spread,即为最终结果。

附件是一个GA-BP算法的程序,虽然不同,但是原理是相近的,可以参考。遗传算法的基本运算过程如下:a)初始化:设置进化代数计数器t=0,设置最大进化代数T,随机生成M个个体作为初始群体P(0)。

b)个体评价:计算群体P(t)中各个个体的适应度。c)选择运算:将选择算子作用于群体。选择的目的是把优化的个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。

选择操作是建立在群体中个体的适应度评估基础上的。d)交叉运算:将交叉算子作用于群体。遗传算法中起核心作用的就是交叉算子。e)变异运算:将变异算子作用于群体。

即是对群体中的个体串的某些基因座上的基因值作变动。群体P(t)经过选择、交叉、变异运算之后得到下一代群体P(t+1)。

f)终止条件判断:若t=T,则以进化过程中所得到的具有最大适应度个体作为最优解输出,终止计算。

谷歌人工智能写作项目:神经网络伪原创

经济最优单目标遗传优化算法怎么实现

写作猫

我给你一个标准遗传算法程序供你参考:该程序是遗传算法优化BP神经网络函数极值寻优:%%该代码为基于神经网络遗传算法的系统极值寻优%%清空环境变量clcclear%%初始化遗传算法参数%初始化参数maxgen=100;%进化代数,即迭代次数sizepop=20;%种群规模pcross=[0.4];%交叉概率选择,0和1之间pmutation=[0.2];%变异概率选择,0和1之间lenchrom=[11];%每个变量的字串长度,如果是浮点变量,则长度都为1bound=[-55;-55];%数据范围individuals=struct('fitness',zeros(1,sizepop),'chrom',[]);%将种群信息定义为一个结构体avgfitness=[];%每一代种群的平均适应度bestfitness=[];%每一代种群的最佳适应度bestchrom=[];%适应度最好的染色体%%初始化种群计算适应度值%初始化种群fori=1:sizepop%随机产生一个种群individuals.chrom(i,:)=Code(lenchrom,bound);x=individuals.chrom(i,:);%计算适应度individuals.fitness(i)=fun(x);%染色体的适应度end%找最好的染色体[bestfitnessbestindex]=min(individuals.fitness);bestchrom=individuals.chrom(bestindex,:);%最好的染色体avgfitness=sum(individuals.fitness)/sizepop;%染色体的平均适应度%记录每一代进化中最好的适应度和平均适应度trace=[avgfitnessbestfitness];%%迭代寻优%进化开始fori=1:maxgeni%选择individuals=Select(individuals,sizepop);avgfitness=sum(individuals.fitness)/sizepop;%交叉individuals.chrom=Cross(pcross,lenchrom,individuals.chrom,sizepop,bound);%变异individuals.chrom=Mutation(pmutation,lenchrom,individuals.chrom,sizepop,[imaxgen],bound);%计算适应度forj=1:sizepopx=individuals.chrom(j,:);%解码individuals.fitness(j)=fun(x);end%找到最小和最大适应度的染色体及它们在种群中的位置[newbestfitness,newbestindex]=min(individuals.fitness);[worestfitness,worestindex]=max(individuals.fitness);%代替上一次进化中最好的染色体ifbestfitness>newbestfitnessbestfitness=newbestfitness;bestchrom=individuals.chrom(newbestindex,:);endindividuals.chrom(worestindex,:)=bestchrom;individuals.fitness(worestindex)=bestfitness;avgfitness=sum(individuals.fitness)/sizepop;trace=[trace;avgfitnessbestfitness];%记录每一代进化中最好的适应度和平均适应度end%进化结束%%结果分析[rc]=size(trace);plot([1:r]',trace(:,2),'r-');title('适应度曲线','fontsize',12);xlabel('进化代数','fontsize',12);ylabel('适应度','fontsize',12);axis([0,100,0,1])disp('适应度变量');x=bestchrom;%窗口显示disp([bestfitnessx]);。

有没有用python实现的遗传算法优化BP神经网络的代码

下面是函数实现的代码部分:clcclearallcloseall%%加载神经网络的训练样本测试样本每列一个样本输入P输出T,T是标签%样本数据就是前面问题描述中列出的数据%epochs是计算时根据输出误差返回调整神经元权值和阀值的次数loaddata%初始隐层神经元个数hiddennum=31;%输入向量的最大值和最小值threshold=[01;01;01;01;01;01;01;01;01;01;01;01;01;01;01];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);%初始种群%%优化gen=0;%代计数器X=bs2rv(Chrom,FieldD);%计算初始种群的十进制转换ObjV=Objfun(X,P,T,hiddennum,P_test,T_test);%计算目标函数值whilegen。

遗传算法优化神经网络初始权值 30

functionerr=FitnessFcn(x)net=newff([Si...],[1581]);{1,1}=x(1:15);{2,1}=x(16:135);%8*15=120net.b{1,1}=x(136:150);net.b{2,1}=x(151:158);trainsimerr=误差------------------------------------------ga(FitnessFcn,158,.....)%要加限制条件想法不错,不过劝伱不要试10年也未必算得出来都有训练函数了,为什么还要用遗传算法来调整权值?

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值