BP算法实现字母识别_第1页
BP算法实现字母识别_第2页
BP算法实现字母识别_第3页
BP算法实现字母识别_第4页
BP算法实现字母识别_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、基于BP网络多层感知机的字母识别摘要:本次实验主要使用了BP神经网络方法对给定的英文字母A-Z进行识别,并对应输出0-25表示识别成功。考虑的干扰因素的存在,在实验中分别测试了隐藏16%和33%样本数据的效果,使得网络具有一定的容错能力。本次实验程序的编写主要使用了C语言。关键词:BP神经网络;模式识别;C语言1、 实验目的1. 了解BP神经网络的原理与实现方法。 2. 了解BP神经网络各种优化算法的特点。3. 通过实验分析BP网络的识别和容错性能。 4. 熟悉C语言编程的基本方法。2、 实验工具与方法1. BP网络简介20世纪80年代中期,学者Rumelhart、McCl

2、elland和他们的同事提出了多层前馈网络MFNN(MutltilayerFeedforward Neural Networks)的反向传播学习算法,简称BP网络(Back Propagation Network)学习算法。BP网络是对非线性可微分函数进行权值训练的多层前向网络。在人工神经网络的实际应用中,80%90%的模型都采用BP网络或其变化形式。BP网络主要作用于以下几个方面:(1)函数逼近:用输入矢量和相应的输出矢量训练一个网络来逼近一个函数。(2)模式识别:用一个特定的输出矢量将它与输入矢量联系起来。(3)分类:把输入矢量以所定义的合适的方式进

3、行分类。(4)数据压缩:减少输出矢量的维数以便于数据传输或存储。2.BP算法实现具体步骤BP神经网络是一种多层前馈神经网络,该网络的主要特点是信号前向传递,误差反向传播。在前向传递中,输入信号从输入层经隐含层逐层处理,直至输出层。每一层的神经元状态只影响下一层神经元状态。如果输出层得不到期望输出,则转入反向传播,根据预测误差调整网络权值和阈值,从而使BP神经网络预测输出不断逼近期望输出。BP神经网络的拓扑结构如图1所示。 P1w1w2T1P2。 。 。 。 。 Tm Pn 输入层 隐藏层 输出层 图1 BP神经网络拓扑结构图图1中P1,P2,Pn是BP神经网络的输入值,T1,T2,Tm是BP神

4、经的预测值,w1和w2为BP神经网络权值。从图1可以看出,BP神经网络可以看成一个非线性函数,网络输入值和预测值分别为该函数的自变量和因变量。当输入节点数为n,输出节点数为m时,BP神经网络就表达了从n个自变量到m个因变量的函数映射关系。BP神经网络预测前首先要训练网络,通过训练使网络具有联想记忆和预测能力。BP神经网络的训练过程包括以下几个步骤。 步骤1:网络初始化。根据系统输入输出序列(p,t)确定网络输入层节点数n,隐含层节点数x,输出层节点数m。初始化输入层、隐含层和输出层神经元之间的连接权值w、偏值b和学习速度a,还需要选择合适的激励函数。一般而言,初试权值和偏值是随机产生

5、的较小实数。w步骤2:一轮学习结束时,初始化各层前向输出值和各层敏感性,主要完成置0工作。步骤3:前向传播计算。根据公式,a0=p0,an=fn(wn*an-1+bn)计算网络最终输出值an,更新实际误差e。步骤4:敏感性计算。根据公式,首先逆推出sn,然后依次反向计算出sn-1-s1。步骤5:权值、偏值更新。根据步骤4所得各层敏感性更新权值w和对应偏值b。步骤6:一轮迭代结束后,验证平均误差:e是否满足误差要求E,若满足要求,则训练学习完成;若不满足误差要求,就返回步骤2进行下一轮迭代,如此反复直到满足误差要求或者达到最大迭代次数,最终训练学习完成。3、 实验内容1. 网络的设计与实验前的预

6、处理工作网络的设计:网络的选择如图2所示:图2 网络的结构如图2所示,本次实验所用的网络有一个输入层,一个隐含层,一个输出层,网络结构为30-30-1。p为待输入的学习(识别)向量,维数为30*1,w1为第一层权值,维数30*30,w2为第二层权值,维数30*1,b1为第一层偏值,维数30*1,b2为第二层偏值,维数1*1,a1为第一层输出,维数30*1,a2为网络最后的输出。激励函数分为两种,第一种是S型函数,另一种是y=x直线函数。基本思想:利用反向传播算法实现对A-Z图像的识别,使得输入图像A-Z,对应输出0-25。再次基础上讨论下BP的性能和容错能力。预处理工作:字符识别是模式识别领域

