第九章 人工神络习题解答.docVIP

  • 1
  • 0
  • 约9.4千字
  • 约 5页
  • 2016-10-13 发布于贵州
  • 举报
第九章 人工神络习题解答

第九章 人工神经网络 9.1答: (1)误差纠正学习;Dwkj = hek(n)xj(n);yk(n)为输入xk(n)时,神经元k在n时刻的实际输出,dk(n)表示应有的输出(可由训练样本给出);其中η为学习步长,这就是通常所说的误差纠正学习规则(或称delta学习规则)。 (2)Hebb学习;Dwkj(n) = F(yk(n),xj(n));当某一突触(连接)两端的神经元同步激活(同为激活或同为抑制)时,该连接的强度应为增强,反之应减弱;由于Δwkj与yk(n),xj(n)的相关成比例,有时称为相关学习规则。 (3)竞争(Competitive)学习; 若神经元j竞争获胜 若神经元j竞争失败;在竞争学习时,网络各输出单元互相竞争,最后达到只有一个最强者激活,最常见的一种情况是输出神经元之间有侧向抑制性连接,这样原来输出单元中如有某一单元较强,则它将获胜并抑制其它单元,最后只有此强者处于激活状态。 9.2答:略 9.3答:B-P算法的学习过程如下: (1)选择一组训练样例,每一个样例由输入信息和期望的输出结果两部分组成。 (2)从训练样例集中取一样例,把输入信息输入到网络中。 (3)分别计算经神经元处理后的各层节点的输出。 (4)计算网络的实际输出和期望输出的误差。 (5)从输出层反向计算到第一个隐层,并按照某种能使误差向减小方向发展的原则,调整网络中各神经元的连接权值。 (6)对训练样例集中的每一个样例重复(3)—(5)的步骤,直到对整个训练样例集的误差达到要求时为止。 文件头: #include stdio.h #include stdlib.h #include math.h #include UTLab.h //BP神经网络 #define n1 7 //输入节点数 #define n2 11 //中间层节点个数 #define n3 5 //输出节点数 #define m 400 //学习次数 void initialization(){} float bpnet(float tension, float inthick,float outthick, float meng, float tan,float ping,float tu) { float in1[n1]; float out1[n2]; float out2[n3]; float w1[n2][n1]; float w2[n3][n2]; float a1[n2]; float a2[n3]; float t[n3]; float df1[n2]; float df2[n3]; float s2[n3]; float s1[n2]; float w[n2][n3]; float z[n2][n3]; float a=0.5; int i=0; int j=0; int k=0; int n=0; in1[1]=tension; in1[2]=inthick; in1[3]=outthick; in1[4]=meng; in1[5]=tan; in1[6]=ping; in1[7]=tu; initialization(); for(n=1;n=m;k++){ for(i=1;i=n2;i++){ for(j=1;j=n1;j++){ a1[j]=a1[j]+w1[i][j]*in1[j]; out1[j]=sigmoid(a1[j]); } } for(i=1;i=n3;i++){ for(j=1;j=n2;j++){ a2[j]=a2[j]+w2[i][j] 文件尾: *in1[j]; out2[j]=a2[j]; } } for(i=1;i=n3;i++){ //计算敏感度,更新权值 df2[i]=1; s2[i]=-2*(t[i]-out2[i]); for(j=1;j=n2;j++){ w2[i][j]=w2[i][j]+a*out1[j]; } } for(i=1;i=n3;i++){ for(j=1;j=n2;j++){ w[j][i]=w2[i][j]; } } for(j=1;j=n2;j++){ df1[j]=(1-out1[j])*out1[j]; s1[j]=0; for(i=1;i=n3;i++){ z[j][i]=df1[j]*w[j][i]; s1[j]=s1[j]+z[j][

文档评论(0)

1亿VIP精品文档

相关文档