基于神经网络的手写数字识别系统的设计与实现.doc
Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date基于神经网络的手写数字识别系统的设计与实现中 南 大 学中 南 大 学本科生毕业论文(设计)题 目 基于神经网络的手写数字 识别系统的设计与实现 目 录摘要ABSTRACT第一章 绪论11.1手写体数字识别研究的发展及研究现状11.2神经网络在手写体数字识别中的应用21.3 论文结构简介3第二章 手写体数字识别42.1手写体数字识别的一般方法及难点42.2 图像预处理概述52.3 图像预处理的处理步骤52.3.1 图像的平滑去噪52.3.2 二值话处理62.3.3 归一化72.3.4 细化82.4 小结9第三章 特征提取103.1 特征提取的概述103.2 统计特征103.3 结构特征113.3.1 结构特征提取113.3.2 笔划特征的提取113.3.3 数字的特征向量说明123.3 知识库的建立12第四章 神经网络在数字识别中的应用144.1 神经网络简介及其工作原理144.1.1神经网络概述14144.1.2神经网络的工作原理144.2神经网络的学习与训练15154.3 BP神经网络164.3.1 BP算法164.3.2 BP网络的一般学习算法164.3.3 BP网络的设计184.4 BP学习算法的局限性与对策204.5 对BP算法的改进21第五章 系统的实现与结果分析235.1 软件开发平台235.1.1 MATLAB简介235.1.2 MATLAB的特点235.1.3 使用MATLAB的优势235.2 系统设计思路245.3 系统流程图245.4 MATLAB程序设计245.5 实验数据及结果分析26结论27参考文献28致谢30附录31-摘 要手写体数字识别是模式识别中一个非常重要和活跃的研究领域,数字识别也不是一项孤立的技术,它所涉及的问题是模式识别的其他领域都无法回避的;应用上,作为一种信息处理手段,字符识别有广阔的应用背景和巨大的市场需求。因此,对数字识别的研究具有理论和应用的双重意义。人工神经网络识别方法是近年该研究领域的一种新方法,该方法具有一些传统技术所没有的优点:良好的容错能力、分类能力强、并行处理和自学习能力,并且是离线训练和在线识别的。这些优点使它在手写体字符的识别中能对大量数据进行快速实时处理,并达到良好的识别效果。由于手写体数字识别难于建立精确的数学模型,所以本文采用BP神经网络对这一问题进行处理。神经网络模式识别的一个关键步骤是预处理和特征提取,对于手写体数字识别,本文采用了一种基于结构特征和统计特征的提取方法,并用程序实现了这一特征提取过程。通过测试,本识别系统对于较规范的手写体数字的识别达到了很好的识别效果。关键词: 手写体数字识别,特征提取,人工神经网络,MATLABABSTRACTHandwritten character recognition is a very important and active research in pattern recognition. Theoretically, it is not an isolated technique. It concerns with the problem that all the other areas of pattern recognition must confronted; practically, being a kind of information processing measured, character recognition has a very broad application background and vast need of market. Thus, it is of both theoretical and practical significance.Artificial neural network recognition method is a new method of the research field in recent years, and this method has some merit that traditional technique do not have; good tolerance for error, strong sorting ability, strong parallel handling ability and strong self-learning ability as well as its off-line training and on-line recognizing. All these merits contribute its perfect performance in handling vast data set and handling in timely manner.Its difficult to make accurate mathematics model for handwritten numeral recognition, so BP neural networks is used here. The key steps of neural networks pattern recognition are preprocessing and feature subset selection. In this paper, algorithm of feature subset selection basing on structural characteristics and statistical characteristics has been adopted in handwritten numeral recognition, and the process of feature subset selection had been realized in program.Recognition system in this paper has achieved a good rate of recognition in random handwritten numeral by test.Keyword: handwritten numeral recognition, feature extraction, artificial neural network, MATLAB第一章 绪 论1.1手写体数字识别研究的发展及研究现状模式识别2是六十年代初迅速发展起来的一门学科。由于它研究的是如何用机器来实现人(及某些动物)对事物的学习、识别和判断能力,因而受到了很多科技领域研究人员的注意,成为人工智能研究的一个重要方面。一个模式识别系统的基本职能是对系统所要处理的模式归属于哪一类做出判别,从该系统的模式输入到系统做出判别之间,主要包括信息检测、预处理、特征提取和分类几大环节。字符识别是模式识别领域中的一个非常活跃的分支。一方面是由于问题本身的难度使之成为一个极具挑战性的课题;另一方面,是因为字符识别不是一项孤立的应用技术,其中包含的模式识别领域中其他分支都会遇到的一些基本和共性的问题。从50年代开始,许多的研究者就在这一研究领域开展了广泛的探索并为模式识别的发展产生了积极的影响。字符识别,从采用的输入设备来分,可分为脱机识别(又称为光学字符识别Optical Character Recognition ,OCR)和联机识别,脱机字符又分为印刷体和手写字符识别,从对书写者要求来分,手写字符又分为限制性和非限制性的手写字符识别。在联机手写字符识别中,计算机能够通过与计算机相连的手写输入设备获得输入字符笔划的顺序、笔划的方向以及字符的形状,所以相对OCR来说它更容易识别一些。但联机字符识别有一个重要的不足就是要求输入者必须在指定的设备上书写,然而人们在生活中大部分的书写情况是不满足这一要求的,比如人们填写各种表格资料,开具支票等。如果需要计算机去认识这些已经成为文字的东西,就需要OCR技术。比起联机字符识别来,OCR不要求书写者在特定输入设备上书写,它可以与平常一样书写,所以OCR的应用更为广泛。OCR所使用的输入设备可以是任何一种图像采集设备,如扫描仪、数字相机等。通过使用这类采集设备,OCR系统将书写者已经写好的文字作为图像输入到计算机中,然后由计算机去识别。由于OCR的输入只是简单的一副图像,它就不能像联机输入那样比较容易的从物理上获得字符笔划的顺序信息,因此OCR是一个更具挑战性的问题。脱机字符识别(OCR)分为印刷体OCR和手写OCR。印刷体字符比手写体字符少了随机性,它的识别相对容易些,难点已经不在识别环节,而在于字符的分割上。印刷体识别的错误绝大多数都是错误的分割引起的3。对于手写体OCR,无论是联机还是脱机识别,手写体的识别都要经历由限制性手写体识别到非限制性手写体识别两个阶段。本文将以手写体数字为代表,讨论非限制性手写体字符的识别。脱机字符识别的研究最早始于上个世纪六十年代,是为了应付汉英翻译的需要。八十年代后的研究重心转移到脱机手写字符的识别上。对于小类别数的字符集如数字、字母的识别,已经可以做到对书写不加任何的限制。非限制性手写OCR的研究始终以阿拉伯数字为主导。这事因为,第一,十个阿拉伯数字是全世界的一套通用字符。第二,在数字的许多应用场合,如报表、账单、支票等,手写体还难以被印刷体所替代,而且对识别的可靠性要求极高。三,由于类别数少,所以模式识别中的许多方法研究均可以以数字识别作为实验背景。对脱机手写体字符的研究,人们由简单集成笔画密度、笔画方向和背景特征方法过渡到特征匹配方法,进而过渡到结合神经网络方法,随着对识别可靠性要求的提高,九十年代以后,多分类器集成方法成为了一个研究重点。1.2神经网络在手写体数字识别中的应用目前,随着计算机的迅速发展,性能价格比的不断提高,模式识别技术已经从理论探讨为主发展到大量的实际应用,人们将更多的注意力开始转向那些用于语音、图像、机器人以及人工智能等的模式识别实际问题。解决这些问题的关键是需要进行复杂而庞大的实时数据处理,而现有计算机的存贮容量及计算复杂性的局限,使得真正实时化的应用受阻。这种面向实时应用的模式识别问题促使人们开始将并行处理的神经网络4应用到模式识别,而神经网络模式识别技术又将模式识别实时应用推进了一大步,手写体数字识别就是这种应用的一个很重要的领域。手写体数字识别是一项极具研究价值的课题,随着神经网络1和模糊逻辑技术的发展,人们对这一问题的研究又采用了许多新的方法和手段,也使得这一古老的课题焕发出新的生命力5。目前国际上有相当多的学者在研究这一课题,它包括了模式识别领域中所有典型的问题:数据的采集、处理及选择、输入样本表达的选择、模式识别分类器的选择以及用样本集对识别器的有指导的训练。人工神经网络为手写体数字识别提供了新的手段。正是神经网络所具有的这种自组织自学习能力、推广能力、非线性和运算高度并行的能力使得模式识别成为目前神经网络最为成功的应用领域。二十多年来,人们在数字识别领域做了大量的研究工作,所提出的各种方法在印刷体和手写印刷体数字识别方面已经取得了较好的成绩,识别率稳定在96%左右。但是自由手写体数字的识别工作目前并不成熟,仍旧是文字识别中最有挑战性的课题之一。字符识别长期以来都是采用传统的识别方法,对印刷体字符的识别率一般只是稳定在96左右,不能进一步提高;而对手写体字符的识别,其研究还处于探索阶段,其识别率还相当低,因此,为了提高识别率,就必须寻求新的方法和途径。进入九十年代以来,人工神经网络(ANN)技术发展十分迅速,它具有模拟人类部分形象思维的能力,是一种模仿人脑学习、记忆、推理等认知功能的新方法。特别是它的信息并行分布式处理能力和自学习功能等显著优点,更是激起了人们对它的极大的兴趣。人工神经网络是由一些类似人脑神经元的简单处理单元相互连接而成的复杂网络。已涌现出许多不同类型的ANN及相应的学习算法,其中BP(或EBP-Error Back Propagation)网络及学习算法得到了广泛关注和研究,并在数字识别方面取得了许多有意义的应用成果。1.3 论文结构简介本毕业设计主要解决以图像形式存在的手写体数字识别的问题。整体分为三个部分,第一部分是图像预处理,第二部分是对手写体数字的结构特征的提取,第三部分是设计神经网络并对前面得到的样本数据进行学习和训练。本文通过图像预处理和数字特征提取以后基于神经网络的判别方法,然后结合使用了MATLAB工具箱中提供的人工神经网络函数设计了一种手写数字识别的新方法。实验表明,该方法可以获得较好的识别率。第二章 手写体数字识别2.1手写体数字识别的一般方法及难点字符识别问题的研究已有几十年的历史了,但时至今日,字符识别的研究成果远未达到人们所期望的,这其中有理论研究和技术实现等多方面因素. 在理论方面,我们对人类的视觉认知机理的研究还只是初步的,远未达到深入和透彻的水平。在技术方面,我们使用的计算机的运算水平和存储能力, 比起人脑的信息存储和处理能力有很大差距. 因此,目前的文字识别只能建立在现有的理论基础上,使用现有的技术来研究和解决问题。手写体数字识别是字符识别的一个分支,问题虽然简单,但却有较大的实用价值。数字的类别虽然只有十种,笔划又简单,其识别问题表面上是一个较简单的分类问题。但实际上,虽然各种新的识别算法不断的推出。其识别率和误识率仍距实用有相当距离。手写阿拉伯数字具有变形多差异大的特点,字形与书写人的职业、文化程度、书写习惯以及所使用笔墨纸张所处环境等都有关,所以手写体数字变形多、规律复杂。具体地说有两个:一是0 9 十个数字中,其中的一些数字字形相差不大,使得准确区分某些数字相当困难;二是数字虽然只有十种,但同一数字写法千差万别。不同的人写出的同一个数字都有差别,即使同一个人在不同的时候也会有不同的写法。笔划的书写顺序经常发生变化,因此极大地增加了匹配的难度。一般人写字时都不会一笔一划的书写,为了节省时间,连笔字是自然而然的事情,对于结构识别而言,连笔一方面使笔划种类大大增加,甚至达到难以归纳的程度;另一方面,连笔又使得笔段抽取难度大增,因为连笔会增加一些冗余笔段,连笔造成的畸变又会使笔段方向严重离散。总之,连笔不论对于基于哪种基元的结构识别都是严峻的挑战。这是造成手写数字识别过程复杂、达到较高识别率困难的根本原因。如图2.1各种各样的手写体数字。图2.1 各种各样的手写体数字2.2 图像预处理概述预处理6是字符识别重要的一环, 它把原始的图像转换成识别器所能接受的二进制形式。要识别手写体数字首先要对其字符图像进行预处理。预处理的主要目的是去除字符图像中的噪声、压缩冗余信息, 得到规范化的点阵, 为识别做好准备。这就要求预处理在消除图像中与识别无关的因素时尽量保持原图像的字符特征。手写体数字图像预处理的过程,就一般情况而言,主要经过如图2.2所示的几个步骤。不同的识别方法对预处理的项目和要求有所不同。如结构识别方法7,对字符规范化可以从简,甚至不需要。有的识别方法对细化要求很高,有的则不需要细化。本章中将分别对平滑去噪、二值化、归一化和细化分小节讨论。原始图像 平滑去噪二值化 归一化细 化图2.2 图像预处理的基本流程2.3 图像预处理的处理步骤2.3.1 图像的平滑去噪手写体数字由于其随机性大,断笔,连笔、飞白状况时常发生,为了减少灰度图像的一些不该出现的黑白噪声,可以采用图像的平滑去噪技术。进行图像平滑处理的是一种空域滤波器8,空域滤波器一般可分为线性滤波和非线性滤波两类。线性滤波器的设计常基于对傅立叶变换的分析,如均值滤波器;非线性滤波器则一般直接对邻域进行操作,如中值滤波器。以下为采用中值滤波对图像进行平滑处理的部分代码9:for i=2:175; for j=2:259 Xtemp=0; for m=1:3 for n=1:3 Xtemp=Xtemp+X2(i+m.2,j+n.2); end end Xtemp=Xtemp/9; X3(i,j)=Xtemp; endend2.3.2 二值化处理图像的二值化就是把图像中的像素根据一定的标准划分成两种颜色。在这个系统中就是根据像素的灰度值处理成黑白两种颜色。对数字字符图像二值化后要能真实的再现原数字, 其基本要求为:笔画中不出现空白点, 二值化的笔画基本保持原来文字的结构特征。图像二值化的关键在于阈值的选择。图像的二值化有很多成熟的算法, 有整体阈值二值化法、局部阈值二值化法、动态阈值二值化法等。二值化的关键在于阈值的选取,阈值选取主要分为整体阈值法、局部阈值法和动态阈值法。三类阈值的选择是一个比较复杂的问题,有的可以由计算机自动选择,有的需人工干预。基于字符识别扫描得到的图像目标与背景的灰度级有明显的差别,字符图像的二值化可采用整体阈值法中的双峰法,该方法简单易行,针对目标与背景的灰度级有明显差别的图像,其灰度直方图的分布呈双峰状,两个波峰分别与图像中的目标和背景相对应,波谷与图像边缘相对,应当在分割阈值位于谷底时,图像分割可取得最好的效果。下面给出我在设计过程中二值化以后的效果图如图2.3。图2.3 二值化处理2.3.3 归一化本文使用的数字图像都是在 Windows XP 画图板中手写输入的。由于10 ×14像素图像(10 是图像宽度,14 是图像高度)较小,书写时难度较大。我们希望书写时尽量不限制图像的大小,然后通过计算统一尺寸,使之具有同一高度,同一宽度,称之为归一化10。在数字图像处理中有一些比较成熟的缩放图像的算法,例如 MATLAB 使用 imresize函数来改变图像的大小。它的调用格式为 I2=imresize(I,rate),I 存储的是原始图像的数组,rate 是变化率,I2 存储的是改变后图像的数组。例如 rate=0.5 时,高度和宽度都将缩小一半,原始图像也就缩小了一半。这一算法的缺点是只能将原始图像的高度和宽度同时变化相同的比例,如果我们希望将原始图像变成10 ×1 4像素的图像,该算法就无法解决了。显然这种算法不适合解决我们面临的问题。本文提出了一种新的归一化算法,可以将不同尺寸的二值图像统一为10×14 像素的图像。具体算法是:先得到原始图像的高度和宽度,分别与系统要求得到的高度和宽度作比较,得出要变换的系数,然后根据得到的系数计算每一个原始像素点归一化后在新图像中的位置,最后计算新图像中每个像素点的值,方法是:求出原始像素点及其周围三个点的像素值的平均值,最后用函数 floor.m 取整,调用格式为 B=floor(A),B 取小于或者等于 A 的整数。归一化算法程序代码如下:ans=imread('0.bmp'); %读入图片 0.bmp,28 × 28像素图像imshow(ans)r,c=size(ans); % r 是原图像的高度,c 是宽度for i=2:(r-1)for j=2:(c-1)n=i/(r/14);n=ceil(n);m=j/(c/10);m=ceil(m);M(n,m)=(ans(i,j)+ans(i,j+1)+ans(i,j-1)+ans(i-1,j)/4;N(n,m)=floor(M(n,m);endendimshow(N)例如,数字图像“0.bmp”经该归一化算法计算得到矩阵 M,MATLAB 运行结果如图2.4所示。图2.4 归一化处理2.3.4 细化许多字符识别方法在预处理中都很重视对二值化字符的细化处理。直观来说,细化就是将二值化字符点阵逐层剥去轮廓上的点,变成笔画宽度只有一个像素宽度的字符骨架图形。之所以需要细化处理,是因为二值化点阵图形中,对识别有价值的文字特征信息主要集中在字符骨架上,细化后的字符骨架既保留了原字符的绝大部分的特征,又利于特征提取。细化后骨架的存储量比原来的二值化字符点阵要少得多,降低了处理工作量。手写体数字细化的基本要求如下:第一、保持原有字符笔画的连续性,不能由于细化造成笔画断裂。第二、要细化为单线,即笔画宽度为一个像素。第三、细化后的骨架应尽量是原来笔画的中心线。2.4 小结预处理是手写数字识别中不可缺少的组成部分,对图像预处理的好坏直接影响到识别的结果, 关系到识别算法的好坏。文中首先对待识别数字的预处理进行了介绍,包括平滑去噪、二值化、归一化、细化等图像处理方法,经过这些预处理步骤, 对图像中部分变形信息进行了修正, 消除图像中与识别无关的因素, 而且尽量保持原图像的字符特征, 在实验中提高了数字识别网络的性能。第三章 特征提取3.1 特征提取的概述模式识别使用特征来区分不同的种类。因此,特征提取是模式识别系统的关键部分。特征提取的目标是找到某种变换,将N维或N*N维的模式类别空间转换到维数小得多的M维特征空间,并同时保留模式识别所需要的大部分信息。通过特征提取,模式分类可以在维数低得多的空间上进行,从而降低了计算的复杂度。而且,对给定的训练样本进行特征提取可以获得更精确的分类函数的描述,以构造更可靠的分类规则。同样对于手写体数字的识别,特征提取可以降低字符信息量、去除无用的冗余信息,提高识别系统效率,一直是字符识别领域中的关键点。特征提取的目的是从原始数据中抽取出用于区分不同类型的本质特征。无论是识别过程还是学习过程,都要对研究对象固有的、本质的重要特征或属性进行量测并将结果数值化,形成特征矢量。手写体数字的识别中,常用的特征有结构特征和统计特征。结构特征和统计特征各有其优点:结构特征能描述字符的结构,对于不同人书写的字符,形体不同,但结构都是一致的,所以结构特征能克服手写字体因人而引起的畸变;统计特征最大的优点是对环境噪音不敏感,如若字符的背景噪音通常都是呈高斯分布,用统计特征进行识别可对此影响忽略不计。本章将用两小节分别对结构特征和统计特征进行论述。 3.2 统计特征对复杂图像信号作小波变换11,进行多分辨率分析,已经成为图像信号分析和处理的常用方法。由于小波变换的结果体现为大量的小波分解系数,这些系数包含了系统或信号本身大量和多样的特征信息。如果图像信号的主要信息能以一个或一组特征量来表征,我们就可以更加直观、有效和方便地对各种随机信号进行信息提取、信号检测、特征识别。统计特征分为宏观特征信息和局部特征信息。宏观特征信息是需要在整幅图像上获取的特征信息。传统的全局特征主要包括:全局变换特征(对字符图像进行各种变换,利用变换系数作为特征向量,常用的变换有Fourier变换、K-L变换、小波变换等)、不变矩特征、全局笔划方向特征等;常用的局部统计特征有:局部笔划方向特征、Gabor特征等。统计特征对微小的畸变不敏感,但区分相似的能力较差。以下为程序设计中对小波分析提取低频部分的统计特征的实例:f=imread('sample.bmp');输入图像c,s=wavedec2(h,3,'db2');对人脸图像进行3阶小波分解,并提取小波系数wave2gray(c,s,8);显示小波分解后各子图y=wavecopy('a',c,s)figure,imshow(mat2gray(y);提取主要特征3.3 结构特征采用结构特征12对字符进行结构分析从而达到识别目的,是一种非常直观的方法。字符由各个子部件构成,逐级分析字符图像的结构,根据各元素的属性、数量及其相互关系,便可判定待识字符。与统计方法相比,结构分析不注重特征的绝对位置,只考虑特征的相对关系,因而对书写风格的变化不敏感,其缺点在于特征提取和模板的建立都十分困难,匹配算法也比较复杂,神经网络的应用弥补了这个缺点,只要提取出适当的结构向量作为神经网络的输入向量,会得到令人满意的识别输出结果。以下详细介绍。3.3.1 结构特征提取首先对经预处理后的图像进行分割,如图3.1所示。 图3.1 图像分割对图像分割后,结构特征提取的算法如下:(1)对细化后的数字图像取竖直的三条直线,分别取在5/12,1/2,7/12处,记下这三条竖直直线与数字笔段的交点数。(2)再取水平三条直线,分别取在1/3,1/2,2/3处, 分别记下这三条水平直线与数字笔段的交点数。(3)再取对角两条直线, 分别记下这两条对角直线与数字笔段的交点数。3.3.2 笔划特征的提取经细化后的数字图像其特征较为稳定,且笔划简单,因此对其抽取的基本结构组件能反映数字的本质特征,从而可快速有效地识别数字,并达到较好的分类效果。数字端点如图3.2所示。图3.2数字端点对图像分割后,结构特征提取的算法如下:(1)按从上到下,从左到右的顺序扫描预处理后图像并选择黑像素点P;(2)计算像素P的8邻域之和N;(3)若N=1,则像素P为端点,端点计数器加一;(4)重复步骤(1)-(3),直到遍历整个图像。3.3.3 数字的特征向量说明依据上述特征提取方法,本系统中的特征矢量由9个分量组成,其排列如下所示:DATA= 竖直中线交点数,竖直5/12处,竖直7/12处,水平中线交点数,水平1/3处交点数,水平2/3处交点数,左对角线交点数,右对角线交点数,端点数 ;3.3 知识库的建立由于本文采用的是基于模式知识库的识别方法,所以对字符的结构特征的分析以及字符模型的构造是一个十分重要的环节,图3.3就是对识别数字的标准形态进行具体分析而构造的模板。图3.3 规范手写体数字形态 以下为规范手写体数字形态的特征向量:DATA012,2,2,2,2,2,2,2,0;DATA111,0,0,1,1,1,1,1,2;DATA213,3,3,1,1,1,1,1,3;DATA313,2,3,1,1,1,2,2,3;DATA411,1,1,2,2,1,3,2,4;DATA513,3,3,1,1,1,2,2,4;DATA613,3,2,1,1,2,3,2,1;DATA712,2,2,1,1,1,1,1,2;DATA814,4,4,2,2,2,2,2,0;DATA913,3,3,1,2,1,3,1,1。由于本系统是对自由手写体进行识别, 因而要考虑数字书写体的多变性。通过对图3.4所示的数字变体的分析来对知识库进行补充。 图3.4手写体数字变体以下为手写体数字变体形态的特征向量:DATA021,1,2,2,2,2,1,2,2;DATA223,2,2,1,1,1,1,3,2;DATA323,1,4,2,1,1,2,2,3;DATA421,2,2,3,3,1,2,2,2;DATA523,3,3,1,1,1,2,2,4;DATA623,1,3,1,1,2,2,2,2;DATA824,4,4,2,1,2,1,2,2;DATA923,2,3,2,1,1,3,1,3。最后得到的知识库由上述两套模板所组成。第四章 神经网络在数字识别的应用4.1 神经网络简介及其工作原理人的智能来自于大脑,大脑是由大量的神经细胞或神经元组成的。每个神经元可以看作为一个小的处理单元,这些神经元按照某种方式互相连接起来,构成了大脑内部的生理神经元网络。他们中各神经元之间连接的强弱,按照外部的激励信号作自适应变化,而每个神经元又随着接收到的多个激励信号的综合大小呈现兴奋或抑制状态。4.1.1神经网络概述人工神经元网络是生理学上的真实人脑神经网络的结构和功能,以及若干基本特性的某种理论抽象、简化和模拟而构成的一种信息处理系统。从系统观点看,人工神经元网络是由大量神经元通过极其丰富和完善的联接而构成的自适应非线性动态系统。由于神经元之间有着不同的连接方式,所以组成不同结构形态的神经网络14系统是可能的。据现在的了解,大脑的学习过程就是神经元之间连接强度随外部激励信息做自适应变化的过程,大脑处理信息的结果确由神经元的状态表现出来。显然,神经元是信息处理系统的最小单元。虽然神经元的类型有很多种,但其基本结构相似。4.1.2神经网络的工作原理人工神经网络首先要以一定的学习准则进行学习,然后才能工作。现以人工神经网络对手写“A”、“B”两个字母的识别为例进行说明,规定当“A”输入网络时,应该输出“1”,而当输入为“B”时,输出为“0”。 所以网络学习的准则应该是:如果网络做出错误的判决,则通过网络的学习,应使得网络减少下次犯同样错误的可能性。首先,给网络的各连接权值赋予(0,1)区间内的随机值,将“A”所对应的图像模式输入给网络,网络将输入模式加权求和、与门限比较、再进行非线性运算,得到网络的输出。在此情况下,网络输出为“1”和“0”的概率各为50%,也就是说是完全随机的。这时如果输出为“1”(结果正确),则使连接权值增大,以便使网络再次遇到“A”模式输入时,仍然能做出正确的判断。 如果输出为“0”(即为结果错误),则把网络连接权值朝着减小综合输入加权值的方向调整,其目的在于使网络下次再遇到“A”模式输入时,减小犯同样错误的可能性。如此操作调整,当给网络轮番输入若干个手写字母“A”、“B”后,经过网络按以上学习方法进行若干次学习后,网络判断的正确率将大大提高。这说明网络对这两个模式的学习已经获得了成功,它已将这两个模式分布地记忆在网络的各个连接权值上。当网络再次遇到其中任何一个模式时,能够做出迅速、准确的判断和识别。一般说来,网络中所含的神经元个数越多,则它能记忆、识别的模式也就越多。4.2神经网络的学习与训练人脑中一个典型神经元通过许多树突的精细结构,收集来自其它神经元的信息,神经元又通过轴突的一条长而细的轴突发出电活性脉冲。轴突分裂上千条分支,在每条分支末端,通过突触的结构把来自轴突的电活性变为电作用,从而使与之相连的各种神经元的活性受到抑制或兴奋。当一个神经元收到兴奋输入,而兴奋输入又比神经元的抑制输入足够大时,神经元把电活性脉冲向下传到它的轴突,改变轴突的有效性,从而使一个神经元对另一个神经元的影响改变,便发生了学习行为。因此,可以认为神经网络学习的本质特征在于神经细胞特殊的突触结构所具有的可塑性连接,而如何调整连接权重就构成了不同的学习算法。通过向环境学习获取知识并改进自身性能是NN的一个重要特点。在一般情况下,性能的改善是按某种预定的度量通过调节自身参数(如权值)随时间逐步达到的。学习方式15(按照环境提供信息量的多少)有三种:1监督学习(有教师学习)为了使神经网络在实际应用中解决各种问题,必须对它进行训练,就是从应用环境中选出一些样本数据,通过不断地调整权矩阵,直到得到合适的输入输出关系为止,这个过程就是对神经网络的训练过程,这种训练的过程需要有教师示教,提供训练数据,又称样本数据。在训练过程中又需教师的监督,故这种有教师的学习又称为监督式学习。有教师学习方法虽然简单,但是要求教师对环境和网络的结构应该比较熟悉,当系统复杂,环境变化时,就变得困难。为了适应环境变化就要重新调整加权值,这样,当学习到新知识的同时,也容易忘掉已学过的旧知识,这一些是有教师学习方法的缺点。2非监督学习(无教师学习)非监督学习时不存在外部教师,学习系统完全按照环境提供数据的某些统计规律来调节自身参数或结构(这是一种自组织过程),以表示出外部输入的某种固有特性(如聚类或某种统计上的分布特征)。无教师学习的训练数据集中,只有输入而没有目标输出,训练过程神经网络自动地将各输入数据的特征提取出来,并将其分成若干类。经过训练好的网络能够识别训练数据集以外的新的输入类别,并相应获得不同的输出。显然,无教师的训练方式可使网络具有自组织和自学习的功能。3再励学习(强化学习)这种学习介于上述两种情况之间,外部环境对系统输出结果只给出评价信息(奖或惩)而不是给出正确答案。学习系统通过强化那些受奖的动作来改善自身的性能。4.3 BP神经网络4.3.1 BP算法自1985年Rumelhart提出BP算法16以来,神经网络的研究和应用已经迅速发展并渗透到各个学科,神经网络算法已不再是只供研究,而在实际的生产中开始了广泛的应用。如:数据库系统的数据挖掘、产品的自动分捡系统的图像识别等。对应地在计算机辅助设计的软件开发中,神经网络算法的设计也越来越多。神经网络以其快速的并行处理能力和其强有力的学习能力而获得越来越广泛的重视,其中应用最多的是BP神经网络。BP学习算法,即反向传播(back propagation)学习算法是一种有导师的示例学习算法。这种学习算法在模式识别领域中,尤其在字符识别的研究中被广泛使用。其原因是BP算法学习规则的坚韧性和学习能力很强,当给定模式与BP网络学会的模式很相似时,BP网络能很好的完成识别任务。BP算法是一种有监督式的学习算法。其主要思想是:输入学习样本,使用反向传播算法对网络的权值和偏差进行反复的调整训练,通过误差的反向传播,使输出的向量与期望向量尽可能地接近,当网络输出层的误差平方和小于指定的误差时训练完成,保存网络的权值和偏差。BP 算法由两部分组成:信息的正向传递与误差的反向传播。在正向传播过程中,输入信息从输入层经过隐含层逐层计算传向输出层,每一层神经元的状态只影响下一层神经元的状态。如果在输出层没有得到期望的输出,则计算输出层的误差变化值,然后转向反向传播,通过网络将误差信号沿着原来的连接通路反传回来,通过修改各层神经元的权值使得误差减小,直至达到期望目标。4.3.2 BP网络的一般学习算法BP