基于神经网络的数字识别系统-Read.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于神经网络的数字识别系统-Read.doc

基于神经网络的数字识别系统 一、实验目的 通过对本系统的学习开发,对计算机人工智能和神经网络有一定的认识,了解人工智能和网络神经学习的基本方法和思路。构建BP网络实例,熟悉前馈网络的原理及结构。 实验原理 反向传播网络(Back propagation Network,简称BP网络)是对非线形可微分函数进行权值训练的多层前向网络。BP网络可以看作是对多层感知器网络的扩展,即信息的正向传播及误差数据的反向传递。BP网络主要可以应用于模式分类、函数逼近以及数据压缩等等。这里使用了一种较为简单的BP网络模型,并将其应用于一个实例:数字0到9的识别。 反向传播(BP)算法是一种计算单个权值变化引起网络性能变化值的较为简单的方法。BP算法过程从输出节点开始,反向地向第一隐含层(即最接近输入层的隐含层)传播由总误差引起的权值修正。BP网络不仅含有输入节点和输出节点,而且含有一层或多层隐(层)节点。输入信号先向前传递到隐节点,经过作用后,再?把隐节点的输出信息传递到输出节点,最后给出输出结果。 网络拓扑结构 三、实验条件 执行环境 在装有Visual C++ 6.0运行库的Windows XP系统上运行。 编译环境 Microsoft Visual C++ 6.0 。 运行方式 该程序的可执行文件名为:LwNumRec.exe 双击运行进入操作界面: 然后进入具体的操作: 训练网格 首先,打开图像(256色): 其次输入归一化宽度与高度: 再次对Bp网络参数进行设置:  最后进行训练,并输出训练结果: 进行识别 首先,打开图像(256色); 其次输入归一化宽度与高度; 再次,进行归一化处理,点击“一次性处理”(相当于手动逐步执行步骤1~8); 处理后结果: 最后,点击“识”或者使用菜单找到相应项来进行识别。识别的结果为: 四、实验内容 通过BP网络各项参数的不同设置,观察BP算法的学习效果。 观察比较BP网络拓扑结构及其它各项参数变化对于训练结果的影响。 观察并分析不同训练数据对相同拓扑结构的BP网络建模的影响. 在这里我们可以通过对话框对BP网络各项参数进行设置,从而观察BP算法的学习效果,以及各项参数对训练结果的影响。对于参数修改的简要过程如下: 通过上面的对话框我们可以方便的对隐层节点数、容许误差、训练步长进行修改。从而可以比较相应的训练效果。 经过上面的测试我们可以得到: 隐层的神经元数目的选择,是BP算法设计的关键。隐层的神经元数目过多,那即将造成训练时间的加长,也将降低抗噪声能力。编程证明,当隐层神经元数目超过25的时候,网络的训练时间将无法忍受,同时抗噪声能力大大降低;当神经元数目低于7的时候,系统误差无法收敛到满意的值,又造成识别率过低。经过多次的比较分析,我最终选定了隐层为9个神经元。事实证明(从后面的训练时间和识别率可以看出),这是个不错的选择。 允许误差是系统进行训练的目标。当系统的输出误差小于这个允许的误差的时候即停止训练。误差选择过大,将造成系统识别率过低;误差选择太小,会大大延长训练时间,是一种浪费。这里,也要通过多次的对比分析来得到最佳的允许误差。我最终确定下来的允许误差在0.02~0.2之间。 学习步长的选择也是BP网络设计的关键所在。学习步长过长,则有可能造成算法无法收敛;步长过短,一来加大了训练时间,二来则很容易陷入所谓的局部极小值。这里我初步把学习步长设定在0.02~0.3之间。 五、实验流程 本程序实现了识别256色位图中的数字。在整个算法流程中,可以分解成三大块,就是图像预处理、特征提取和数字识别三部分。 其中,图像预处理模块对原始图像进行一系列的变换,特征提取把经过预处理后的图像中数字字符的特征提取出来,然后把提取到的数字字符特征提交给数字识别模块。 最后数字识别模块根据神经网络BP算法进行训练及识别并给出结果。 其算法流程如下: 六、实验结论 在BP算法模型中,首先是信息的正向传播。这一点和神经网络是一样的。BP算法的成功之处,就是它提供了一种快速计算各层误差的实现方法,以用来调整各层的权值等信息。 BP网络的思想来设计实现中最关键的隐层的神经元个数。一般来说,在做类似于函数逼近的课题时,隐层的神经元越多,则逼近就越精确。但对于当前的这个模式分类的题目,隐层神经元的数目必须要适当的选取,即不能过多,也不能太少。如果隐层的神经元过多,一来会大大的加大训练时间,二来,虽然神经元的增多可以更加精确的描述分类判别的空间的界限,但同时,也造成网络的容错能力下降。这对于我们当前的这个0~9数字识别是极为不利的。当然,神经元的数目过少的时候,又无法满足分类的要求。 允许误差是系统进行训练的目标。当系统的输出误差小于这个允许的误差的时候即停止训练。误差选择过大,将造成系统识别率过低;误差选择太小,会大大延长

您可能关注的文档

文档评论(0)

18273502 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档