7、的一项传统课题,这是因为字符识别不是一个孤立的问题,而是模式识别领域中大多数课题都会遇到的基本问题,并且在不同的课题中,由于具体的条件不同,解决的方法也不尽相同,因而字符识别的研究仍具有理论和实践意义。这里讨论的是用BP神经网络对26个英文字母的识别。在对字母进行识别之前,首先必须将字母进行预处理,即将待识别的26个字母中的每一个字母都通过的方格形式进行数字化处理,其有数据的位置设为1,其他位置设为-1。如图3给出了字母A、B和C的数字化过程,然后用一个1×30的向量表示。例如图3中字母A的数字化处理结果所得对应的向量为:P030=-1,-1,1,1,1,1,-1,1,-1,1,-1

8、,-1,1,-1,-1,1,-1,-1,-1,1,-1,1,-1,-1,-1,-1,1,1,1,1;其他字母对应的向量也做类似的处理。最终的标准输入矩阵P2630,包含26个字母向量。-1-11-1-1-11-11-11-1-1-11111111-1-1-111-1-1-11-1111-11-1-1-111-1-1-1-11-1-1-1-11-1-1-11-1111-11111-11-1-1-111111-11-1-1-111-1-1-111111-1 A B C图3 字母数字化样式2. 初始化权值、偏值和学习速度随机的设定w13030、w230、b130和b2的初始值,本次实验选取的初始值为

9、0-0.5之间的随机实数。因为C语言的stdlib库中提供有rand()方法,所以可以轻松地实现随机的赋值。对于学习速度a可以先设置为:a=0.1,a的值可以在后面的实验过程中再修改。3. 编程实现识别功能由于代码在后面将具体给出,所以在这里只说明实现的步骤与大概思想。程序主要包含了两大部分,第一部分实现网络的迭代学习,第二部分开始正式的识别。第一部分又可以分为三个主要分支,即前向传播、敏感性计算(反向传播)和权值偏值的更新。第一步,在前面工作完成的基础上,首先需要计算第一层网络的输出a1,然后在计算出最后输出层的a2,这就是网络的前向传播过程。因为误差e=t-a2,所以误差也可以计算出来。

10、第二步,在计算敏感性之前需要用到传输函数的导数信息,需要提前计算出来。然后根据给出的公式可以计算出s2,再逆推到第一层敏感性s1。传输函数导数: 第三步,权值和偏值的更新。这里开始用到学习速度a,实验中可以尝试修改a的值,观察实验效果。具体的权值偏值计算可以根据下面的公式。最后学习结束的条件是,某次迭代后误差e满足了实验的要求或者达到了最大的迭代次数。学习后预期的效果,当使用训练样本给BP网络识别时,它能够识别出字母A-Z,输出对应的数字0-25;当使用隐藏部分数据的样本给它识别时,如果它能够识别多数A-Z破损数据,说明该BP网络的抗干扰、容错能力较强,反之如果大部分无法识别,则说明本网络容错

11、能力较差。4、 实验结果1. 学习速度a=0.1,误差e=0.01,迭代次数m=1300,学习结束效果如图4所示。因为程序是上下纵向显示,截图一个屏不够,所以只好拼在一起分段显示。 图4 实验1效果2. 学习速度a=0.01,误差e=0.01,迭代次数m=1300,实验结果如图5所示。图5 实验2效果3. 学习速度a=0.01,误差e=0.0001,迭代次数m=1300,实验结果如图6所示图6 实验3效果4. 学习速度a=0.018,误差e=0.0001,迭代次数m=5200,实验结果如图7所示。图7 实验4效果通过观察四次测试的效果图可以清楚的发现,学习速度,误差标准和迭代次数对识别的效果都

