1、1目 录第一章数字识别概述 .31.1 手写数字识别的一般方法及比较 .31.2 神经网络概念 .41.3 神经网络集中算法与比较 .41.4 神经网络在数字识别中的应用 .51.5 本论文主要研究内容 .6第二章 神经网络理论及算法 .72.1 人工神经网络基本原理 .72.1.1 神经细胞以及人工神经元组成 .72.1.2 人工神经元模型 .72.2 神经网络的学习规则 .72.2.1 神经网络的联接形式 .72.2.2 神经网络的学习和训练 .82.2.3 神经网络的学习规则 .92.3 BP 神经网络概述 .92.3.1 基于 BP 算法的多层前馈网络模型 .92.3.2 BP 网络学
2、习算法 .10第三章 图像预处理设计与实现 .123.1 数字识别系统流程 .123.2 开 发 环 境 介 绍 .13第四章 神经网络识别设计与实现 .134.1 BP 算 法 在 数 字 识 别 中 在 应 用 .134.2 BP 神经网络各层神经元数目的确定 .144.3 BMP 格式图片简介 .164.4 神经网络数字识别系统主要源代码 .164.4 识别系统运行的结果 .194.5 系统设计中遇到的问题 .22心得体会 .22参考文献 .24致谢 .242手写数字识别的研究与应用摘 要:手写体数字识别模式识别领域中最成功的应用之一。由于识别类型较少,在实际生活中有深远的应用需求,一直
3、得到广泛的重视。近年来随着计算机技术和数字图像处理技术的飞速发展,数字识别在电子商务、机器自动输入等场合已经获得成功的实际应用。人工神经网络是模式识别中一个重要的分支之一。本论文主要才用 VC+编写并实现了一个基于 BP 神经网络的手写数字识别系统。系统分为图像处理和数字识别两个部分。系统首先需要进行训练之后再把所要识别的图片输入系统经过图片预处理之后进行数字识别。关键词:图像处理;神经网络;数字识别 第一章数字识别概述模式识别是六十年代初迅速发展起来的一门学科。由于它研究的是如何用机器来实现人及某些动物对事物的学习、识别和判断能力,因而受到了很多科技领域研究人员的注意,成为人工智能研究的一个
4、重要方面。字符识别是模式识别的一个传统研究领域而在字符识别中数字识别也成为现在研究的一个热点。数字识别分为印刷数字识别和手写数字识别。在手写数字和印刷体数字识别在两个领域手写数字识别的难度比较大。手写数字识别难度主要在于:一、数字相似性大,但字形相差不大;二、数字虽只有十种,但笔划简单,同一个数字写法差别巨大;三、手写数字存在大量断笔和毛刺,对识别造成影响。手写数字识别过程主要分为预处理、特征提取和识别三个阶段。手写体数字识别可以用在很多方面,如邮政编码自动识别系统银行支票自动处理系统等一般情况。但是涉及到银行、支票等业务的时候对于数字要求也变的很高,因此对于系统的正确率和准确率的要求相应的也
5、会变得很高。1.1 手写数字识别的一般方法及比较由于手写数字有很大的随意性,笔划简单,同一个数字写法差别巨大,所以近年来没有一种简单的数字识别系统在数字识别方面有很高的数字识别率。现在很多的研究者已经把知识运用到预处理和特征提取这两方面从而提高数字识别系统的识别率。近年来,人工智能中专家系统方法、人工神经网络方法已应用于手写数字识别。在手写数字识别的研究中,神经网络技术和多种方法的综合是值得重视的方向。针对模式特征的不同选择,可将模式识别方法大致分为 3 大类这 3 种识别方法均可实现手写数字识别,但它们特点不同,必须根据条件进行选择。(1)神经网络方法3就是使用人工神经网络方法实现模式识别。
6、可处理某些环境信息十分复杂,背景知识不清楚,推理规则不明确的问题,允许样品有较大的缺损、畸变。神经网络方法的缺点是其模型在不断丰富完善中,目前能识别的模式类不够多,神经网络方法允许样品有较大的缺损和畸变,其运行速度快,自适应性能好,具有较高的分辨率(2)统计模式法这是以同类模式具有相同属性为基础的识别方法。用来描述事物属性的参量叫做待征,它可以通过模式的多个样本的测量值统计分析后按一定准则来提取。例如:在手写数字识别系统中,我们可以把每个数字的图形分为若干个小方块(图),然后统计每一小方块中的黑像素构成一个多维特征矢量,作为该数字的特征。必须注意的是:在选择特征时,用于各类模式的特征应该把同类
7、模式的各个样本聚集在一起,而使不同类模式的样本尽量分开,以保证识别系统能具有足够高的识别率。(3)模糊模式方法就是在模式识别过程中引入了模糊集的概念,由于隶属度函数作为样品与模板相似程度的量度,故能反映整体的、主要的特性,模糊模式有相当不匀称的抗干扰与畸变,从而允许样品有相当程度的干扰与畸变,但准确合理的隶属度函数往往难以建立。目前有学者在研究,并将其引入神经网络方法形成模糊神经网络识别系统。1.3 神经网络集中算法与比较1、单层感知器算法当它用于两类模式的分类时,若模式是线性可分的,则算法一定收敛,否则不收敛;故连最常用异或逻辑运算都无法实现。它对权值向量的学习算法是基于迭代的思想,通常是采
8、用纠错学习规则的学习算法。2、梯度(LMS)算法自适应过程是一个不断逼近目标的过程。它所遵循的途径以数学模型表示,称为自适应算法。通常采用基于梯度的算法其中最小均方误差算法(即LMS算法)尤为常用。自适应算法可以用硬件(处理电路)或软件(程序控制)两种办法实现。前者依据算法的数学模型设计电路,后者则将算法的数学模型编制成程序并用计算机实现。3、BP算法多层感知器(MLP)中的每个神经元的激励函数都是可微Sigmoid函数。但在多层网络中只能改变最后权系数,不能用于多层神经网络的学习,故提出BP算法。BP算法实质是求取误差函数的最小值问题。采用非线性规划中的最速下降方法,按误差函数的负梯度方向修
9、改权系数。感知器学习规则和LMS算法是设计用来训练单层的类似感知器的网络的,只能解决线性可分的分类问题。BP网络为多层网络,克服了以上弊端。BP算法与LMS算法都是以最小均方误差为准则,BP算法使用的是在LMS算法中用到的相同的近似最速下降法。所以本文才用BP神经网络方法来实现手写数字识别系统的设计41.4 神经网络在数字识别中的应用神经网络模型可以模拟生物神经元对信息的收集、加工、处理、存储和搜索等过程,因此在模式识别中得到了广泛的应用。神经网络模型的主要有以下几个特点:(1)神经网络具有分布式存储信息的特点,具有高速寻找优化解的能力,能够发挥计算机的高速运算能力,可以很快的找到优秀解。在神
10、经网络中,知识不是存储在特定的存储单元中,而是分布在整个系统之中,要存储多个知识就需要很多链接,并且在神经网络中要获得存储知识则采用“联想的方法”。(2) 神经网络对信息处理及推理的并行特点。神经网络中每个神经元都能独立的接受和处理信息并输出结果,这体现了神经网络对信息处理的并行性特点。神经网络对于一个特定的输入模式,通过前向计算产生一个输出模式,各个输出节点代表的逻辑概念被同时计算出来。在输出模式中,通过输出节点的比较和本身信号的强弱而得到特定的解,这体现了神经网络的推理并行性的特点。(3) 神经网络具有自主学习能力,通过对过去历史数据的学习,训练出一个具有归纳全部数据的的特定的神经网络,自
11、学能力对于预测有很特别的意义。(4)神经网络具有容错性,它可以从不完善的数据和图形进行学习和做出决定。由于知识存在整个系统中,而不是一个存储单元中,预定的比例节点不参与运算,对整个系统的性能不会产生很大影响。它能够处理那些有噪声或不完全的数据,具有泛化功能和很强的存储能力。随着计算机技术的飞速发展,模式识别技术已经从理论研究为主发展到了实际生活生产中大量的应用。模式识别的研究方向也更多的转为了图形图像、语言语音、机器人控制等实际的问题,而解决这些问题需要进行大量的复杂的实时数据处理,但传统结构的计算机的存储和计算能力的局限性,在实时信息处理方面的应用受阻。由于神经网络在处理信息时具有并行性特点
12、,人们将神经网络引入到模式识别领域来解决这些应用问题。同时神经网络的引入对模式识别的发展起到了巨大的推进作用,数字识别技术就是这样一个重要的领域。数字识别是一项具有巨大的经济和研究价值的课题,随着神经网络和模糊逻辑5技术的发展,人们对这一传统的研究领域取得了突破性的进展。1.5 本论文主要研究内容本文针对数字识别系统的设计与实现做了如下工作:第一章绪论。主要介绍了数字识别课题的概况,神经网络在数字识别中的应用情况。第二章神经网络理论及算法。主要介绍了人工神经网络的原理及模型,并对本系统所采用的 BP 神经网络原来和算法做了详细介绍。第三章基于神经网络的数字识别系统设计。主要介绍了本系统的设计方
13、案,其中包括了图像预处理及其算法、神经网络识别过程等内容。第四章基于神经网络的数字识别系统实现。主要讲解使用 VC+实现本系统中使用的关键技术和实现方法。第五章总结本论文所做工作和不足。6第二章 神经网络理论及算法2.1 人工神经网络基本原理2.1.1 神经细胞以及人工神经元组成神经系统的基本构造单元是神经细胞,也称神经元。它和人体中其他细胞的关键区别在于具有产生、处理和传递信号的功能。每个神经元都包括三个主要部分:细胞体、树突和轴突。树突的作用是向四方收集由其他神经细胞传来的信息,轴突的功能是传出从细胞体送来的信息。每个神经细胞所产生和传递的基本信息是兴奋或抑制。在两个神经细胞之间的相互接触
14、点称为突触。从信息的传递过程来看,一个神经细胞的树突,在突触处从其他神经细胞接受信号。这些信号可能是兴奋性的,也可能是抑制性的。所有树突接受到的信号都传到细胞体进行综合处理,如果在一个时间间隔内,某一细胞接受到的兴奋性信号量足够大,以致于使该细胞被激活,而产生一个脉冲信号。这个信号将沿着该细胞的轴突传送出去,并通过突触传给其他神经细胞.神经细胞通过突触的联接形成神经网络。2.1.2 人工神经元模型人工神经网络的基本处理单元是神经元,它通常是多输入/单输出的非线性或者线性元件。神经元不仅受输入信号的影响还受其内部的其他因素的影响,所以一般在神经网络中我们还要加入修正干扰的的输入信号,我们称为偏差
15、或者阀值、门限值。如图 2-1 所示是一个有 r 个输入分量的神经元结构图。其中,输入分量通过与和它相乘的权值分量 相连,以 的形式rjp,.21rjw,.21rjjpw1求和后,组成激活函数 f()的输入。激活函数的另一个输入是神经元的偏差 b,权值Wj 和输入分量的矩阵形式可以由 W 的行矢量以及 P 的列矢量来表示:2-(1)rw.212-(2)tpP2.2 神经网络的学习规则2.2.1 神经网络的联接形式人脑中大量的神经细胞都不是孤立的,而是通过突触形式相互联系着,构成结构与功能十分复杂的神经网络系统。为了便于从结构出发模拟智能,因此必须将一定数量的神经元适当地联接成网络,从而形成多种
16、神经网络模型。通常所说的神经网络的结构,主要指它的联接方式。神经网络按照拓扑结构属7于以神经元为节点,以及节点间有向连接为边的一种图,其结构大体上可分为层状和网状两大类。层状结构的神经网络是由若干层组成,每层中有一定数量的神经元,相邻层中神经元单向联接,一般地同层内的神经元不能联接,网状结构的神经网络中,根据神经元的不同连接方式神经网络分为两类分层网络和相互连接型网络1、分层网络分层网络讲一个神经网络模型中的说有神经元按照功能分为若干层。一般有输入层、隐含层和输出层,各层顺序链接。(1) 输入层链接外部输入模式,并由个输入单元传送给隐含层个单元。(2) 隐含层:是神经网络内部处理单元层。神经网
17、络所具有的模式变化能力主要体现在隐含层单元的处理功能上。(3) 输出层:产生神经网络的输出模式。2、相互结合型网络相互结合型网络如图2.2(c)所示,它是一种网状结构的神经网络。在这种网络中各个神经元之间可以相互连接,每一个神经元不仅可以作为输入,同时也可以用于输出。在这种神经网络在处理信息时,当从外部对神经网络施加一个输入,各个神经元之间不仅能够相互影响而且还能够处理信息,直到使此网络所有神经元的输出值或活性度,收敛于某个平均值为止,此时信息处理过程结束。2.2.2 神经网络的学习和训练在神经网络的研究过程中,人们提出了多种神经网络的学习方法,其中主要有三种形式(1)有教师学习:是在有“教师
18、”指导和考察的情况下进行学习的方式,“教师”给出了所有输入模式对应的输出模式的“正确答案”,即期望输出(目标)。神经网络根据一定的学习规则进行学习,每一次学习过程完成后,“教师”都要考察学习的结果 实际输出与期望输出的差别,以此决定网络是否需要再次学习,并根据误差信号调整学习的进程,使网络实际输出和期望输出的误差随着学习的反复进行而逐渐减小,直至达到要求的性能指标为止(2)无监督的学习在监督的学习训练中,只有输入没有目标输出,训练过程神经网络自动的将各8自输入数据特征提取出来进行分类,经过这样训练的网络可以识别训练集以外新的输入并得到相应的不同的输出。可以看出,无监督的学习网络具有自组织和自学
19、习的功能。(3)强化学习(再励学习):这种学习介于上述两种学习方式之间 )。外部环境对学习后的输出结果只给出评价信息(奖或惩),而不给出正确答案。神经网络学习系统通过强化那些受奖励的行为来改善自身的性能。 2.2.3 神经网络的学习规则神经网络学习算法的研究是人工神经网络发展的一个重要组成部分,人工神经网络具备学习能力的强弱代表这对人脑神经系统模拟程度,也具有广泛的实用价值。因此,有关神经网络的学习算法的研究一直占有特殊的地位。无论哪种学习方式,其学习过程都有一定的规则,神经网络典型的学习规则有 Hebb 学习规则、误差纠正学习规则、竞争学习规则等 2.3 BP 神经网络概述2.3.1 基于
20、BP 算法的多层前馈网络模型前馈网络是目前研究最多的网络形式之一。如图2.3所示,此为应用最为普遍的单隐层前馈型网络,一般称为三层前馈网或者三层感知器。在此模式中,包含了三层分别是输入层、隐层和输出层。每层都由若干节点组成,第n层的节点与第n+1层的节点相连。不同层次之间节点相连都设有权值,网络的学习功能就是通过修改这些联结之间的权值来实现的。图 2.3 三层 BP 网络结构9输入向量 ,隐层输入向量为 ,TnixxX),(21 TmiyyY),(21输出层输入向量为 ;期望输出向量为lkooO。输入层到隐层之间的权值矩阵用 V 表示,Tlkdd),(21,其中 为隐层第 个神经元对应的权向量
21、;隐层到输出层miVV ii之间的权值矩阵用 表示, ,其中列向量 为输出层第W),(21lkWk个神经元对应的权向量。以下是各层信号之间的数学关系。k对于输出层,有2-(3)lknetfok ,2-(4)ywmjj210对于隐层,有2-(5)jetfyjj ,)(2-(6)xvntnii0式 2-(5),式 2-(6)中,转移函数 均为单极性 Sigmoid 函数:)(f2-(7)xef1)(2.3.2 BP 网络学习算法BP 算法不仅有输入层节点、输出层节点,还可有 1 个或多个隐含层节点。对于输入信号,要先向前传播到隐含层节点,经作用函数后,再把隐节点的输出信号传播到输出节点,最后给出输出结果。以下通过三层前馈型网络介绍 BP 网络学习算法:假设输入层有 n 个神经元,隐含层有 p 个神经元,输出层有 q 个神经元,输入向量为 ,隐层输入向量为 ,隐层输出向量为),(21xx ),(21phiih,输出层输入向量为 ,输出层输出向量,phoho qyy为 ,期望输出向量为 ;输入层与中间层的)(21qyy ),(21odd连接权值为 ,隐层与输入层的连接权值为 ,隐层各神经元之间的阀值为 ,ihwhwhb输出层各神经元的阀值为 ,样本数据个数 ,obmk,激活函数为 ,误差函数为)(f2-(8)qookyde12)()(2