人工智能之神经网络代码22_第1页
人工智能之神经网络代码22_第2页
人工智能之神经网络代码22_第3页
人工智能之神经网络代码22_第4页
人工智能之神经网络代码22_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#pragmahdrstop#include#includeconstA=30.0;constB=10.0;constMAX=500;/最大训练次数constCOEF=0.0035;/网络的学习效率constBCOEF=0.001;/网络的阀值调整效率constERROR=0.002;/网络训练中的允许误差constACCURACY=0.0005;/网络要求精度doublesample414=0,0,0,0,5,1,4,19.020,5,3,3,14.150,5,5,2,14.360,5,3,3,14.150,5,3,2,15.390,5,3,2,15.390,5,5,1,19.680,5,1,2,21.060,5,3,3,14.150,5,5,4,12.680,5,5,2,14.360,5,1,3,19.610,5,3,4,13.650,5,5,5,12.430,5,1,4,19.020,5,1,4,19.020,5,3,5,13.390,5,5,4,12.680,5,1,3,19.610,5,3,2,15.390,1,3,1,11.110,1,5,2,6.521,1,1,3,10.190,1,3,4,6.043,1,5,5,5.242,1,5,3,5.724,1,1,4,9.766,1,3,5,5.870,1,5,4,5.406,1,1,3,10.190,1,1,5,9.545,1,3,4,6.043,1,5,3,5.724,1,1,2,11.250,1,3,1,11.110,1,3,3,6.380,1,5,2,6.521,1,1,1,16.000,1,3,2,7.219,1,5,3,5.724;doublew41010,wc41010,b410,bc410;doubleo410,netin410,d410,differ;/单个样本的误差doubleis;/全体样本均方差intcount,a;voidnetout(intm,intn);/计算网络隐含层和输出层的输出voidcalculd(intm,intn);/计算网络的反向传播误差voidcalcalwc(intm,intn);/计算网络权值的调整量voidcalcaulbc(intm,intn);/计算网络阀值的调整量voidchangew(intm,intn);/调整网络权值voidchangeb(intm,intn);/调整网络阀值voidclearwc(intm,intn);/清除网络权值变化量wcvoidclearbc(intm,intn);/清除网络阀值变化量bcvoidinitialw(void);/初始化NN网络权值Wvoidinitialb(void);/初始化NN网络阀值voidcalculdiffer(void);/计算NN网络单个样本误差voidcalculis(void);/计算NN网络全体样本误差voidtrainNN(void);/训练NN网络/*计算NN网络隐含层和输出层的输出*/voidnetout(intm,intn)inti,j,k;/隐含层各节点的的输出for(j=1,i=2;j=m;j+)/m为隐含层节点个数netinij=0.0;for(k=1;k=3;k+)/隐含层的每个节点均有三个输入变量netinij=netinij+oi-1k*wikj;netinij=netinij-bij;oij=A/(1+exp(-netinij/B);/输出层各节点的输出for(j=1,i=3;j=n;j+)netinij=0.0;for(k=1;k=m;k+)netinij=netinij+oi-1k*wikj;netinij=netinij-bij;oij=A/(1+exp(-netinij/B)/*计算NN网络的反向传播误差*/voidcalculd(intm,intn)inti,j,k;doublet;a=count-1;d31=(o31-samplea3)*(A/B)*exp(-netin31/B)/pow(1+exp(-netin31/B),2);/隐含层的误差for(j=1,i=2;j=m;j+)t=0.00;for(k=1;k=n;k+)t=t+wi+1jk*di+1k;dij=t*(A/B)*exp(-netinij/B)/pow(1+exp(-netinij/B),2);/*计算网络权值W的调整量*/voidcalculwc(intm,intn)inti,j,k;/输出层(第三层)与隐含层(第二层)之间的连接权值的调整for(i=1,k=3;i=m;i+)for(j=1;j=n;j+)wckij=-COEF*dkj*ok-1i+0.5*wckij;/printf(n);/隐含层与输入层之间的连接权值的调整for(i=1,k=2;i=m;i+)for(j=1;j=m;j+)wckij=-COEF*dkj*ok-1i+0.5*wckij;/printf(n);/*计算网络阀值的调整量*/voidcalculbc(intm,intn)intj;for(j=1;j=m;j+)bc2j=BCOEF*d2j;for(j=1;j=n;j+)bc3j=BCOEF*d3j;/*调整网络权值*/voidchangw(intm,intn)inti,j;for(i=1;i=3;i+)for(j=1;j=m;j+)w2ij=0.9*w2ij+wc2ij;/为了保证系统有较好的鲁棒性,计算权值时乘惯性系数0.9printf(w2%d%d=%fn,i,j,w2ij);for(i=1;i=m;i+)for(j=1;j=n;j+)w3ij=0.9*w3ij+wc3ij;printf(w3%d%d=%fn,i,j,w3ij);/*调整网络阀值*/voidchangb(intm,intn)intj;for(j=1;j=m;j+)b2j=b2j+bc2j;for(j=1;j=n;j+)b3j=b3j+bc3j;/*清除网络权值变化量wc*/voidclearwc(void)for(inti=0;i4;i+)for(intj=0;j10;j+)for(intk=0;k10;k+)wcijk=0.00;/*清除网络阀值变化量*/voidclearbc(void)for(inti=0;i4;i+)for(intj=0;j10;j+)bcij=0.00;/*初始化网络权值W*/voidinitialw(void)inti,j,k,x;doubleweight;for(i=0;i4;i+)for(j=0;j10;j+)for(k=0;k10;k+)randomize();x=100+random(400);weight=(double)x/5000.00;wijk=weight;/*初始化网络阀值*/voidinitialb(void)inti,j,x;doublefazhi;for(i=0;i4;i+)for(j=0;j10;j+)randomize();for(intk=0;k12;k+)x=100+random(400);fazhi=(double)x/50000.00;bij=fazhi;/*计算网络单个样本误差*/voidcalculdiffer(void)a=count-1;differ=0.5*(o31-samplea3)*(o31-samplea3);voidcalculis(void)inti;is=0.0;for(i=0;i=19;i+)o11=samplei0;o12=samplei1;o13=samplei2;netout(8,1);is=is+(o31-samplei3)*(o31-samplei3);is=is/20;/*训练网络*/voidtrainNN(void)longinttime;inti,x4;initialw();initialb();for(time=1;time=MAX;time+)count=0;while(countERROR)calculd(8,1);calculwc(8,1);calculbc(8,1);changw(8,1);changb(8,1);netout(8,1);calculdiffer();printf(Thisis%dtimestrainingNN.n,time);calculis();printf(is=%fn,is);if(isACCURACY)break;/-#pragmaargsusedintmain(intargc,char*argv)doubleresult;intm,test4;charch=y;coutPleasewaitforthetrainofNN:endl;trainNN();coutNow,thismodularnetworkcanworkforyou.endl;while(ch=y|ch=Y)cou

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论