基于改进BP神经网络的数字识别
2024-10-18
来源:威能网
第19卷 第3期 V01.19 No.3 电子设计工程 Electronic Design Engineering 2011年2月 Feb.201l 基于改进BP神经网络的数字识别 王婷,江文辉,肖南峰 (华南理工大学计算机科学与工程学院,广东广州510006) 摘要:针对BP(Back Propagation)神经网络易陷入局部极小、收敛速度慢的缺点,提出了一种新的BP神经网络改 进算法。与标准BP算法比较,该系统通过结合附加动量法和自适应学习速率形成新的BP改进算法。附加动量法 虽然可以使BP算法避免陷入局部极小,但是对初始值的选取比较敏感,而且选取合适的学习速率比较困难。而自 适应学习速率法可以自动把学习速率调整到一个合适的数值。也可以加快网络的收敛速度,但不能避免陷入局部 极小。通过将两者结合起来形成新的改进算法,既可以避免陷入局部极小又可以加快网络的收敛速度。并在此基础 上设计一个基于BP神经网络的数字识别系统,此系统可以作为核心部分应用到诸如票据等数字识别中去。实验 结果表明。该方法成功的避免了BP算法陷入局部极小.而且收敛速度比标准BP算法提高了l7.5倍。 关键词:BP神经网络:数字识别:附加动量法;自适应学习速率 中图分类号: rP31 文献标识码:A 文章编号:1674—6236(2011)03—0108—05 Numerical-recognition based on improved BP neural network WANG Ting,JIANG Wen-hui,XIAO Nan-feng (School ofComputer Science&Engineering,South China University ofTechnology,Guangzhou 510006,China) Abstract:In this paper,a new improved BP(Back Propagation)algorithm is presented,because BP neural network can easily fall into local minimum and slow convergence.Compared to the standard BP,this algorithm integrated the additional momentum method with the adaptive leaming rate method.The BP algorithm could avoid falling into local minimum because of the additional momentum method,but this method was sensitive to the initial values,and it was also difficult to choose the appropriate learning rate.The adaptive learning rate method could adjust the learning rate to an appropriate value automatically and improve the convergence speed of the network,but it could not get rid of local minimum.By integrating these two methods,this new algorithm could get rid of local minimum and improve the convergence speed. According to this algorithm,a numerical recognition system based on BP neural network was designed.This system could be put into the applieation of numerical recognition such as bill system.Experiments demonstrate it that BP algorithm can successfully avoid falling into local minimum,and the convergence rate increases seventeen point five times than the standard BP algorithm. Key words:BP(back propagation)neural network;numerical recognition;additional momentum method;adaptive learning rate BP神经网络是多层前馈网络,是迄今为止应用最广泛 的神经网络.具有很强的非线性逼近能力以及自适应、自学 习能力。但是基本BP算法是基于误差梯度下降的算法,对大 多数实际应用而言收敛太慢,针对这些不足本文提出了一种 网络识别也成为神经网络最成功和最有前途的应用领域之 一。数字识别是一个经典的模式识别问题,有着重大的应用 价值和理论价值。数字识别前景广阔,广泛应用于报表中数 字的识别、车牌的数字识别和票据的识别等。涉及到交通、银 新的BP改进算法 。 神经网络模式识别方法是近几年兴起的模式识别领域 的一个新的研究方向。神经网络具有很强自学习性、自组织 性、容错性、高度非线性、高度鲁棒性、联想记忆功能和推理 意识功能等,采用神经网络进行模式识别,突破了传统模式 识别技术的束缚.开辟了模式识别发展的新途径。同时神经 收稿日期:2010-09—08 稿件编号:201009013 行、教育和邮政等领域.实现数字的自动识别给人们提供了很 大的方便.因此本文充分利用神经网络的特点,用改进后的 BP神经网络来实现一个数字识别系统。 1 BP神经网络的基本原理 BP神经网络是一种神经网络学习算法,全称是基于误 差反向传播算法的人工神经网络,是目前应用最广泛的神经 基金项目:国家自然科学基金与中国民用航空总局联合资助项目(60776816);广东省自然科学重点基金(251064101000005) 作者简介:王婷(1988一),女,山东泰安人,硕士研究生。研究方向:智能计算与计算机应用。 -108- 王婷,等基于改进BP神经网络的数字识别 诸误差中的最大者E眦代表网络的总输出误差,实用中的更 多采用均方根误差 网络模型之一。BP网络能学习和存贮大量的输入一输出模 式映射关系,而无需事先揭示描述这种映射关系的数学方程. 在人工神经网络的实际应用中,大多数的神经网络模型是采 用BP网络和它的变化形式。 BP神经网络模型拓扑结构包括输人层、隐层和输出层, 1//古骞c , 作为网络的总误差。 4)计算各层误差信号 应用式(3)和式(4)计算以和 如图l所示。 输入层 隐层 输出层 图1 BP神经网络模型拓扑结构 Fig.1 Topological structure of BP neural network model BP神经网络的基本思想是【l1:正向传播时,模式作用于 输人层.输入层各个单元对应于输入模式向量的各个元素, 经隐层处理后传向输出层。若输出层未能得到期望的输出, 则转人误差的逆向传播阶段,将输出误差按某种形式通过 隐层向输入层逐层返回,并分配给各层的所有单元,从而获 得各层单元的参考误差或称误差信号,以作为修改各单元 权值的依据。这种信号正向传播与误差逆向传播的各层权 矩阵的修改过程是周而复始地进行的.周而复始的信息正向 传播和误差反向传播过程是各层权值不断调整的过程.也 是神经网络的学习训练的过程,此过程一直进行到网络输 出的误差减少到可以接受的程度,或者进行到预先设定的 学习次数为止。 2 BP算法的程序实现 BP算法的程序实现的具体步骤如下目: 1)初始化对权值矩阵 (位于输入层到隐层之间)、W (位于隐层到输出层之间)赋随机数,将样本模式计数器P和 训练次数计数器q置为l,误差E置0,学习率J,7设为0~1内 的小数,网络训练后达到的精度 设为一个正的小数。 2)输入训练样本对,计算各层输出 用当前样本 、d 对向量数组 (输入向量)、d(期望输出向量)赋值,用式(1) 和式(2)计算】,(隐层输出向量)和D(输出层输出向量)中各 分量。 ∑ 辨) j=l,2….,m (1) =0 D ∑ ) k=l,2,...,f (2) =0 3)计算网络输出误差设共有P对网络样本,网络对于不 厂丁————一 同的样本使用不同的误差 =、/ ( 一 )。,可将全部样本 输出误差的平方( ) 相加再开方,作为总输出误差,也可用 =( 一 ) (1- ) (3) k=( 8 ) (1 ) (4) 5)调整各层权值应用式(5)和式(6)计算W、 中各 分量。 -△ = =叼( 一0 )D (1—0 ) (5) = F叼( ) (1 ) . (6) 6)检查是否对所有样本完成一次轮训 若p<P,计数器 P、q增1,返回步骤2),否则返回步骤7)。 7)检查网络总误差是否达到精度要求 例如当用 腿 作为网络的总误差时,若满足E懈< ,训练结束,否则 置 0,P置l,返回步骤2)。 3 BP神经网络的改进 3.1 BP算法的缺陷 将BP算法用于具有非线性转移函数的3层前馈网络, 可以以任意精度逼近任何非线性函数,这一非凡优势使3层 前馈网络得到越来越广泛的应用.然而标准的BP算法在应用 中暴露出不少内在的缺陷: 1)误差下降缓慢,调整时间长,迭代次数多,影响收敛速 度,造成收敛速度慢,若加快收敛速度易产生振荡。 2)存在局部极小问题,但得不到全局最优。训练会因陷入 某个局部极小点而不能自拔,使训练难以收敛于给定的误差。 3.2 BP算法的改进 由于传统的BP算法存在着以上问题,国内外已提出不 少有效的改进算法【31,下面两种是既简单又有效的改进方法: 1)增加动量项 一些学者指出,标准BP算法在调整权 值时,只按第n次迭代是误差的梯度降方向调整,而没有考虑 第n次迭代前的梯度方向,从而常使训练过程发生震荡,收敛 缓慢。为了提高网络的训练速度,可以在权值调整公式中增加 一动量项。动量法的权值调整的具体做法是:将上一次权值调 整量的一部分加到本次误差计算所得到的权值调整量上,作 为本次实际权值调整量.增加了动量项的权值调整公式为: △ ( )=7 (n) l(n)+ △ (n-1) (7) 式中 为动量常数(0< <1),通常取0.9左右,Aw (n)为本次 应得权值修正量,Aw (n一1)为上次权值修正量。增加动量项 降低了网络对误差曲面局部调节的敏感性,从而有效地限制 了网络陷入局部极小。 2)自适应调整学习率学习率也称为步长,在标准的BP 算法定为常数,然而在实际应用中,很难确定一个从始至终 都合适的最佳学习率。从误差曲面可以看出,在平坦区域内 一l09- 《电子设计工程}2011年第3期 学习率太小会使训练次数增加,因而希望增大学习率;而在 误差变化剧烈的区域,学习率太大会因调整量过大而跨过较 4.1特征提取 4.1.1粗网格特征提取 窄的“坑凹”处,使训练出现震荡,反而使迭代次数增加。为了 加速收敛过程,一个较好的思想是自适应改变学习率,使其 该大时增大,该小时减小。下面是本文所使用的调节学习速 率的方法: 特征提取是模式识别中的核心部分.如何取得合适的字 符特征是关系到识别率高低的关键。 粗网格特征同是属于统计特征中的局部特征,又称局部 灰度特征。通常粗网格特征提取方法是先把待识别字符进行 f 1.1叼(n一1) S(n)<0.95 S(n一1)1 大小和位置归一化后再等分为Ⅳ×Ⅳ个网格.然后依次统计 (n)={0.7 ̄(n-1) s(n)>s(n一1)} (8) 各网格内的黑像素的数量,从而取得一个以数值表示的Ⅳ×J7\, I田(n一1) 其他 J 其中S为误差平方和。由此可见,自适应调整学习速率 法的初始步长即使为0.9网络也可以很快收敛。这就是自适 应调整学习速率的优势所在。 3)新的改进算法 上面两种改进方法都能很好的改进 基本BP算法,但是各自又存在不足之处。附加动量法虽然能 避免陷入局部极小,但对于学习速率的选取还是比较敏感 的,如果学习速率选取过大,虽然可以使网络的收敛速度加 快,但是又可能会使权值的修正量过大以致网络不收敛,而 选取过小,收敛速度就会变慢。自适应调整学习速率虽然能 加快网络的收敛速度,但不能有效地避免网络陷入局部极 小。因此本文通过结合以上两种方法来改进基本BP算法 , 互补不足,这样网络对初始学习速率的选取就不会太敏感, 由于学习速率动态调整,因此学习速率会很快达到一个比较 合适的值。而且由于动量项的引入还可有效的避免网络陷入 局部极小和加快网络收敛速度的效果。 4基于BP神经网络对数字识别系统的设计 数字识别系统主要分为两个阶段嘲,即学习阶段和识别 阶段.如下图2所示。在学习阶段,主要是通过对样本数字提 取出来的特征值按照预期的输出训练网络,确定网络的权 值,以便在识别阶段使用。在识别阶段中,将预处理后的字符 再按某种特征提取方法取出字符的特征,将提取出来的特征 值作为神经网络的输入进行识别,得出识别结果。也就是说 识别阶段,主要经过预处理、特征提取、分类输出3个步骤实 现对数字的识别。 学习阶段: 训练样本卜叫预处理 —叫特征提取 .-1训练网络 图2数字识别过程框图 Fig.2 Di¥itM idem ̄cation process diagram , 在图像识别中,首先要对图像做一些预处理,在图像预 处理的过程中。采用了许多图像处理技术,最后把每个数字 的特征提取出来。这些技术包括图像数据提取、图像灰度化、 图像二值化、梯度锐化、去离散噪声、倾斜度调整、图像分割、 归一化调整、紧缩重排和特征提取。其结果再利用神经网络 进行数字识别。利用神经网络进行数字识别的过程主要包括 样本的训练、字符特征输入、识别并输出结果的过程。 一l】O一 维的网格特征。每个网格各自反映字符的某一部分特征.把 各个网格组合起来作为字符的统计特征,这样提取出来的特 征值体现了数字的整体形状分布。 4.1.2改进的粗网格特征提取 粗网格特征属于局部灰度特征,虽然反映了字符的整体 形状分布,但抗位置干扰变化能力较差,比如字符的倾斜、偏 移等导致对应网格之间的错位,降低了正确识别率。而且,粗 网格特征一般忽略待识别字符的一些细节特征,而这些细节 特征对于结构相似的字符的分类,又是至关重要的。 为了同时体现数字的结构特征和细节特征,本文充分利 用神经 网络所具有的并行处理能力及其中间隐含层所具有 的提取特征的能力,使用将归一化数字图像点阵的每一个像 素作为一个网格,即图像的每一个像素二值化特征(0或1) 作为特征值提取出来,直接作为神经网络分类器的输入对该 字符进行分类的粗网格特征提取方法。 该算法的具体做法是:逐行扫描图像的每一个像素点.如 果为黑,相应的特征值置1,如果为白点,相应的特征值置0。 4.2 BP网络的设计 4.2.1初始权值的设计 网络权值的初始化m决定了网络的训练从误差曲面的哪 一点开始,因此初始化方法对缩短网络的训练时间至关重要. 神经元的变换函数都是关于零点对称的,如果每个节点的净 输入均在零点附近,则其输出均处在变换函数的中点.这个位 置不仅远离变换函数的两个饱和区,而且是其变化最灵敏的 区域,必然使网络的学习速度较快.而为了使各节点的初始净 输入在零点附近,有两种办法:一是使初始权值足够小,一般 对隐层权值可以采用此方法:二是使初始权值为+l和一1的 权值数相等,一般对输出层可采用此方法。 . 4.2.2输入层节点数的设计 BP网络的输入层的节点个数为图像预处理后所输出的 特征的维数。例如,本系统采用了8 ̄16归一化,特征提取采 用的是粗网格特征提取方法。这样对于每一个输入样本就要 128个特征,即可确定输入层的节点数为128。 4.2.3隐层节点数的设计 隐节点的作用是从样本中提取并存储其内在规律,每个 隐节点有若干个权值.而每个权值都是增强网络映射能力的 一个参数。隐节点数目越多,BP网络也就越精确,随之训练 时间也越长.但是节点数不要选取太多,否则会造成识别率 的急剧下降,也会降低网络的抗噪声能力。一般推荐用以下 王婷,等基于改进BP神经网络的数字识别 而且会降低分类器的推广能力。从上面的实验数据可以看出 选定神经元个数为l2时可以达到最佳识别率。因此综合考. 两个经验公式确定隐节点数[41,并根据实际情况做相应调整。 m=俪、/ (9) (10) 虑系统的性能本文选定隐层神经元个数为l2个。 5.2动量项对神经网络收敛速度的影响 m=m为隐层节点数,n为输入层节点数,f为输出层节点数, 为1~10之间的常数。本文通过实验对比分析之后,确定使 用12个隐层节点。 4.2.4输出层节点数的设计 动量项和学习速率是影响BP神经网络训练速率和收敛 度的两个重要因素,其中学习率一项是由函数自我调整得到 的.本文通过以下3种算法适当改进动量项,来分析动量项对 收敛速度的影响。 这3种算法依次是: 输出层节点数的决定于我们如何对目标期望输出进行 编码。在本系统中,我们采用8421码对0—9进行编码。例如 对于输出“1”,我们用(0,0,0,1)来表示。因此,输出层的节点 个数为4。 5实验结果及分析 由于我们采用的激活函数的输出永远不可能达到0或 1,只能是接近,所以这里我们将目标输出向量做些调整[81,例 如将“1”改用(O.1,0.1。,0.1,O.9)表示,其他数字类似. 在隐节点数一定的情况下,为获得好的泛化能力,存在 一个最佳次数t。,这时会使测试数据的均方误差最小,如图3 所示 均 方 误 差 次数 图3两种均方误差曲线 Fig.3 Two kind of MSE curves 因此可以随意设置最小均方误差.本文设为0.000 1,设 最大的的训练次数为15 000,这样就不会出现训练不足的情 况,使其可以达到最小的均方误差.在实验中本文使用了40 个训练样本,107个测试样本。 5.1 隐层神经元个数对识别率的影响 固定动量项常数为0.9,学习速率为0.1 均方误差为 0.000 1,下图4反映了实验中隐层神经元对系统识别率的 影响。 1 00 95 糌 最90 珏 85 80 1 2 1 3 l4 l 5 1 6 隐 神经元个数 图4隐层神经元个数对系统识别率的影响 Fig.4 Effects of number of hidden layer neuron on recognition rate of the system 一般隐含的神经元数太少,局部极值就多,网络可能训 练不出来,或者不“鲁棒”,就不能识别以前没有训练过的样 本,容错性差;隐层神经元个数过多会导致网络的冗余度大, 算法1:三层BP模式训练,指定隐层节点(12), =0.01, :0: 算法2:三层BP模式训练,指定隐层神经元数(12),/x= 0.01. =0.5: 算法3:三层BP模式训练,指定隐层神经元数(12), = 0.O1, =0.9; 其中肛是学习率, 是动量项,设定的平均误差是0.001, 隐层神经元数设定为之前分析得到的最佳数目12个。3种算 法比较如表1所示。 表1三种算法比较 Tab.1 Comparison of three algorithms 显然,在达到相同的误差下,算法2比算法1收敛速度 快,这是因为加入动量项的缘故。 到目前为止,还没有严格的系统的理论规则来选择动量 项和学习率。对于特定的问题,这些参数通常根据实验来选 择。我们把动量项从0.1到0.9逐个比较.调节动量项,可以使 我们找到最高的识别正确率,由上表也可反映出,最后,我们 确定最合适的动量项为0.9。 5.3改进前后的BP神经网络的性能比较 通过前面的实验已经确定隐层神经元个数为12.均方误 差为0.000 l。改进前后BP神经网络的收敛速度如表2所示。 表2改进前后BP神经网络的收敛速度 Tab.2 The convergence rate of BP neural network 从实验结果可以看出:标准BP算法的收敛速度实在太 慢,而单独使用动量法和单独使用自适应调整学习速率法都 可以加快网络的收敛速度,其中动量法效果更明显。而新的 一111— 《电子设计工程}2011年第3期 改进算法比标准BP算法的收敛速度提高了17.5倍之多。在 实验中还可以发现,在BP神经网络没改进之前网络10%的 概率出现如下图5所示的不收敛的情况即陷入局部极小。改 【2】韩力群.人工神经网络教程[M】.北京:北京邮电大学出版 社.2006. 【3]吕俊,张兴华.几种快速BP算法的比较研究[J】.现代电子 技术,2003,24(167):96-99. LV Jun,ZHANG Xing—hua.Comparison of several fast BP 进之后的网络可以成功的避免陷入局部极小。由此可见新的 改进算法不仅大幅度的提升了网络的收敛速度,而且保证了 网络的稳定性。 algorithms [J].Modern Electronic Technology,2003,24 (167):96—99. [4]陆琼瑜,童学锋.BP算法改进的研究[J1.计算机工程与设 计,2007(10):96—97. . LU Qiong-yu,TONG Xue—feng.Research on BP algorithm improvement IJ].Computer Engineering and Design,2007 (10):96—97. 【5】马耀名,黄敏.基于BP神经网络的数字识别研究[J】.信息 图5训练结果 Fig.5 Training results 技术,2007(4):87—88. MA Yao—ming,HUANG Min.The research of numerical 6结 论 通过实验表明,基于BP神经网络的数字识别方法具有 较强的容错性和很强的自适应学习能力.所以是一种较好 的识别方法。但是基本BP算法存在易陷入局部极小和收敛 缓慢的缺陷,针对这两点本文通过附加动量法和自适应调整 学习速率两种方法的结合对其进行改进形成新的改进算法, 改进后的网络可以避免陷入局部极小.而且收敛速度相对标 recognition based on BP neural network U】.Information Technology,2007(4):87-88. [6】吴成东,刘文涵.基于粗网格神经网络的车牌字符识别方 法[J].沈阳建筑大学学报,2007,23(4):694—695. WU Cheng-dong.LIU n—ban.The method of license plates recognition based on Fough grid neural network[J】.Shenyang Architectural University Journal,2007,23(4):694—695. 【7】袁曾任.人工神经网络及其应用【M】.北京:清华大学出版 社.1999. 准BP算法提高了17.5倍之多。 参考文献: I8]胡小锋,赵辉.Visral C++/MATL 图像处理与识别实 [1]蒋宗礼.人工神经网络导论[M].北京:高等教育出版社, 200】. 用案例精选【M】.北京:人民邮电出版社,2004. (上接第107页) WU Lei, U xin.ke。WANG Hong.Research on the YANG Li—li,LI Bi-xin.Testing Web services:a review【J1. Computer Science,2008,35(19):258—265. reliability testing of Web services based on fault injection technology【J】.Mini—Micro Systems,2007,28(1):128-131. [11]Zhang J.An approach to facilitate reliability testing of Web service components[C].proceeding of the 15th International Symposium on Sotfware Reliability Engineering(ISSRE'04), Rennes,France,2004. 【13】冯细光,刘建勋.开放Web服务测试平台的设计与实现 [C】.普适计算学术会议,2009:374—379. FENG Xi—guang,LIU Jian—xun.Design and implementmion of opening Web services testing platform【C】,Proceedings of PCC 2009,2009:374—379. 【12]杨利利,李必信.Web服务测试问题综述【JJ.计算机科 学,2008,35(19):258—265. [14】De B.Testing Web service-an overview【EB/OEl_【2010- 9-1 3].http://www.wipro.corn. -112-