课程名称:任课教师:论文题目:姓名:专业:学
号:
研究生课程期终论文
神经网络设计彭洪基于遗传-BP神经网络的手写数字识别
吴冬控制工程232201411533711摘要论文提出一种基于遗传-BP神经网络的手写数字识别方法,使用c#实现基本的遗传-BP算法以实现分类功能。遗传算法是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,BP神经网络是一种基于误差反向传播算法的多层前馈神经网络,通过对神经网络参数的有限次迭代,使用神经网络向特定函数逼近的特征,对网络进行训练。然后,用训练后的神经网络对用户输入的手写体数字进行分类和识别。论文首先简要介绍了模式分类以及神经网络的基本概念,并描述了遗传算法、BP算法的基本原理和思想;然后阐述了图像预处理方法和手写体数字识别的具体过程,以及程序运行的结果显示。关键词:BP算法、遗传算法、手写体数字、神经网络AbstractPaperproposesamethodofhandwrittennumeralrecognitionbasedonneuralnetworkgenetic-BP,usingc#toachievethebasicgeneticalgorithmtoachievetheclassification-BP.GeneticalgorithmsimulatesDarwiniangeneticselectionandthenaturaleliminationprocessofbiologicalevolutioncomputationmodel,BPneuralnetworkisbasedontheerrorback-propagationalgorithmbeforemultilevelfeed-forwardneuralnetworks,neuralnetworkparametersthroughafinitenumberofiterations,usingneuralnetworkfunctionapproximationtoaparticularfeature,thenetworktraining.Then,aftertrainingtheneuralnetworkforhandwrittendigitsenteredbytheusertoclassifyandidentify.Firstly,briefintroductiontothebasicconceptsofpatternclassificationandneuralnetworks,anddescribesthegeneticalgorithm,BPalgorithmofthebasicprinciplesandideas;thendescribesthespecificprocessofimagepreprocessingmethodsandhandwrittendigitrecognition,andtheresultsshowthattheprogramisrunning.Keywords:BPAlgorithm,geneticalgorithm,HandwrittenNumeral;NeuralNetwork,2第1章
1.1引言绪论
数字识别前景广阔,广泛应用于表格中数字的识别、汽车牌照的数字自动识别和成绩单的识别等项目涉及到交通、银行、教育和邮政等领域。实现数字的自动识别给人们提供了很大的方便。数字识别的算法较多,当前运用较好的主流算法以统计、神经网络和聚类分析的识别算法为主,如Bagging算法、Adaboost算法、误差反向传播算法、支持向量机算法、自组织映射以及径向基函数等等。人工神经网络的基本特征为非线性映射、学习分类和实时优化,因此它为模式识别、非线性分类等研究开辟了新的途径。BP神经网络是一种典型的人工神经网络,有着广泛的应用。本文利用BP神经网络进行手写数字识别系统的研究。1.2遗传算法概述遗传算法是模拟生物界的遗传和进化过程而建立起来的一种高度并行的全局性概率搜索算法,体现着“优胜劣汰、适者生存”的竞争机制。由于遗传算法是由进化论和遗传学机理产生的直接搜索优化方法,所以在这个算法中要用到各种进化和遗传学的概念。这些概念介绍如下:1.编码(Coding):DNA中遗传信息在一个长链上按一定的模式排列,这一操作就是遗传编码。遗传编码可以看作从表现型到遗传型的映射。2.染色体(Chromosome):遗传物质的主要载体,由多个遗传因子——基因组成。3.个体(Individual):指染色体带有特征的实体,遗传算法所处理的基本结构。4.种群(Population):每代所产生的染色体总数称为种群,一个种群包含了该问题在这一代的一些解的集合。5.种群大小(PopulationSize):在种群中个体的数量称为种群的大小。6.基因(Gene):基因是染色体中的元素,基因用于表示个体的特征。7.基因位置(GenePosition):一个基因在染色体中的位置称为基因位置。8.基因特征值(GeneFeature):在用染色体表示整数时,基因的特征值与二进制数的权一致。9.适应度(Fitness):表示某一个体对于环境的适应程度,或者在环境压力下的生存能力。31.3BP神经网络概述BP(BackPropagation)网络是1986年由Rinehart和McClelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hide(outputlayer)。layer)和输出层第2章设计分类器
2.1问题陈述本程序基于遗传-BP神经网络完成了对用户使用鼠标输入数字的识别,程序中已经存储的数字是Graffiti字体的数字0~9,这种字体的特点是每个字由一个连续笔划构成,适合用一个连贯的鼠标数字表示。2.2程序概述本程序针对鼠标数字的存储、识别和学习功能,需要实现以下要素:一、鼠标数字的表示
由于每个鼠标数字仅由一个连续笔划构成,因此可将这一笔划分解为一系列连续的向量。不同的数字对应不同的向量组合。4为计算方便,所有向量可以归一化为单位长度向量。二、定义网络输入输出
使用遗传-BP神经网络,需要定义一组一维的输入向量与输出向量。将一个数字的笔划向量依次连接,x坐标、y坐标依次出现,即可构成该数字的输入向量。对于可以识别N种数字的神经网络,可以使用长度为N,第M位为1、其余各位均为0的向量作为第M种数字的标准输出向量。三、训练神经网络
对于程序中已存储的数字,需要训练神经网络,使得网络对每个输入向量都能够产生误差在允许范围之内的输出向量。该算法的主要思想是采用遗传算法对神经网络的N组初始化权值进行快速优化,定出一个较好的解空间,并将此空间作为BP算法的N组初始化权值,然后利用BP神经网络局部搜索能力强的优点,进行精确寻优,找出最优解。四、鼠标数字的记录
用户使用鼠标,在程序界面指定区域按下左键画出一个数字,程序定时记录鼠标坐标,构成一个点集。使用一定的算法对点集进行处理,取出比笔画的向量数目多一个的代表点,相邻两个代表点求差得到的向量经归一化即可得到笔画的向量组合。取代表点的方法采用了光滑化算法,即对分布不均的原始记录点找到其中跨度最小的两个点,用它们的中点取代它们。重复执行,直到点的数目符合向量数目要求。五、鼠标数字的识别
用户的输入不可能与定义的标准输入完全一致。将待测试的数字对应的输入向量输入训练过的神经网络后,网络的输出与定义的第M种数字的标准输出向量越接近,说明输入数字越接近第M种数字的标准输入。评判“接近”的简单标准是找出输出向量中最大(最接近1)的元素,认为输入最有可能是该位为1的输出对应的数字。52.2开发工具选择本程序使用VisualStudio2010(C#语言)开发,基于.NetFramework3.0运行,画图使用VISIO2003。2.2.1主要算法思想
该算法的主要思想是采用遗传算法对神经网络的N组初始化权值进行快速优化,定出一个较好的解空间,并将此空间作为BP算法的N组初始化权值,然后利用BP神经网络局部搜索能力强的优点,进行精确寻优,找出最优解。得到的神经网络连接权值,再用BP算法学习,直到误差小于指定的最小值,算法结束。第3章测试成果以及结果分析
3.1系统运行界面展示1、运行初始界面如下:开始训练遗传-BP网络:6随便写一个数字,测试结果:73.1检测性能的评价标准遗传-BP神经网络手写体识别算法的好坏主要取决于如下指标,即正确率。正确率是指利用分类器进行识别,识别正确次数与所有训练次数的比重。3.2实验测试结果的分析随机输入100个数字,对结果进行测试。由于截图占用太大空间,用表概括为:表3-1测试记录总条数测试记录正确条数正确检测率平均测试时间检测结果统计表1009090%3秒从检测结果来看,虽然用于训练的数据集并不是很多,但误差率和漏报率并不是很高,这也体现了BP算法的优越性,相信如果用更多的数据进行训练会使得正确的检测率提高而错误的检测率降低,从而使网络趋于收敛。第4章结束语
手写数字识别就是利用计算机对输入的手写数字进行分类识别。手写体数字识别研究的最终目标是设计出速度快、精度高的识别算法并运用到实际工作中。为了设计出高精度的算法,我从零基础学习BP算法,在学习BP算法的过程中,我了解了偏导,梯度的知识,并也产生了一些新的思考,如果k个输入,1个输出,相当于将k维空间,投射到一个1维空间,是否可以提供足够的准确性,如果是k个输入,j个输出,j比k大,是否是一个升维的过程,是否有价值?并通过实验发现BP算法有一个很大的缺点,就是容易落入局部最优解,为了改进这个算法,使用了遗传算法,通过染色体的选择,基因的交叉、变异来跳出局部最优解,实现最大程度的最优化。因为学过java和C语言,本设计使用C#实现,存在一些缺陷,以后会努力学习改进。8参考文献[1]MartinT.Hagan.HowardB.Demuth.MarkH.Beale.《神经网络设计》,机械工业出版社,2002[2]李望晨:“BP神经网络改进及其在手写数字识别中的应用”,哈尔滨工业大学硕士学位论文,2006年6月。[3]月。[4]刘长安:《人工神经网络的研究方法及应用》,电子工业出版社出版,2004年7月。[5]蒋宗礼.人工神经网络导论[M].高等教育出版社,2001:15-90.[6]PhilipD.Wasserman,NeuralComputing:TheoryandPractice,VanNostrandReinhold,19:1-56.瞿海金:“手写体数字识别方法的研究与实现”,南京理工大学硕士学位论文,2005年69