12、有影响。显然本次实验最合适的学习速度a=0.018,可以发现当学习速度不变时,误差选取的越小,迭代次数越大,则识别的效果越好。5. 为了简单的验证一下BP网络的容错能力,下面进行实验5,在原始数据p基础上隐藏最后一行(隐藏16%)进行识别,具体参数为:a=0.018,e=0.0001,m=5200,实验结构如图8所示。图8 实验5结果由图8可以发现,大部分破碎的数据无法识别,小部分字母(7个左右)可以被识别。因此可以说明本次实验构造的BP网络的容错性较差。5、 实验的分析本次实验主要实现基于BP网络的字母识别功能,通过实验我了解了BP算法的原理,学会了搭建一个简单的BP网络。实验中通过调整学习

13、速度,迭代次数,误差大小,实现了对BP网络性能的优化。通过本次实验我也体会到了BP算法的局限性,比如:算法的收敛速度慢,可能存在多个局部极小值点,以及网络结构的不确定性对网络的影响。6、 源代码#include<stdio.h>#include<math.h>#include<stdlib.h>void main()float p2630=-1,-1,1,1,1,1,-1,1,-1,1,-1,-1,1,-1,-1,1,-1,-1,-1,1,-1,1,-1,-1,-1,-1,1,1,1,1 /a,1,1,1,1,1,1,1,-1,1,-1,-1,1,1,-1,

14、1,-1,-1,1,1,-1,1,-1,-1,1,-1,1,-1,1,1,-1 /b ,-1,1,1,1,1,-1,1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,1,-1,1,-1,-1,1,-1 /c,1,1,1,1,1,1,1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,1,-1,1,1,1,1,-1 /d,1,1,1,1,1,1,1,-1,1,-1,-1,1,1,-1,1,-1,-1,1,1,-1,1,-1,-1,1,1,-1,1,-1,-1,1 /e,1,1,1,1,1,1,1,-1,1,-1,-

15、1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,-1,-1 /f,-1,1,1,1,1,-1,1,-1,-1,-1,-1,1,1,-1,-1,1,-1,1,1,-1,-1,1,1,-1,-1,1,-1,1,1,1 /g,1,1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,1,1,1,1,1,1 /h,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,1,1,1,1,1,1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1 /i,-1,-1

16、,-1,-1,1,-1,1,-1,-1,-1,-1,1,1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 /j,1,1,1,1,1,1,-1,-1,1,1,-1,-1,-1,1,-1,-1,1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1 /k,1,1,1,1,1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1 /l,1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,-1

17、,-1,-1,1,1,1,1,1,-1 /m,1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,1,1,1,1,-1 /n,-1,1,1,1,1,-1,1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,1,-1,1,1,1,1,-1 /o,1,1,1,1,1,1,1,-1,1,-1,-1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1 /p,-1,1,1,1,1,-1,1,-1,-1,-1,-1,1,1,-1,-1,

18、1,-1,1,1,-1,-1,-1,1,1,-1,1,1,1,1,1 /q,1,1,1,1,1,1,1,-1,1,1,-1,-1,1,-1,1,-1,1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1 /r,-1,1,1,-1,-1,1,1,-1,-1,1,-1,1,1,-1,-1,1,-1,1,1,-1,-1,1,-1,1,-1,-1,-1,-1,1,-1 /s,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1 /t,1,1,1,1,1,-1,-1,-1,-

19、1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,1,1,-1 /u,1,1,1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,1,1,1,1,-1,-1 /v,1,1,1,1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,1,1,1,1,-1 /w,1,-1,-1,-1,1,-1,-1,1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,1,-1,-1,1,-1,-1,-1,1,

20、-1 /x,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,1,1,1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1 /y,1,-1,-1,-1,1,1,1,-1,-1,1,-1,1,1,-1,1,-1,-1,1,1,1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1; /z/原始A-Z数据float p_test_332630=-1,-1,1,1,-1,-1,-1,1,-1,1,-1,-1,1,-1,-1,1,-1,-1,-1,1,-1,1,-1,-1,-1,-1,1,1,-1,-1 /a,1,1,1,1,-1,-1,1,-

21、1,1,-1,-1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,-1,-1,-1,1,-1,1,-1,-1 /b,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1 /c,1,1,1,1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,1,1,-1,-1 /d,1,1,1,1,-1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,-1,-1,1,-1,

22、1,-1,-1,-1 /e,1,1,1,1,-1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,-1,-1 /f,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,1,-1,-1,1,-1,-1,-1,1,-1,1,-1,-1 /g,1,1,1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,1,1,1,1,-1,-1 /h,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,1,

