1、中 南 大 学本科生毕业论文(设计)题 目 基于神经网络手写数字 识别系统设计和实现 目 录摘要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 数字
2、特征向量说明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程序设
3、计245.5 试验数据及结果分析26结论27参考文件28致谢30附录31摘 要手写体数字识别是模式识别中一个很关键和活跃研究领域,数字识别也不是一项孤立技术,它所包含问题是模式识别其它领域全部无法回避;应用上,作为一个信息处理手段,字符识别有宽广应用背景和巨大市场需求。所以,对数字识别研究含有理论和应用双重意义。人工神经网络识别方法是多年该研究领域一个新方法,该方法含有部分传统技术所没有优点:良好容错能力、分类能力强、并行处理和自学习能力,而且是离线训练和在线识别。这些优点使它在手写体字符识别中能对大量数据进行快速实时处理,并达成良好识别效果。因为手写体数字识别难于建立正确数学模型,所以本文采
4、取BP神经网络对这一问题进行处理。神经网络模式识别一个关键步骤是预处理和特征提取,对于手写体数字识别,本文采取了一个基于结构特征和统计特征提取方法,并用程序实现了这一特征提取过程。经过测试,本识别系统对于较规范手写体数字识别达成了很好识别效果。关键词: 手写体数字识别,特征提取,人工神经网络,MATLABABSTRACTHandwritten character recognition is a very important and active research in pattern recognition. Theoretically, it is not an isolated tech
5、nique. 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 sign
6、ificance.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 w
7、ell 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
8、 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 select
9、ion 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是六十年代初快速发展起来一门学科。因为它研究是怎样用机器
10、来实现人(及一些动物)对事物学习、识别和判定能力,所以受到了很多科技领域研究人员注意,成为人工智能研究一个关键方面。一个模式识别系统基础职能是对系统所要处理模式归属于哪一类做出判别,从该系统模式输入到系统做出判别之间,关键包含信息检测、预处理、特征提取和分类几大步骤。字符识别是模式识别领域中一个很活跃分支。首先是因为问题本身难度使之成为一个极具挑战性课题;其次,是因为字符识别不是一项孤立应用技术,其中包含模式识别领域中其它分支全部会碰到部分基础和共性问题。从50年代开始,很多研究者就在这一研究领域开展了广泛探索并为模式识别发展产生了主动影响。字符识别,从采取输入设备来分,可分为脱机识别(又称为
11、光学字符识别Optical Character Recognition ,OCR)和联机识别,脱机字符又分为印刷体和手写字符识别,从对书写者要求来分,手写字符又分为限制性和非限制性手写字符识别。在联机手写字符识别中,计算机能够经过和计算机相连手写输入设备取得输入字符笔划次序、笔划方向和字符形状,所以相对OCR来说它更轻易识别部分。但联机字符识别有一个关键不足就是要求输入者必需在指定设备上书写,然而大家在生活中大部分书写情况是不满足这一要求,比如大家填写多种表格资料,开具支票等。假如需要计算机去认识这些已经成为文字东西,就需要OCR技术。比起联机字符识别来,OCR不要求书写者在特定输入设备上书写
12、,它能够和日常一样书写,所以OCR应用更为广泛。OCR所使用输入设备能够是任何一个图像采集设备,如扫描仪、数字相机等。经过使用这类采集设备,OCR系统将书写者已经写好文字作为图像输入到计算机中,然后由计算机去识别。因为OCR输入只是简单一副图像,它就不能像联机输入那样比较轻易从物理上取得字符笔划次序信息,所以OCR是一个更具挑战性问题。脱机字符识别(OCR)分为印刷体OCR和手写OCR。印刷体字符比手写体字符少了随机性,它识别相对轻易些,难点已经不在识别步骤,而在于字符分割上。印刷体识别错误绝大多数全部是错误分割引发3。对于手写体OCR,不管是联机还是脱机识别,手写体识别全部要经历由限制性手写
13、体识别到非限制性手写体识别两个阶段。本文将以手写体数字为代表,讨论非限制性手写体字符识别。脱机字符识别研究最早始于上个世纪六十年代,是为了应付汉英翻译需要。八十年代后研究重心转移到脱机手写字符识别上。对于小类别数字符集如数字、字母识别,已经能够做到对书写不加任何限制。非限制性手写OCR研究一直以阿拉伯数字为主导。这事因为,第一,十个阿拉伯数字是全世界一套通用字符。第二,在数字很多应用场所,如报表、账单、支票等,手写体还难以被印刷体所替换,而且对识别可靠性要求极高。三,因为类别数少,所以模式识别中很多方法研究均能够以数字识别作为试验背景。对脱机手写体字符研究,大家由简单集成笔画密度、笔画方向和背
14、景特征方法过渡到特征匹配方法,进而过渡到结合神经网络方法,伴随对识别可靠性要求提升,九十年代以后,多分类器集成方法成为了一个研究关键。1.2神经网络在手写体数字识别中应用现在,伴随计算机快速发展,性能价格比不停提升,模式识别技术已经从理论探讨为主发展到大量实际应用,大家将更多注意力开始转向那些用于语音、图像、机器人和人工智能等模式识别实际问题。处理这些问题关键是需要进行复杂而庞大实时数据处理,而现有计算机存贮容量及计算复杂性局限,使得真正实时化应用受阻。这种面向实时应用模式识别问题促进大家开始将并行处理神经网络4应用到模式识别,而神经网络模式识别技术又将模式识别实时应用推进了一大步,手写体数字
15、识别就是这种应用一个很关键领域。手写体数字识别是一项极具研究价值课题,伴随神经网络1和模糊逻辑技术发展,大家对这一问题研究又采取了很多新方法和手段,也使得这一古老课题焕发出新生命力5。现在国际上有相当多学者在研究这一课题,它包含了模式识别领域中全部经典问题:数据采集、处理及选择、输入样本表示选择、模式识别分类器选择和用样本集对识别器有指导训练。人工神经网络为手写体数字识别提供了新手段。正是神经网络所含有这种自组织自学习能力、推广能力、非线性和运算高度并行能力使得模式识别成为现在神经网络最为成功应用领域。二十多年来,大家在数字识别领域做了大量研究工作,所提出多种方法在印刷体和手写印刷体数字识别方
16、面已经取得了很好成绩,识别率稳定在96%左右。不过自由手写体数字识别工作现在并不成熟,依旧是文字识别中最有挑战性课题之一。字符识别长久以来全部是采取传统识别方法,对印刷体字符识别率通常只是稳定在96左右,不能深入提升;而对手写体字符识别,其研究还处于探索阶段,其识别率还相当低,所以,为了提升识别率,就必需寻求新方法和路径。进入九十年代以来,人工神经网络(ANN)技术发展十分快速,它含有模拟人类部分形象思维能力,是一个模拟人脑学习、记忆、推理等认知功效新方法。尤其是它信息并行分布式处理能力和自学习功效等显著优点,更是激起了大家对它极大爱好。人工神经网络是由部分类似人脑神经元简单处理单元相互连接而
17、成复杂网络。已涌现出很多不一样类型ANN及对应学习算法,其中BP(或EBP-Error Back Propagation)网络及学习算法得到了广泛关注和研究,并在数字识别方面取得了很多有意义应用结果。1.3 论文结构介绍本毕业设计关键处理以图像形式存在手写体数字识别问题。整体分为三个部分,第一部分是图像预处理,第二部分是对手写体数字结构特征提取,第三部分是设计神经网络并对前面得到样本数据进行学习和训练。本文经过图像预处理和数字特征提取以后基于神经网络判别方法,然后结合使用了MATLAB工具箱中提供人工神经网络函数设计了一个手写数字识别新方法。试验表明,该方法能够取得很好识别率。第二章 手写体数
18、字识别2.1手写体数字识别通常方法及难点字符识别问题研究已经有几十年历史了,但时至今日,字符识别研究结果远未达成大家所期望,这其中有理论研究和技术实现等多方面原因. 在理论方面,我们对人类视觉认知机理研究还只是初步,远未达成深入和透彻水平。在技术方面,我们使用计算机运算水平和存放能力, 比起人脑信息存放和处理能力有很大差距. 所以,现在文字识别只能建立在现有理论基础上,使用现有技术来研究和处理问题。手写体数字识别是字符识别一个分支,问题即使简单,但却有较大实用价值。数字类别即使只有十种,笔划又简单,其识别问题表面上是一个较简单分类问题。但实际上,即使多种新识别算法不停推出。其识别率和误识率仍距
19、实用有相当距离。手写阿拉伯数字含有变形多差异大特点,字形和书写人职业、文化程度、书写习惯和所使用笔墨纸张所处环境等全部相关,所以手写体数字变形多、规律复杂。具体地说有两个:一是0 9 十个数字中,其中部分数字字形相差不大,使得正确区分一些数字相当困难;二是数字即使只有十种,但同一数字写法千差万别。不一样人写出同一个数字全部有差异,即使同一个人在不一样时候也会有不一样写法。笔划书写次序常常发生改变,所以极大地增加了匹配难度。通常人写字时全部不会一笔一划书写,为了节省时间,连笔字是自然而然事情,对于结构识别而言,连笔首先使笔划种类大大增加,甚至达成难以归纳程度;其次,连笔又使得笔段抽取难度大增,因
20、为连笔会增加部分冗余笔段,连笔造成畸变又会使笔段方向严重离散。总而言之,连笔不管对于基于哪种基元结构识别全部是严峻挑战。这是造成手写数字识别过程复杂、达成较高识别率困难根本原因。图2.1多种多样手写体数字。图2.1 多种多样手写体数字2.2 图像预处理概述预处理6是字符识别关键一环, 它把原始图像转换成识别器所能接收二进制形式。要识别手写体数字首先要对其字符图像进行预处理。预处理关键目标是去除字符图像中噪声、压缩冗余信息, 得到规范化点阵, 为识别做好准备。这就要求预处理在消除图像中和识别无关原因时尽可能保持原图像字符特征。手写体数字图像预处理过程,就通常情况而言,关键经过图2.2所表示多个步
21、骤。不一样识别方法对预处理项目和要求有所不一样。如结构识别方法7,对字符规范化能够从简,甚至不需要。有识别方法对细化要求很高,有则不需要细化。本章中将分别对平滑去噪、二值化、归一化和细化分小节讨论。原始图像 平滑去噪二值化 归一化细 化图2.2 图像预处理基础步骤2.3 图像预处理处理步骤2.3.1 图像平滑去噪手写体数字因为其随机性大,断笔,连笔、飞白情况时常发生,为了降低灰度图像部分不该出现黑白噪声,能够采取图像平滑去噪技术。进行图像平滑处理是一个空域滤波器8,空域滤波器通常可分为线性滤波和非线性滤波两类。线性滤波器设计常基于对傅立叶变换分析,如均值滤波器;非线性滤波器则通常直接对邻域进行
22、操作,如中值滤波器。以下为采取中值滤波对图像进行平滑处理部分代码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 二值化处理图像二值化就是把图像中像素依据一定标准划分成两种颜色。在这个系统中就是依据像素灰度值处理成黑白两种颜色。对数字字符图像二值化后要能真实再现原数字, 其基础要求为:笔画中不出现空白点, 二值化笔画基础保持原来文字结构特征。图像二值化关键在于阈值选择。图像二值
23、化有很多成熟算法, 有整体阈值二值化法、局部阈值二值化法、动态阈值二值化法等。二值化关键在于阈值选择,阈值选择关键分为整体阈值法、局部阈值法和动态阈值法。三类阈值选择是一个比较复杂问题,有能够由计算机自动选择,有需人工干预。基于字符识别扫描得到图像目标和背景灰度级有显著差异,字符图像二值化可采取整体阈值法中双峰法,该方法简单易行,针对目标和背景灰度级有显著差异图像,其灰度直方图分布呈双峰状,两个波峰分别和图像中目标和背景相对应,波谷和图像边缘相对,应该在分割阈值在谷底时,图像分割可取得最好效果。下面给出我在设计过程中二值化以后效果图图2.3。图2.3 二值化处理2.3.3 归一化本文使用数字图
24、像全部是在 Windows XP 画图板中手写输入。因为10 14像素图像(10 是图像宽度,14 是图像高度)较小,书写时难度较大。我们期望书写时尽可能不限制图像大小,然后经过计算统一尺寸,使之含有同一高度,同一宽度,称之为归一化10。在数字图像处理中有部分比较成熟缩放图像算法,比如 MATLAB 使用 imresize函数来改变图像大小。它调用格式为 I2=imresize(I,rate),I 存放是原始图像数组,rate 是改变率,I2 存放是改变后图像数组。比如 rate=0.5 时,高度和宽度全部将缩小二分之一,原始图像也就缩小了二分之一。这一算法缺点是只能将原始图像高度和宽度同时改
25、变相同百分比,假如我们期望将原始图像变成10 1 4像素图像,该算法就无法处理了。显然这种算法不适合处理我们面临问题。本文提出了一个新归一化算法,能够将不一样尺寸二值图像统一为1014 像素图像。具体算法是:先得到原始图像高度和宽度,分别和系统要求得到高度和宽度作比较,得出要变换系数,然后依据得到系数计算每一个原始像素点归一化后在新图像中位置,最终计算新图像中每个像素点值,方法是:求出原始像素点及其周围三个点像素值平均值,最终用函数 floor.m 取整,调用格式为 B=floor(A),B 取小于或等于 A 整数。归一化算法程序代码以下:ans=imread(0.bmp); %读入图片 0.
26、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 细化很多字符识别方法在预处理中全部很重视对二值化字
27、符细化处理。直观来说,细化就是将二值化字符点阵逐层剥去轮廓上点,变成笔画宽度只有一个像素宽度字符骨架图形。之所以需要细化处理,是因为二值化点阵图形中,对识别有价值文字特征信息关键集中在字符骨架上,细化后字符骨架既保留了原字符绝大部分特征,又利于特征提取。细化后骨架存放量比原来二值化字符点阵要少得多,降低了处理工作量。手写体数字细化基础要求以下:第一、保持原有字符笔画连续性,不能因为细化造成笔画断裂。第二、要细化为单线,即笔画宽度为一个像素。第三、细化后骨架应尽可能是原来笔画中心线。2.4 小结预处理是手写数字识别中不可缺乏组成部分,对图像预处理好坏直接影响到识别结果, 关系到识别算法好坏。文中
28、首先对待识别数字预处理进行了介绍,包含平滑去噪、二值化、归一化、细化等图像处理方法,经过这些预处理步骤, 对图像中部分变形信息进行了修正, 消除图像中和识别无关原因, 而且尽可能保持原图像字符特征, 在试验中提升了数字识别网络性能。第三章 特征提取3.1 特征提取概述模式识别使用特征来区分不一样种类。所以,特征提取是模式识别系统关键部分。特征提取目标是找到某种变换,将N维或N*N维模式类别空间转换到维数小得多M维特征空间,并同时保留模式识别所需要大部分信息。经过特征提取,模式分类能够在维数低得多空间上进行,从而降低了计算复杂度。而且,对给定训练样本进行特征提取能够取得更正确分类函数描述,以结构
29、更可靠分类规则。一样对于手写体数字识别,特征提取能够降低字符信息量、去除无用冗余信息,提升识别系统效率,一直是字符识别领域中关键点。特征提取目标是从原始数据中抽取出用于区分不一样类型本质特征。不管是识别过程还是学习过程,全部要对研究对象固有、本质关键特征或属性进行量测并将结果数值化,形成特征矢量。手写体数字识别中,常见特征有结构特征和统计特征。结构特征和统计特征各有其优点:结构特征能描述字符结构,对于不一样人书写字符,形体不一样,但结构全部是一致,所以结构特征能克服手写字体因人而引发畸变;统计特征最大优点是对环境噪音不敏感,如若字符背景噪音通常全部是呈高斯分布,用统计特征进行识别可对此影响忽略
30、不计。本章将用两小节分别对结构特征和统计特征进行叙述。 3.2 统计特征对复杂图像信号作小波变换11,进行多分辨率分析,已经成为图像信号分析和处理常见方法。因为小波变换结果表现为大量小波分解系数,这些系数包含了系统或信号本身大量和多样特征信息。假如图像信号关键信息能以一个或一组特征量来表征,我们就能够愈加直观、有效和方便地对多种随机信号进行信息提取、信号检测、特征识别。统计特征分为宏观特征信息和局部特征信息。宏观特征信息是需要在整幅图像上获取特征信息。传统全局特征关键包含:全局变换特征(对字符图像进行多种变换,利用变换系数作为特征向量,常见变换有Fourier变换、K-L变换、小波变换等)、不
31、变矩特征、全局笔划方向特征等;常见局部统计特征有:局部笔划方向特征、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对字符进行结构分析从而达成识别目标,是一个很直观方法。字符由各个子部件组成,逐层分析字符图像结构
32、,依据各元素属性、数量及其相互关系,便可判定待识字符。和统计方法相比,结构分析不重视特征绝对位置,只考虑特征相对关系,所以对书写风格改变不敏感,其缺点在于特征提取和模板建立全部十分困难,匹配算法也比较复杂,神经网络应用填补了这个缺点,只要提取出合适结构向量作为神经网络输入向量,会得到令人满意识别输出结果。以下具体介绍。3.3.1 结构特征提取首先对经预处理后图像进行分割,图3.1所表示。 图3.1 图像分割对图像分割后,结构特征提取算法以下:(1)对细化后数字图像取竖直三条直线,分别取在5/12,1/2,7/12处,记下这三条竖直直线和数字笔段交点数。(2)再取水平三条直线,分别取在1/3,1
33、/2,2/3处, 分别记下这三条水平直线和数字笔段交点数。(3)再取对角两条直线, 分别记下这两条对角直线和数字笔段交点数。3.3.2 笔划特征提取经细化后数字图像其特征较为稳定,且笔划简单,所以对其抽取基础结构组件能反应数字本质特征,从而可快速有效地识别数字,并达成很好分类效果。数字端点图3.2所表示。图3.2数字端点对图像分割后,结构特征提取算法以下:(1)按从上到下,从左到右次序扫描预处理后图像并选择黑像素点P;(2)计算像素P8邻域之和N;(3)若N=1,则像素P为端点,端点计数器加一;(4)反复步骤(1)-(3),直到遍历整个图像。3.3.3 数字特征向量说明依据上述特征提取方法,本
34、系统中特征矢量由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,
35、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
36、,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 神经网络介绍及其工作原理人智能来自于大脑,大脑是由大量神经细胞或神经元组成。每个神经元能够看作为一个小处理单元,这些神经元根据某种方法相互连接起来,组成了大脑内部生理神经元网络。她们中各神经元之间连接强弱,根据外部激励信号作自适应改变,而每个神经元又伴
37、随接收到多个激励信号综合大小展现兴奋或抑制状态。4.1.1神经网络概述人工神经元网络是生理学上真实人脑神经网络结构和功效,和若干基础特征某种理论抽象、简化和模拟而组成一个信息处理系统。从系统见解看,人工神经元网络是由大量神经元经过极其丰富和完善联接而组成自适应非线性动态系统。因为神经元之间有着不一样连接方法,所以组成不一样结构形态神经网络14系统是可能。据现在了解,大脑学习过程就是神经元之间连接强度随外部激励信息做自适应改变过程,大脑处理信息结果确由神经元状态表现出来。显然,神经元是信息处理系统最小单元。即使神经元类型有很多个,但其基础结构相同。4.1.2神经网络工作原理人工神经网络首先要以一
38、定学习准则进行学习,然后才能工作。现以人工神经网络对手写“A”、“B”两个字母识别为例进行说明,要求当“A”输入网络时,应该输出“1”,而当输入为“B”时,输出为“0”。 所以网络学习准则应该是:假如网络做犯错误判决,则经过网络学习,应使得网络降低下次犯一样错误可能性。首先,给网络各连接权值给予(0,1)区间内随机值,将“A”所对应图像模式输入给网络,网络将输入模式加权求和、和门限比较、再进行非线性运算,得到网络输出。在此情况下,网络输出为“1”和“0”概率各为50%,也就是说是完全随机。这时假如输出为“1”(结果正确),则使连接权值增大,方便使网络再次碰到“A”模式输入时,仍然能做出正确判定
39、。 假如输出为“0”(即为结果错误),则把网络连接权值朝着减小综合输入加权值方向调整,其目标在于使网络下次再碰到“A”模式输入时,减小犯一样错误可能性。如此操作调整,当给网络轮番输入若干个手写字母“A”、“B”后,经过网络按以上学习方法进行若干次学习后,网络判定正确率将大大提升。这说明网络对这两个模式学习已经取得了成功,它已将这两个模式分布地记忆在网络各个连接权值上。当网络再次碰到其中任何一个模式时,能够做出快速、正确判定和识别。通常说来,网络中所含神经元个数越多,则它能记忆、识别模式也就越多。4.2神经网络学习和训练人脑中一个经典神经元经过很多树突精细结构,搜集来自其它神经元信息,神经元又经
40、过轴突一条长而细轴突发出电活性脉冲。轴突分裂上千条分支,在每条分支末端,经过突触结构把来自轴突电活性变为电作用,从而使和之相连多种神经元活性受到抑制或兴奋。当一个神经元收到兴奋输入,而兴奋输入又比神经元抑制输入足够大时,神经元把电活性脉冲向下传到它轴突,改变轴突有效性,从而使一个神经元对另一个神经元影响改变,便发生了学习行为。所以,能够认为神经网络学习本质特征在于神经细胞特殊突触结构所含有可塑性连接,而怎样调整连接权重就组成了不一样学习算法。经过向环境学习获取知识并改善本身性能是NN一个关键特点。在通常情况下,性能改善是按某种预定度量经过调整本身参数(如权值)随时间逐步达成。学习方法15(根据
41、环境提供信息量多少)有三种:1监督学习(有老师学习)为了使神经网络在实际应用中处理多种问题,必需对它进行训练,就是从应用环境中选出部分样本数据,经过不停地调整权矩阵,直到得到适宜输入输出关系为止,这个过程就是对神经网络训练过程,这种训练过程需要有老师示教,提供训练数据,又称样本数据。在训练过程中又需老师监督,故这种有老师学习又称为监督式学习。有老师学习方法即使简单,不过要讨老师对环境和网络结构应该比较熟悉,当系统复杂,环境改变时,就变得困难。为了适应环境改变就要重新调整加权值,这么,当学习到新知识同时,也轻易忘记已学过旧知识,这部分是有老师学习方法缺点。2非监督学习(无老师学习)非监督学习时不
42、存在外部老师,学习系统完全根据环境提供数据一些统计规律来调整本身参数或结构(这是一个自组织过程),以表示出外部输入某种固有特征(如聚类或某种统计上分布特征)。无老师学习训练数据集中,只有输入而没有目标输出,训练过程神经网络自动地将各输入数据特征提取出来,并将其分成若干类。经过训练好网络能够识别训练数据集以外新输入类别,并对应取得不一样输出。显然,无老师训练方法可使网络含有自组织和自学习功效。3再励学习(强化学习)这种学习介于上述两种情况之间,外部环境对系统输出结果只给出评价信息(奖或惩)而不是给出正确答案。学习系统经过强化那些受奖动作来改善本身性能。4.3 BP神经网络4.3.1 BP算法自1
43、985年Rumelhart提出BP算法16以来,神经网络研究和应用已经快速发展并渗透到各个学科,神经网络算法已不再是只供研究,而在实际生产中开始了广泛应用。如:数据库系统数据挖掘、产品自动分捡系统图像识别等。对应地在计算机辅助设计软件开发中,神经网络算法设计也越来越多。神经网络以其快速并行处理能力和其强有力学习能力而取得越来越广泛重视,其中应用最多是BP神经网络。BP学习算法,即反向传输(back propagation)学习算法是一个有导师示例学习算法。这种学习算法在模式识别领域中,尤其在字符识别研究中被广泛使用。其原因是BP算法学习规则坚韧性和学习能力很强,当给定模式和BP网络学会模式很相
44、同时,BP网络能很好完成识别任务。BP算法是一个有监督式学习算法。其关键思想是:输入学习样本,使用反向传输算法对网络权值和偏差进行反复调整训练,经过误差反向传输,使输出向量和期望向量尽可能地靠近,当网络输出层误差平方和小于指定误差时训练完成,保留网络权值和偏差。BP 算法由两部分组成:信息正向传输和误差反向传输。在正向传输过程中,输入信息从输入层经过隐含层逐层计算传向输出层,每一层神经元状态只影响下一层神经元状态。假如在输出层没有得到期望输出,则计算输出层误差改变值,然后转向反向传输,经过网络将误差信号沿着原来连接通路反传回来,经过修改各层神经元权值使得误差减小,直至达成期望目标。4.3.2
45、BP网络通常学习算法BP网络是一个有监督前馈运行神经网络,它由输入层i、隐含层h、输出层k和各层之间节点连接权所组成。它又分为正向和反向传输两种,以下对各层进行具体介绍。1、 正向传输过程输入层输入值通常为样本各分量输入值,输出值通常等于输入值。隐含层对于节点j,其输入值为其前一层各节点输出值加权和: (4.1)输出值 (4.2)式中称为激励函数或作用函数。通常采取sigmoid函数: (4.3)式中称为阙值,称为温度系数。隐含层可为一层或多层,不过伴随隐含层增多,网格复杂程度也随之增加,学习速度减慢,另外网络推导能力也有可能下降,即所谓“over fitting”现象。网络隐含层和节点数目标选择是BP网络学习算法有待处理一个问题。输出层输出层输入和输出和隐含层类似,分别为: (4.4) (4.5)2、 反向传输过程BP学习算法误差函数通常定义为实际输出和期望输出均方误差和。经过使误差函数最小化过程不停改变权重,完成从输入到输出非线性映射。设网络输入模式样本为,期望输出为 ,均方误差函数为: