网站大量收购独家精品文档,联系QQ:2885784924

C++神经网络实现.doc

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
#pragma hdrstop   #include stdio.h   #include iostream.h   const A=30.0;   const B=10.0;   const MAX=500;             //最大训练次数   const COEF=0.0035; //网络的学习效率   const BCOEF=0.001;//网络的阀值调整效率   const ERROR=0.002   ; // 网络训练中的允许误差   const ACCURACY=0.0005;//网络要求精度   double sample[41][4]={{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}};   double w[4][10][10],wc[4][10][10],b[4][10],bc[4][10];   double o[4][10],netin[4][10],d[4][10],differ;//单个样本的误差   double is; //全体样本均方差   int count,a;   void netout(int m, int n);//计算网络隐含层和输出层的输出   void calculd(int m,int n); //计算网络的反向传播误差   void calcalwc(int m,int n);//计算网络权值的调整量   void calcaulbc(int m,int n); //计算网络阀值的调整量   void changew(int m,int n); //调整网络权值   void changeb(int m,int n);//调整网络阀值   void clearwc(int m,int n);//清除网络权值变化量wc   void clearbc(int m,int n);//清除网络阀值变化量bc   void initialw(void);//初始化NN网络权值W   void initialb(void); //初始化NN网络阀值   void calculdiffer(void);//计算NN网络单个样本误差   void calculis(void);//计算NN网络全体样本误差   void trainNN(void);//训练NN网络   /*计算NN网络隐含层和输出层的输出 */   void netout(int m,int n)   {   int i,j,k;   //隐含层各节点的的输出   for (j=1,i=2;j=m;j++) //m为隐含层节点个数   {   netin[i][j]=0.0;   for(k=1;k=3;k++)//隐含层的每个节点均有三个输入变量   netin[i][j]=netin[i][j]+o[i-1][k]*w[i][k][j];   netin[i][j]=netin[i][j]-b[i][j];   o[i][j]=A/(1+exp(-netin[i][j]/B));   }   //输出层各节点的输出   for (j=1,i=3;j=n;j++)   {   netin[i][j]=0.0;   for (k=1;k=m;k++)   netin[i][j]=netin[i][j]+o[i-1]

文档评论(0)

中华书局 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档