版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上中 南 大 学本科生毕业论文(设计)题 目 基于神经网络的手写数字 识别系统的设计与实现 目 录专心-专注-专业摘 要手写体数字识别是模式识别中一个非常重要和活跃的研究领域,数字识别也不是一项孤立的技术,它所涉及的问题是模式识别的其他领域都无法回避的;应用上,作为一种信息处理手段,字符识别有广阔的应用背景和巨大的市场需求。因此,对数字识别的研究具有理论和应用的双重意义。人工神经网络识别方法是近年该研究领域的一种新方法,该方法具有一些传统技术所没有的优点:良好的容错能力、分类能力强、并行处理和自学习能力,并且是离线训练和在线识别的。这些优点使它在手写体字符的识别中能对大
2、量数据进行快速实时处理,并达到良好的识别效果。由于手写体数字识别难于建立精确的数学模型,所以本文采用BP神经网络对这一问题进行处理。神经网络模式识别的一个关键步骤是预处理和特征提取,对于手写体数字识别,本文采用了一种基于结构特征和统计特征的提取方法,并用程序实现了这一特征提取过程。通过测试,本识别系统对于较规范的手写体数字的识别达到了很好的识别效果。关键词: 手写体数字识别,特征提取,人工神经网络,MATLABABSTRACTHandwritten character recognition is a very important and active research in pattern
3、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 mark
4、et. 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
5、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
6、, 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
7、 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第一章 绪 论
8、1.1手写体数字识别研究的发展及研究现状模式识别2是六十年代初迅速发展起来的一门学科。由于它研究的是如何用机器来实现人(及某些动物)对事物的学习、识别和判断能力,因而受到了很多科技领域研究人员的注意,成为人工智能研究的一个重要方面。一个模式识别系统的基本职能是对系统所要处理的模式归属于哪一类做出判别,从该系统的模式输入到系统做出判别之间,主要包括信息检测、预处理、特征提取和分类几大环节。字符识别是模式识别领域中的一个非常活跃的分支。一方面是由于问题本身的难度使之成为一个极具挑战性的课题;另一方面,是因为字符识别不是一项孤立的应用技术,其中包含的模式识别领域中其他分支都会遇到的一些基本和共性的问
9、题。从50年代开始,许多的研究者就在这一研究领域开展了广泛的探索并为模式识别的发展产生了积极的影响。字符识别,从采用的输入设备来分,可分为脱机识别(又称为光学字符识别Optical Character Recognition ,OCR)和联机识别,脱机字符又分为印刷体和手写字符识别,从对书写者要求来分,手写字符又分为限制性和非限制性的手写字符识别。在联机手写字符识别中,计算机能够通过与计算机相连的手写输入设备获得输入字符笔划的顺序、笔划的方向以及字符的形状,所以相对OCR来说它更容易识别一些。但联机字符识别有一个重要的不足就是要求输入者必须在指定的设备上书写,然而人们在生活中大部分的书写情况是
10、不满足这一要求的,比如人们填写各种表格资料,开具支票等。如果需要计算机去认识这些已经成为文字的东西,就需要OCR技术。比起联机字符识别来,OCR不要求书写者在特定输入设备上书写,它可以与平常一样书写,所以OCR的应用更为广泛。OCR所使用的输入设备可以是任何一种图像采集设备,如扫描仪、数字相机等。通过使用这类采集设备,OCR系统将书写者已经写好的文字作为图像输入到计算机中,然后由计算机去识别。由于OCR的输入只是简单的一副图像,它就不能像联机输入那样比较容易的从物理上获得字符笔划的顺序信息,因此OCR是一个更具挑战性的问题。脱机字符识别(OCR)分为印刷体OCR和手写OCR。印刷体字符比手写体
11、字符少了随机性,它的识别相对容易些,难点已经不在识别环节,而在于字符的分割上。印刷体识别的错误绝大多数都是错误的分割引起的3。对于手写体OCR,无论是联机还是脱机识别,手写体的识别都要经历由限制性手写体识别到非限制性手写体识别两个阶段。本文将以手写体数字为代表,讨论非限制性手写体字符的识别。脱机字符识别的研究最早始于上个世纪六十年代,是为了应付汉英翻译的需要。八十年代后的研究重心转移到脱机手写字符的识别上。对于小类别数的字符集如数字、字母的识别,已经可以做到对书写不加任何的限制。非限制性手写OCR的研究始终以阿拉伯数字为主导。这事因为,第一,十个阿拉伯数字是全世界的一套通用字符。第二,在数字的
12、许多应用场合,如报表、账单、支票等,手写体还难以被印刷体所替代,而且对识别的可靠性要求极高。三,由于类别数少,所以模式识别中的许多方法研究均可以以数字识别作为实验背景。对脱机手写体字符的研究,人们由简单集成笔画密度、笔画方向和背景特征方法过渡到特征匹配方法,进而过渡到结合神经网络方法,随着对识别可靠性要求的提高,九十年代以后,多分类器集成方法成为了一个研究重点。1.2神经网络在手写体数字识别中的应用目前,随着计算机的迅速发展,性能价格比的不断提高,模式识别技术已经从理论探讨为主发展到大量的实际应用,人们将更多的注意力开始转向那些用于语音、图像、机器人以及人工智能等的模式识别实际问题。解决这些问
13、题的关键是需要进行复杂而庞大的实时数据处理,而现有计算机的存贮容量及计算复杂性的局限,使得真正实时化的应用受阻。这种面向实时应用的模式识别问题促使人们开始将并行处理的神经网络4应用到模式识别,而神经网络模式识别技术又将模式识别实时应用推进了一大步,手写体数字识别就是这种应用的一个很重要的领域。手写体数字识别是一项极具研究价值的课题,随着神经网络1和模糊逻辑技术的发展,人们对这一问题的研究又采用了许多新的方法和手段,也使得这一古老的课题焕发出新的生命力5。目前国际上有相当多的学者在研究这一课题,它包括了模式识别领域中所有典型的问题:数据的采集、处理及选择、输入样本表达的选择、模式识别分类器的选择
14、以及用样本集对识别器的有指导的训练。人工神经网络为手写体数字识别提供了新的手段。正是神经网络所具有的这种自组织自学习能力、推广能力、非线性和运算高度并行的能力使得模式识别成为目前神经网络最为成功的应用领域。二十多年来,人们在数字识别领域做了大量的研究工作,所提出的各种方法在印刷体和手写印刷体数字识别方面已经取得了较好的成绩,识别率稳定在96%左右。但是自由手写体数字的识别工作目前并不成熟,仍旧是文字识别中最有挑战性的课题之一。字符识别长期以来都是采用传统的识别方法,对印刷体字符的识别率一般只是稳定在96左右,不能进一步提高;而对手写体字符的识别,其研究还处于探索阶段,其识别率还相当低,因此,为
15、了提高识别率,就必须寻求新的方法和途径。进入九十年代以来,人工神经网络(ANN)技术发展十分迅速,它具有模拟人类部分形象思维的能力,是一种模仿人脑学习、记忆、推理等认知功能的新方法。特别是它的信息并行分布式处理能力和自学习功能等显著优点,更是激起了人们对它的极大的兴趣。人工神经网络是由一些类似人脑神经元的简单处理单元相互连接而成的复杂网络。已涌现出许多不同类型的ANN及相应的学习算法,其中BP(或EBP-Error Back Propagation)网络及学习算法得到了广泛关注和研究,并在数字识别方面取得了许多有意义的应用成果。1.3 论文结构简介本毕业设计主要解决以图像形式存在的手写体数字识
16、别的问题。整体分为三个部分,第一部分是图像预处理,第二部分是对手写体数字的结构特征的提取,第三部分是设计神经网络并对前面得到的样本数据进行学习和训练。本文通过图像预处理和数字特征提取以后基于神经网络的判别方法,然后结合使用了MATLAB工具箱中提供的人工神经网络函数设计了一种手写数字识别的新方法。实验表明,该方法可以获得较好的识别率。第二章 手写体数字识别2.1手写体数字识别的一般方法及难点字符识别问题的研究已有几十年的历史了,但时至今日,字符识别的研究成果远未达到人们所期望的,这其中有理论研究和技术实现等多方面因素. 在理论方面,我们对人类的视觉认知机理的研究还只是初步的,远未达到深入和透彻
17、的水平。在技术方面,我们使用的计算机的运算水平和存储能力, 比起人脑的信息存储和处理能力有很大差距. 因此,目前的文字识别只能建立在现有的理论基础上,使用现有的技术来研究和解决问题。手写体数字识别是字符识别的一个分支,问题虽然简单,但却有较大的实用价值。数字的类别虽然只有十种,笔划又简单,其识别问题表面上是一个较简单的分类问题。但实际上,虽然各种新的识别算法不断的推出。其识别率和误识率仍距实用有相当距离。手写阿拉伯数字具有变形多差异大的特点,字形与书写人的职业、文化程度、书写习惯以及所使用笔墨纸张所处环境等都有关,所以手写体数字变形多、规律复杂。具体地说有两个:一是0 9 十个数字中,其中的一
18、些数字字形相差不大,使得准确区分某些数字相当困难;二是数字虽然只有十种,但同一数字写法千差万别。不同的人写出的同一个数字都有差别,即使同一个人在不同的时候也会有不同的写法。笔划的书写顺序经常发生变化,因此极大地增加了匹配的难度。一般人写字时都不会一笔一划的书写,为了节省时间,连笔字是自然而然的事情,对于结构识别而言,连笔一方面使笔划种类大大增加,甚至达到难以归纳的程度;另一方面,连笔又使得笔段抽取难度大增,因为连笔会增加一些冗余笔段,连笔造成的畸变又会使笔段方向严重离散。总之,连笔不论对于基于哪种基元的结构识别都是严峻的挑战。这是造成手写数字识别过程复杂、达到较高识别率困难的根本原因。如图2.
19、1各种各样的手写体数字。图2.1 各种各样的手写体数字2.2 图像预处理概述预处理6是字符识别重要的一环, 它把原始的图像转换成识别器所能接受的二进制形式。要识别手写体数字首先要对其字符图像进行预处理。预处理的主要目的是去除字符图像中的噪声、压缩冗余信息, 得到规范化的点阵, 为识别做好准备。这就要求预处理在消除图像中与识别无关的因素时尽量保持原图像的字符特征。手写体数字图像预处理的过程,就一般情况而言,主要经过如图2.2所示的几个步骤。不同的识别方法对预处理的项目和要求有所不同。如结构识别方法7,对字符规范化可以从简,甚至不需要。有的识别方法对细化要求很高,有的则不需要细化。本章中将分别对平
20、滑去噪、二值化、归一化和细化分小节讨论。原始图像 平滑去噪二值化 归一化细 化图2.2 图像预处理的基本流程2.3 图像预处理的处理步骤2.3.1 图像的平滑去噪手写体数字由于其随机性大,断笔,连笔、飞白状况时常发生,为了减少灰度图像的一些不该出现的黑白噪声,可以采用图像的平滑去噪技术。进行图像平滑处理的是一种空域滤波器8,空域滤波器一般可分为线性滤波和非线性滤波两类。线性滤波器的设计常基于对傅立叶变换的分析,如均值滤波器;非线性滤波器则一般直接对邻域进行操作,如中值滤波器。以下为采用中值滤波对图像进行平滑处理的部分代码9:for i=2:175; for j=2:259 Xtemp=0; f
21、or 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 二值化处理图像的二值化就是把图像中的像素根据一定的标准划分成两种颜色。在这个系统中就是根据像素的灰度值处理成黑白两种颜色。对数字字符图像二值化后要能真实的再现原数字, 其基本要求为:笔画中不出现空白点, 二值化的笔画基本保持原来文字的结构特征。图像二值化的关键在于阈值的选择。图像的二值化有很多成熟的算法, 有整体阈值二值化法、局部阈值二值化法、动态阈值二值化法等。二值化的关键在于阈值的选取,阈值选取主
22、要分为整体阈值法、局部阈值法和动态阈值法。三类阈值的选择是一个比较复杂的问题,有的可以由计算机自动选择,有的需人工干预。基于字符识别扫描得到的图像目标与背景的灰度级有明显的差别,字符图像的二值化可采用整体阈值法中的双峰法,该方法简单易行,针对目标与背景的灰度级有明显差别的图像,其灰度直方图的分布呈双峰状,两个波峰分别与图像中的目标和背景相对应,波谷与图像边缘相对,应当在分割阈值位于谷底时,图像分割可取得最好的效果。下面给出我在设计过程中二值化以后的效果图如图2.3。图2.3 二值化处理2.3.3 归一化本文使用的数字图像都是在 Windows XP 画图板中手写输入的。由于10 ×1
23、4像素图像(10 是图像宽度,14 是图像高度)较小,书写时难度较大。我们希望书写时尽量不限制图像的大小,然后通过计算统一尺寸,使之具有同一高度,同一宽度,称之为归一化10。在数字图像处理中有一些比较成熟的缩放图像的算法,例如 MATLAB 使用 imresize函数来改变图像的大小。它的调用格式为 I2=imresize(I,rate),I 存储的是原始图像的数组,rate 是变化率,I2 存储的是改变后图像的数组。例如 rate=0.5 时,高度和宽度都将缩小一半,原始图像也就缩小了一半。这一算法的缺点是只能将原始图像的高度和宽度同时变化相同的比例,如果我们希望将原始图像变成10
24、5;1 4像素的图像,该算法就无法解决了。显然这种算法不适合解决我们面临的问题。本文提出了一种新的归一化算法,可以将不同尺寸的二值图像统一为10×14 像素的图像。具体算法是:先得到原始图像的高度和宽度,分别与系统要求得到的高度和宽度作比较,得出要变换的系数,然后根据得到的系数计算每一个原始像素点归一化后在新图像中的位置,最后计算新图像中每个像素点的值,方法是:求出原始像素点及其周围三个点的像素值的平均值,最后用函数 floor.m 取整,调用格式为 B=floor(A),B 取小于或者等于 A 的整数。归一化算法程序代码如下:ans=imread('0.bmp');
25、 %读入图片 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 细化许多字符识别
26、方法在预处理中都很重视对二值化字符的细化处理。直观来说,细化就是将二值化字符点阵逐层剥去轮廓上的点,变成笔画宽度只有一个像素宽度的字符骨架图形。之所以需要细化处理,是因为二值化点阵图形中,对识别有价值的文字特征信息主要集中在字符骨架上,细化后的字符骨架既保留了原字符的绝大部分的特征,又利于特征提取。细化后骨架的存储量比原来的二值化字符点阵要少得多,降低了处理工作量。手写体数字细化的基本要求如下:第一、保持原有字符笔画的连续性,不能由于细化造成笔画断裂。第二、要细化为单线,即笔画宽度为一个像素。第三、细化后的骨架应尽量是原来笔画的中心线。2.4 小结预处理是手写数字识别中不可缺少的组成部分,对图
27、像预处理的好坏直接影响到识别的结果, 关系到识别算法的好坏。文中首先对待识别数字的预处理进行了介绍,包括平滑去噪、二值化、归一化、细化等图像处理方法,经过这些预处理步骤, 对图像中部分变形信息进行了修正, 消除图像中与识别无关的因素, 而且尽量保持原图像的字符特征, 在实验中提高了数字识别网络的性能。第三章 特征提取3.1 特征提取的概述模式识别使用特征来区分不同的种类。因此,特征提取是模式识别系统的关键部分。特征提取的目标是找到某种变换,将N维或N*N维的模式类别空间转换到维数小得多的M维特征空间,并同时保留模式识别所需要的大部分信息。通过特征提取,模式分类可以在维数低得多的空间上进行,从而
28、降低了计算的复杂度。而且,对给定的训练样本进行特征提取可以获得更精确的分类函数的描述,以构造更可靠的分类规则。同样对于手写体数字的识别,特征提取可以降低字符信息量、去除无用的冗余信息,提高识别系统效率,一直是字符识别领域中的关键点。特征提取的目的是从原始数据中抽取出用于区分不同类型的本质特征。无论是识别过程还是学习过程,都要对研究对象固有的、本质的重要特征或属性进行量测并将结果数值化,形成特征矢量。手写体数字的识别中,常用的特征有结构特征和统计特征。结构特征和统计特征各有其优点:结构特征能描述字符的结构,对于不同人书写的字符,形体不同,但结构都是一致的,所以结构特征能克服手写字体因人而引起的畸
29、变;统计特征最大的优点是对环境噪音不敏感,如若字符的背景噪音通常都是呈高斯分布,用统计特征进行识别可对此影响忽略不计。本章将用两小节分别对结构特征和统计特征进行论述。 3.2 统计特征对复杂图像信号作小波变换11,进行多分辨率分析,已经成为图像信号分析和处理的常用方法。由于小波变换的结果体现为大量的小波分解系数,这些系数包含了系统或信号本身大量和多样的特征信息。如果图像信号的主要信息能以一个或一组特征量来表征,我们就可以更加直观、有效和方便地对各种随机信号进行信息提取、信号检测、特征识别。统计特征分为宏观特征信息和局部特征信息。宏观特征信息是需要在整幅图像上获取的特征信息。传统的全局特征主要包
30、括:全局变换特征(对字符图像进行各种变换,利用变换系数作为特征向量,常用的变换有Fourier变换、K-L变换、小波变换等)、不变矩特征、全局笔划方向特征等;常用的局部统计特征有:局部笔划方向特征、Gabor特征等。统计特征对微小的畸变不敏感,但区分相似的能力较差。以下为程序设计中对小波分析提取低频部分的统计特征的实例:f=imread('sample.bmp');输入图像c,s=wavedec2(h,3,'db2');对人脸图像进行3阶小波分解,并提取小波系数wave2gray(c,s,8);显示小波分解后各子图y=wavecopy('a',c
31、,s)figure,imshow(mat2gray(y);提取主要特征3.3 结构特征采用结构特征12对字符进行结构分析从而达到识别目的,是一种非常直观的方法。字符由各个子部件构成,逐级分析字符图像的结构,根据各元素的属性、数量及其相互关系,便可判定待识字符。与统计方法相比,结构分析不注重特征的绝对位置,只考虑特征的相对关系,因而对书写风格的变化不敏感,其缺点在于特征提取和模板的建立都十分困难,匹配算法也比较复杂,神经网络的应用弥补了这个缺点,只要提取出适当的结构向量作为神经网络的输入向量,会得到令人满意的识别输出结果。以下详细介绍。3.3.1 结构特征提取首先对经预处理后的图像进行分割,如图
32、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数字端点对图像分割后,结构特征提取的算法如
33、下:(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就是对
34、识别数字的标准形态进行具体分析而构造的模板。图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。由于本系统
35、是对自由手写体进行识别, 因而要考虑数字书写体的多变性。通过对图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。最后得到的知识库由上述两套模板所组成。第四章
36、神经网络在数字识别的应用4.1 神经网络简介及其工作原理人的智能来自于大脑,大脑是由大量的神经细胞或神经元组成的。每个神经元可以看作为一个小的处理单元,这些神经元按照某种方式互相连接起来,构成了大脑内部的生理神经元网络。他们中各神经元之间连接的强弱,按照外部的激励信号作自适应变化,而每个神经元又随着接收到的多个激励信号的综合大小呈现兴奋或抑制状态。4.1.1神经网络概述人工神经元网络是生理学上的真实人脑神经网络的结构和功能,以及若干基本特性的某种理论抽象、简化和模拟而构成的一种信息处理系统。从系统观点看,人工神经元网络是由大量神经元通过极其丰富和完善的联接而构成的自适应非线性动态系统。由于神经
37、元之间有着不同的连接方式,所以组成不同结构形态的神经网络14系统是可能的。据现在的了解,大脑的学习过程就是神经元之间连接强度随外部激励信息做自适应变化的过程,大脑处理信息的结果确由神经元的状态表现出来。显然,神经元是信息处理系统的最小单元。虽然神经元的类型有很多种,但其基本结构相似。4.1.2神经网络的工作原理人工神经网络首先要以一定的学习准则进行学习,然后才能工作。现以人工神经网络对手写“A”、“B”两个字母的识别为例进行说明,规定当“A”输入网络时,应该输出“1”,而当输入为“B”时,输出为“0”。 所以网络学习的准则应该是:如果网络做出错误的判决,则通过网络的学习,应使得网络减少下次犯同
38、样错误的可能性。首先,给网络的各连接权值赋予(0,1)区间内的随机值,将“A”所对应的图像模式输入给网络,网络将输入模式加权求和、与门限比较、再进行非线性运算,得到网络的输出。在此情况下,网络输出为“1”和“0”的概率各为50%,也就是说是完全随机的。这时如果输出为“1”(结果正确),则使连接权值增大,以便使网络再次遇到“A”模式输入时,仍然能做出正确的判断。 如果输出为“0”(即为结果错误),则把网络连接权值朝着减小综合输入加权值的方向调整,其目的在于使网络下次再遇到“A”模式输入时,减小犯同样错误的可能性。如此操作调整,当给网络轮番输入若干个手写字母“A”、“B”后,经过网络按以上学习方法
39、进行若干次学习后,网络判断的正确率将大大提高。这说明网络对这两个模式的学习已经获得了成功,它已将这两个模式分布地记忆在网络的各个连接权值上。当网络再次遇到其中任何一个模式时,能够做出迅速、准确的判断和识别。一般说来,网络中所含的神经元个数越多,则它能记忆、识别的模式也就越多。4.2神经网络的学习与训练人脑中一个典型神经元通过许多树突的精细结构,收集来自其它神经元的信息,神经元又通过轴突的一条长而细的轴突发出电活性脉冲。轴突分裂上千条分支,在每条分支末端,通过突触的结构把来自轴突的电活性变为电作用,从而使与之相连的各种神经元的活性受到抑制或兴奋。当一个神经元收到兴奋输入,而兴奋输入又比神经元的抑
40、制输入足够大时,神经元把电活性脉冲向下传到它的轴突,改变轴突的有效性,从而使一个神经元对另一个神经元的影响改变,便发生了学习行为。因此,可以认为神经网络学习的本质特征在于神经细胞特殊的突触结构所具有的可塑性连接,而如何调整连接权重就构成了不同的学习算法。通过向环境学习获取知识并改进自身性能是NN的一个重要特点。在一般情况下,性能的改善是按某种预定的度量通过调节自身参数(如权值)随时间逐步达到的。学习方式15(按照环境提供信息量的多少)有三种:1监督学习(有教师学习)为了使神经网络在实际应用中解决各种问题,必须对它进行训练,就是从应用环境中选出一些样本数据,通过不断地调整权矩阵,直到得到合适的输
41、入输出关系为止,这个过程就是对神经网络的训练过程,这种训练的过程需要有教师示教,提供训练数据,又称样本数据。在训练过程中又需教师的监督,故这种有教师的学习又称为监督式学习。有教师学习方法虽然简单,但是要求教师对环境和网络的结构应该比较熟悉,当系统复杂,环境变化时,就变得困难。为了适应环境变化就要重新调整加权值,这样,当学习到新知识的同时,也容易忘掉已学过的旧知识,这一些是有教师学习方法的缺点。2非监督学习(无教师学习)非监督学习时不存在外部教师,学习系统完全按照环境提供数据的某些统计规律来调节自身参数或结构(这是一种自组织过程),以表示出外部输入的某种固有特性(如聚类或某种统计上的分布特征)。
42、无教师学习的训练数据集中,只有输入而没有目标输出,训练过程神经网络自动地将各输入数据的特征提取出来,并将其分成若干类。经过训练好的网络能够识别训练数据集以外的新的输入类别,并相应获得不同的输出。显然,无教师的训练方式可使网络具有自组织和自学习的功能。3再励学习(强化学习)这种学习介于上述两种情况之间,外部环境对系统输出结果只给出评价信息(奖或惩)而不是给出正确答案。学习系统通过强化那些受奖的动作来改善自身的性能。4.3 BP神经网络4.3.1 BP算法自1985年Rumelhart提出BP算法16以来,神经网络的研究和应用已经迅速发展并渗透到各个学科,神经网络算法已不再是只供研究,而在实际的生
43、产中开始了广泛的应用。如:数据库系统的数据挖掘、产品的自动分捡系统的图像识别等。对应地在计算机辅助设计的软件开发中,神经网络算法的设计也越来越多。神经网络以其快速的并行处理能力和其强有力的学习能力而获得越来越广泛的重视,其中应用最多的是BP神经网络。BP学习算法,即反向传播(back propagation)学习算法是一种有导师的示例学习算法。这种学习算法在模式识别领域中,尤其在字符识别的研究中被广泛使用。其原因是BP算法学习规则的坚韧性和学习能力很强,当给定模式与BP网络学会的模式很相似时,BP网络能很好的完成识别任务。BP算法是一种有监督式的学习算法。其主要思想是:输入学习样本,使用反向传
44、播算法对网络的权值和偏差进行反复的调整训练,通过误差的反向传播,使输出的向量与期望向量尽可能地接近,当网络输出层的误差平方和小于指定的误差时训练完成,保存网络的权值和偏差。BP 算法由两部分组成:信息的正向传递与误差的反向传播。在正向传播过程中,输入信息从输入层经过隐含层逐层计算传向输出层,每一层神经元的状态只影响下一层神经元的状态。如果在输出层没有得到期望的输出,则计算输出层的误差变化值,然后转向反向传播,通过网络将误差信号沿着原来的连接通路反传回来,通过修改各层神经元的权值使得误差减小,直至达到期望目标。4.3.2 BP网络的一般学习算法BP网络是一种有监督的前馈运行的神经网络,它由输入层
45、i、隐含层h、输出层k以及各层之间的节点的连接权所组成。它又分为正向和反向传播两种,以下对各层进行详细介绍。1、 正向传播过程输入层输入值一般为样本各分量输入值,输出值一般等于输入值。隐含层对于节点j,其输入值为其前一层各节点输出值的加权和: (4.1)输出值 (4.2)式中称为激励函数或者作用函数。一般采用sigmoid函数: (4.3)式中称为阙值,称为温度系数。隐含层可为一层或者多层,但是随着隐含层的增多,网格的复杂程度也随之增加,学习速度减慢,另外网络的推导能力也有可能下降,即所谓的“over fitting”现象。网络隐含层以及节点数目的选取是BP网络学习算法有待解决的一个问题。输出
46、层输出层的输入与输出与隐含层类似,分别为: (4.4) (4.5)2、 反向传播过程BP学习算法的误差函数一般定义为实际输出与期望输出的均方误差和。通过使误差函数最小化的过程不断的改变权重,完成从输入到输出的非线性映射。设网络输入模式样本为,期望输出为 ,均方误差函数为: (4.6)而对于所有的学习样本,系统的均方误差为: (4.7)为了达到学习目的,要根据误差函数来相应地调整网络间的连接权值。一般来说经典的BP学习算法采用最快速梯度下降法调整权值,每次调整的增量为: (4.8)式中0<<1称为学习率。从(4.8)式可推出下列连接权值的修正量公式 (4.9)对于输出节点: (4.1
47、0)对于隐节点: (4.11)4.3.3 BP网络的设计BP网络的设计主要包括输入层,隐层,输出层及各层之间的传输函数几个方面。1、网络层数大多数通用的神经网络都预先预定了网络的层数,而BP网络可以包含不同的隐层。对多层BP神经网络,隐层层数至少为1层或1层以上,每个隐层的神经元个数至少为1个或1个以上,否则与多层网络的命题矛盾而不成立。2、输入层的节点数 网络的输入个数应等于应用问题的输入数,MATLAB的BP网络的建立是通过函数newff或newcf实现的.如图4.1所示的程序设计截图。图4.1使用newff函数建立一个新的BP神经网络3、网络数据的预处理17预处理方法有归一化处理、标准化
48、处理和主成分分析。常采用的是归一化处理,即将输入、输出数据映射到-1,1范围内,训练结束后再反映射到原数据范围。4、输出层的节点数输出层节点数取决于两个方面,输出数据类型和表示该类型所需要的数据大小。5、隐层的节点数根据经验,可以参考以下公式进行设计:或者 (4.12)(1)式中:n为隐层节点数; 为输入节点数; 为输出节点数;a为110之间的常数。(2)改变n,用同一样本集训练,从中确定网络误差最小时对应的隐层节点数。6、传输函数BP网络中传输函数常采用S(sigmoid)型函数.在某些特定情况下,还可能采用纯线性(Pureline)函数。7、训练方法及其参数选择18net.trainPar
49、am.show= ; %显示训练结果的间隔步数net.trainParam.epochs ; 最大训练步数net.trainParam.goal ; %训练目标误差net.trainParam.mu = ; %学习系数的初始值,Marquardt调整参数net.trainParam.mu_dec= ; %学习系数的下降因子net.trainParam.mu_inc= ; %学习系数的上升因子net.trainParam.mu_max= ; %学习系数的最大值net.trainParam.min_grad=;%训练中最小允许梯度值如图4.2本例中所用参数。图4.2本例所用参数通过以上处理后,将得
50、到的特征向量输入到设计好的神经网络进行测试,下面的图4.3和4.4分别给出了网络的某次训练过程及结果,由图可以看出结果还是很令人满意的。图4.3 BP网络的训练过程图4.4 BP网络的训练结果4.4 BP学习算法的局限性与对策BP学习算法解决了多层前馈网络的训练与非线性映射问题,在实际应用中具有重大意义,在应用BP学习算法的过程中,人们逐渐发现它存在的某些缺陷,存在局部极小值、学习速度慢、网络隐节点和初始权值的选取只能凭经验、新加入的样本要影响已经学完的样本,并且每个样本的输入样本的特征数目也要求必须相同;学习过程能否收敛,什么时候收敛已经学习后所生成的权重空间的分布状况等,这些至今还是一个未
51、知数。BP学习算法存在的局限性BP学习算法存在的局限性总结如下:(1)归纳能力基于BP学习算法的神经网络具有较强的归纳能力。这里,归纳是指当用一组同类型的样本集训练时,BP网络能将一些不相关的信息忽略掉,而学习样本集中共同的特征,通过这样的学习,BP网络很容易记住了这一类型的样本。然而,BP学习算法对不同类型微小特征差异的样本缺乏足够的归纳能力。(2)外推能力和归纳能力相对,BP网络的外推能力是指BP网络对一类样本训练完后,对其它非训练样本测试其识别能力。实验结果表明,外推能力与训练样本的种类和数量有关。只有将各种不同类型的充足的样本训练后,才能对各种样本的测试达到较好的推广能力。(3)学习速
52、度BP神经网络的学习过程是一种超大规模的反复的浮点数值运算过程,因此,无论从学习算法本身考虑,还是从使用的微机设备上考虑,学习速度一般是较慢的。(4)收敛性BP学习算法的收敛性至今没能用完整的理论来证明它。网络学习过程中极易陷入局部极小点。一旦网络的权重陷入一个极小点,无论是全局极小点还是局部极小点,学习均告终止。如果在该点的状态下所要求的问题解是正确的,那么,该点是局部的还是全局的极小点就显得不那么重要了。但若所求问题的解是不正确的,那么只有再次调整权值,直到找到另一个极小点对所求问题的解是正确时为止,即要逃离原来的局部极小点。(5)解释能力神经网络对自身解决问题的方式不能形成一个规范的推导
53、过程。它通过学习所形成的“自我认识”对人来说是透明的。这对有导师训练的BP学习算法而言,大大阻碍了指导人与被指导对象的交流。4.5 对BP算法的改进经典的BP算法采用梯度下降法。当误差曲面为窄长型时,该算法在谷的两壁跳来跳去,影响了网络的收敛速度。最普通的改进方法为附加动量法,将公式(4.9)改为: (4.13)式中称为动量因子。利用附加的动量项可以起到平滑梯度方向的剧烈变化。更进一步可以在学习过程中动态地调整和的值,使随系统总误差E不断的变化,以避免出现W取值过小,尤其是在接近系统最小值的时候。实验中发现,越大,学习速度会越快,但过大时会引起振荡效应;而取的过大可能导致发散,过小则收敛速度太慢;取0.20.5,取0.900.98时有较快的收敛速度。动态调整和值,收到良好效果。根据优化理论还有很多种优化方法。这些方法一般都可以应用到改进BP算法中。例如同伦方法、梯度法、共轭梯度法以及牛顿法。事实证明采用较好的优化方法可以提高网络的收敛速度、避免陷入局部极小。寻求一种适合BP算法使用的新的优化算法也是一个很有价值的研究课题。利用附加的动量项可以起到平滑梯度方向的剧烈变化。更进一步可以在学习过程中动态地调整和的值,使随系统总误差E不断的变化,以避免出现W取值过小,尤其是在接近系统最
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海市城市建设管理模拟13
- 吉林公务员面试模拟19
- 2024年房地产开盘活动合同范本
- 辽宁公务员面试模拟17
- 乌鲁木齐劳动合同范本2024年
- 2024年停薪留职协议合同书
- 个人承包施工安全协议书2024年
- 新解读《GBT 41184.1-2021土壤水分蒸发测量仪器 第1部分:水力式蒸发器》
- 2024年房屋修缮服务协议书
- 2024年保障就业协议
- 《大数据金融》考试复习题库(含答案)
- 三视图的形成及其对应关系
- (2024年)《工伤保险培训》ppt课件完整版
- GB/T 43824-2024村镇供水工程技术规范
- PCB制造成本参数
- 《苹果公司发展史》课件
- 职业规划与就业指导讲座
- 40米落地式脚手架专项施工方案
- 四川省成都市第十八中学2022-2023学年八年级下学期期中英语试题
- 【川教版】《生命.生态.安全》六上第9课 远离烟酒 课件
- 冬季树木防寒技术
评论
0/150
提交评论