当前位置: 首页 > news >正文

遗传算法bp神经网络原理,bp神经网络和遗传算法

遗传算法为什么可以优化bp神经网络?

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

BP神经网络

我不是大神文案狗。但可以给给意见。1,遗传算法不能改变BP神经网络准确率低的本质问题的。只能在一定程度上优化BP神经网络。2,你的数据是怎么增加的?由原来的80组数据基础上随意组合的?

还有你的输出结果是3个等级。期望输出是什么类型?预测输出是什么类型?你判断正确率的标准是什么?这些都会对正确率有影响。3,BP神经网络的正确率的提高可以通过:一,改变隐层的节点数。或增减隐层的层数。

最少一个隐层,最多2个。二,改变传递函数,一般隐层用tansig,输出层用linear或者tansig。4,最后的方法是不怎么重要的,就是数据的归一化,一般是归一化或不归一化都可以的,都试试。

我都是书本学过,做过点题目,只能给这些建议。

有没有用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。

对于预测方面,是马尔科夫链比较好,还是遗传算法优化bp神经网络比较好?

谁有用于数据预测的用遗传算法改进的BP神经网络程序

给你来一段%主程序%数据归一化预处理nntwarnoff[pn,minp,maxp]=premnmx(p);pp=(pn+1)/2;[tn,mint,maxt]=premnmx(t);%建立BP网络net=newff(minmax(pp),[15,1],{'logsig','purelin'},'trainlm');%应用遗传算法对优化网络初始值in=size(pn,1);out=size(tn,1);hi=15;%隐含层节点数L=in*hi+hi*out+hi+out;%遗传算法编码长度aa=ones(L,1)*[-1,1];popu=50;%种群规模initPpp=initializega(popu,aa,'ISeval');%初始化种群gen=100;%遗传世代%调用GAOT工具箱,其中目标函数定义为ISeval[x,endPop,bPop,trace]=ga(aa,'ISeval',[],initPpp,[1e-611],'maxGenTerm',…,gen,'normGeomSelect',[0.09],['arithXover'],[2],'nonUnifMutation',[2gen3]);%绘收敛曲线图figure(1)plot(trace(:,1),1./trace(:,3),'r-');holdonplot(trace(:,1),1./trace(:,2),'b-');xlabel('Generation');ylabel('Sum-SquaredError');figure(2)plot(trace(:,1),trace(:,3),'r-');holdonplot(trace(:,1),trace(:,2),'b-');xlabel('Generation');ylabel('Fittness');%将得到的权值矩阵赋给尚未开始训练的BP网络[w1,b1,w2,b2,a1,a2,se,eval]=IScode(x);%调用自定义编解码函数%创建网络{1,1}=w1;{2,1}=w2;net.b{1,1}=b1;net.b{2,1}=b2;%设置训练参数=10;net.trainParam.epochs=5000;=0.05;%训练网络net=train(net,pp,t);%自定义目标函数function[sol,eval]=ISeval(sol,options)%eval-thefittnessofthisindividual%sol-theindividual,returnedtoallowforLamarckianevolution%options-[current_generation]p=[];%原始输入数据t=[];%原始输出数据in=size(p,1);out=size(t,1);hi=15;%隐含层节点数L=in*hi+hi*out+hi+out;%遗传算法编码长度fori=1:L,x(i)=sol(i);end;[w1,b1,w2,b2,a1,a2,se,eval]=IScode(x);%自定义编解码函数function[w1,b1,w2,b2,a1,a2,se,eval]=IScode(x)[pn,minp,maxp]=premnmx(p);pp=(pn+1)/2;[tn,mint,maxt]=premnmx(t);in=size(pn,1);%输入层结点数out=size(tn,1);%隐含层结点数hi=15;%隐含层结点数L=in*hi+hi*out+hi+out;%遗传算法编码长度%前in*hi个编码为w1fori=1:hi,forj=1:in,w1(i,j)=x(in*(i-1)+j);endend%接着的hi*out个编码为w2fori=1:out,forj=1:hi,w2(i,j)=x(hi*(i-1)+j+in*hi);endend%接着的hi个编码为b1fori=1:hi,b1(i,1)=x((in*hi+hi*out)+i);end%最后的out个编码b2fori=1:out,b2(i,1)=x((in*hi+hi*out+hi)+i);end%计算hi层与out层的输出a1=tansig(w1*pp,b1);a2=purelin(w2*a1,b2);%计算误差平方和se=sumsqr(t-a2);eval=1/se;%遗传算法的适应值。

bp神经网络如果加上遗传算法优化,和RBF神经网络,预测哪个比较好!或者这样哪个比较厉害!跪求大神

 

相关文章:

  • AVL树详解+模拟实现
  • 【python】(一)字符串基本操作
  • 猿创征文|全方位快速了解事务的4种隔离级别
  • J9数字论:Web3.0对比传统Web2.0的区别
  • 《linux程序设计》笔记第一章
  • Java中的线程池的线程数量如何确定?
  • Jumpserver堡垒机部署(完整过程)
  • SpringBoot基于AOP实现RocketMQ发送与消费
  • 全球与中国亚麻籽行业消费量调研及未来产销需求分析报告2022-2028年
  • 链接装载与库:第八章——Linux共享库组织
  • java应用提速(速度与激情)
  • Java学习----Set接口
  • To enable Secure Boots and Flash Encryption using the ESP Flash download tool
  • FastFlow(2)---任务调度Task Schedule
  • 根据当前日期获取前一天日期-小工具
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • AHK 中 = 和 == 等比较运算符的用法
  • DOM的那些事
  • echarts花样作死的坑
  • ES6系列(二)变量的解构赋值
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Just for fun——迅速写完快速排序
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • php面试题 汇集2
  • Promise面试题,控制异步流程
  • Python3爬取英雄联盟英雄皮肤大图
  • SwizzleMethod 黑魔法
  • Vim Clutch | 面向脚踏板编程……
  • vue自定义指令实现v-tap插件
  • 前端工程化(Gulp、Webpack)-webpack
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 手写一个CommonJS打包工具(一)
  • 字符串匹配基础上
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​linux启动进程的方式
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • ***测试-HTTP方法
  • .htaccess 强制https 单独排除某个目录
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • [ 常用工具篇 ] POC-bomber 漏洞检测工具安装及使用详解
  • [C# 开发技巧]如何使不符合要求的元素等于离它最近的一个元素
  • [C++]C++入门--引用
  • [codevs 1288] 埃及分数 [IDdfs 迭代加深搜索 ]
  • [EULAR文摘] 利用蛋白组学技术开发一项蛋白评分用于预测TNFi疗效
  • [HCTF 2018]WarmUp (代码审计)
  • [iOS]iOS获取设备信息经常用法
  • [java基础揉碎]关系运算符(比较运算符)逻辑运算符赋值运算符三元运算符运算符的优先级