23、1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 /i,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 /j,1,1,1,1,-1,-1,-1,-1,1,1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 /k,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

24、-1,-1 /l,1,1,1,1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,1,1,1,-1,-1 /m,1,1,1,1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,1,1,1,-1,-1 /n,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,1,1,-1,-1 /o,1,1,1,1,-1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,-1,

25、-1,1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1 /p,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,1,1,-1,-1 /q,1,1,1,1,-1,-1,1,-1,1,1,-1,-1,1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 /r,-1,1,1,-1,-1,-1,1,-1,-1,1,-1,-1,1,-1,-1,1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1 /s,1,-1,-1,-1

26、,-1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1 /t,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,1,-1,-1 /u,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,1,-1,-1 /v,1,1,1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-

27、1,1,-1,-1,1,1,1,1,-1,-1 /w,1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,1,-1,-1,1,-1,-1,-1,-1,-1 /x,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1 /y,1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,1,-1,1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1; /z/隐去33%的A-Z数据fl

28、oat p_test_162630=-1,-1,1,1,1,-1,-1,1,-1,1,-1,-1,1,-1,-1,1,-1,-1,-1,1,-1,1,-1,-1,-1,-1,1,1,1,-1/a,1,1,1,1,1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,-1,-1,-1,1,-1,1,1,-1 /b,-1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1 /c,1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,-

29、1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,1,1,1,-1 /d,1,1,1,1,1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,-1,-1 /e,1,1,1,1,1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,-1,-1 /f,-1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,1,-1,-1,1,1,-1,-1,1,-1,1,1,-1 /g,1,1,1,1,1,-1,-1,-

30、1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,1,1,1,1,1,-1 /h,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 /i,-1,-1,-1,-1,1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 /j,1,1,1,1,1,-1,-1,-1,1,1,-1,-1,-1,1,-1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-

31、1,-1,-1,-1,-1 /k,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 /l,1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,1,1,1,1,-1 /m,1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,1,1,1,1,-1 /n,-1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,1,-1

32、,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,1,1,1,-1 /o,1,1,1,1,1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1 /p,-1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,1,-1,-1,-1,1,-1,-1,1,1,1,1,-1 /q,1,1,1,1,1,-1,1,-1,1,1,-1,-1,1,-1,1,-1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 /r,-1,1,1,-1,-

33、1,-1,1,-1,-1,1,-1,-1,1,-1,-1,1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1 /s,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1 /t,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,1,1,-1 /u,1,1,1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

34、,1,-1,1,1,1,1,-1,-1 /v,1,1,1,1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,1,1,1,1,-1 /w,1,-1,-1,-1,1,-1,-1,1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,1,-1,-1,1,-1,-1,-1,1,-1 /x,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1 /y,1,-1,-1,-1,1,-1,1,-1,-1,1,-

35、1,-1,1,-1,1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1; /z/标准输出0-25数据int i,j,k,m,n;for(i=0;i<26;i+) /输出原数据for(j=0;j<6;j+) for(k=0;k<5;k+) if(pij+6*k=1) printf("*"); else printf(" "); printf("n"); printf("nn");float w13030=0; /网络第一层权值矩阵w1float w230=0;

36、/网络第二层权值矩阵w2float a130=0; /网络第一层输出a1float a2=0; /网络最终输出a2float b130=0; /网络第一层偏值b1float b2=0; /网络第二层偏值b2float s130=0; /网络第一层敏感性s1float s2=0; /网络第二层敏感性s2float e_true=1; /一次迭代真实误差e_truefloat a=0; /学习速度afloat e=0; /一轮迭代的平均误差efloat temp3030=0; /第一层输出导数的对角矩阵tempint num=0; /用于接收一个10以内随机正整数a=0.018; for(i=0;i<30;i+) /给权值和偏值赋初值(w1,w2,b1,b2) for(j=0;j<30;j+) num=rand()%10; w1ij=num/5.0; num=rand()%10; w2i=num/5.0; b1i=num/5.0;b2=0.1;for(m=0;m<5200;m+) /m是迭代次数 for(i=0;i<30;i+) /一轮结束初始化a1,a2,s1,s2 a1i=0; s1i=0;a2=0;s2=0;if(

温馨提示

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

评论

0/150

提交评论