搜索
您的当前位置:首页正文

一种改进的GA-BP算法在手写体数字识别的应用研究

2020-05-16 来源:易榕旅网
总第254期2010年第12期

计算机与数字T程

Computer&DigitalEngineering

VoL38No.12

33

一种改进的

GA-BP算

法在手写体数字识别的应用研究

王勇

+

(江苏科技大学张家港校区张家港215600)

摘要在分析GA-BP算法不足的基础上,通过对GA算法中的相应算子进行改进设计,从而有效避免了GA算法中的出现局部次优的情况,并把GA算法产生的最优个体作为BP神经网络的连接权值和阈值,应用于手写体数字识别过程中。实验结果表明,改进的GA—BP算法可以提高BP网络的学习速度和识别效果。

关键词GA-BP算法;遗传算子改进;手写体数字识别中图分类号TP301.6

AnImA—BPAprovedGlgorithmto

HandwrittenNumeral

RecognitionApplication

Yong

Wang

(ZhangjiagangCampus,JiangsuUniversityofScienceandTechnology,Zhangjiagang215600)

AbstmgtAfter

theanalysisofinsufficientintheGA-BPalgorithmA,byG

a

algorithminthe

tO

correspondingoperators

to

Aalgorithminimprovethedesign,effectivelyavoidingGbest

individual

as

partialsub-optimal

AsituationandtheG

algorithmproduced

the

theBPneural

networkconnectionweightsandthresholds,applied

handwrittendigitrecognitionprocess.

A-BPExperimentalresultsshowthattheimprovedGtion.

Key

algorithm

can

orkandidentifica—improvethelearningspeedofBPnetw

Words

GA—BP

eralalgorithm。improvedgeneticoperators。handwrittennum

recognition

ClassNl—nberTP301.6

1

引言

手写体数字识别技术是目前研究较为成熟的

研究高速度、高正确率的手写体数字识别算法仍是一项相当有挑战性的工作。

BP神经网络算法因其非线性映射性能力和较强的自我学习能力等优点[1],目前已经广泛应用于

技术之一。但作为理论研究,手写体数字识别技术对于其他文字识别技术仍有积极的借鉴意义。由于数字的类别只有十种,笔画简单,其识别问题看似并不复杂,但事实上,手写体数字的正确识别率并不比印刷体汉字识别正确率高,甚至不如联机手写体汉字识别率高[1]。其主要原因在于:第一,数字笔画简单,笔画差别相对较小,字形相差不大,增加某些数字间的区分难度;第二,由于受地域的影响,同一数字的写法千差万别,很难做到兼容世界各地写法的数字识别系统。再加上数字间缺乏上下文关系,也给识别带来了一定的难度[2|。因此,

模式识别、分类以及图像处理等方面。但实际应用

过程中由于BP神经网络在识别方面存在一些缺陷[5],如:网络权系数的设置存在局限性、容易陷入局部最优等。一般采用进化算法或遗传算法(GA)来训练和优化其网络连接权值和结构,从而形成了GA—BP算法‘3I。2

GA—BP算法及其不足分析

GA—BP算法基本思想是:利用遗传算法(GA)

随机产生一个种群,通过评价函数进行评估,然后

收稿日期:2010年5月18日,修回日期:2010年6月20日作者简介:王勇,男,硕士研究生,研究向:

处理与模式识别。

34

勇:一种改进的GA-BP算法在手写体数字识别的应用研究

第38卷

利用选择、交叉及变异等遗传操作,产生下一代种群,实现个体适应性的提高。从而进行全局寻优操作,得到一定的权值范围,并以此时的权值作为BP网络的初始权值,从而解决BP算法的易陷入局部极小、收敛速度慢和引起振荡效应等缺点所带来的问题[4]。

虽然引人了GA算法对BP神经网络的连接权值有一定的改进,但对于GA算法来说,在计算的后期,因采用固定的遗传算子进行染色体的选择、交叉和变异,因此选择的重复率比较高[3],得到的后代染色体并不一定是最优的父代染色体,所以也存在训练精度低、局部收敛的问题。

针对上述问题,笔者提出通过对GA算法中的遗传算子进行改进,使改进后GA算法得到的染色体进一步优化,从而避免局部收敛等不足。最后通过仿真验证其有效性。3

改进的GA—BP算法的步骤

3.1编码及初始群体设计

利用GA算法优化BP网络首先要确定编码方

时间较长。为使识别的精度较高,本文采用实数编BP网络中各层的Wi;其中:i

C(1,2,3,…,N),jC(1,2,3,…,M),下标巧为第

个结点到第歹个结点的连接。

对于初始群体,本文采用的是随机选取产生。.2评价函数

在本文采用的BP网络模型训练中,对每个隐Sigmoid函数[63:

(z)=番≥

而BP神经网络训练的过程,就是使期望输出值不断最小的过程:

E=音1坐

2:(K一仇)2

n=0

N为染色体样本规模;k为第行个染色体的i个输出节点的实际输出,魄为第n个染色体的

i个输出节点的期望输出。

对于GA算法中评价函

的作用主要是用来

点,设计评价函数为:

F一南

其中:E为BP网络误差平方和的平均值,艿为一个较小的常数,目的是为了使上式在计算过程中不会出现分母为0,F值为无穷大的情况。即:E值越小(期望输出与实际输出相差越小),适应度F值就越大。

3.3改进GA算子设计3.3.1选择算子设计

通常选择算子的设计采用是轮盘赌的方法[2]进行选择,而这种选择方法的缺陷是会产生局部最优。为克服该缺陷,本文采用精英选择与轮盘赌相结合的方法进行选择算子的设计:即:在进化初期通过计算每个染色体的适应度值,对适应度值排在前面的15%进行直接选择,剩余的部分利用轮盘赌的方法进行选择实现。3.3.2交叉算子设计

传统的遗传算法对于交叉算子的设计采用固定概率Pc来实现,但这种固定概率的方法,有可能产生局部次优。因此,本文采用以下方法来实现交

叉:

Stepl:从上一代中随机选择两个染色体P1、P2,分别计算适应度值F(p1)和F(p2);if(F(夕1)>F(P2))then

P17一pl

elseP17一p2;其中:P1

7

为保留下来的一个父代染色体,同理得出第二个父代染色体P27。

Step2:利用以下公式进行算术交叉,得到下一代染色体C,:

C,=2P1’+(1一A)P27;其中:AEVo,1]中的一个随机数。

3.3.3变异算子设计

变异是提高染色体多样性的重要手段[10。,从生存的染色体侯选集中随机选择一个染色体,通过以下公式修改该染色体中的其些信息:

P7=P+£

其中:P为一父代染色体,£∈Eo,1]中的一个随机

数,P7为变异后的染色体。3.4算法实现步骤

Stepl:BP网络参数的初使化

Step2:按照BP网络的权值和阈值顺序连接随机产生N个染色体。

Step3:计算染色体的适应值F。Step4:判断迭代次

是否达到要求。如果达

式,目前编码方案主要有两种:一是二进制编码其特点为简单、直接,但精度依赖于二进制的位数;二是实数编码其特点为精度较高,但计算量较大运算码。即:每个染色体向量由三层联接权值组成,排列顺序为输入层权值、隐含层权值、输出层权值,表示为如下形式:叫一i3层神经元所采用的激活函数为与实际输出差的平方和最小的过程,即就是使下面E其中:第第评价染色体的生存能力,因此为有效结合两者的优

2010年第12期

计算机与数字工程

35

到则结束GA算法,产生最优个体;如果没有则进行下一步Step5。

Step5:按照适应度进行选择、交叉和变异操作,产生新的染色体。重复Step3步骤。

Step6:把产生的最优个体依次映射到BP网络中对应的权值和阈值,并以此时的权值和阈值作为BP网络的初始值。

Step7:利用BP网络的前向传播,计算出E值。

Step8:判定是否达到给定的要求,如果达到刚结束退出;如果没有则进行下一步BP网络的反向传播,并回到Step7。

4仿真实验结果及分析

为测试本文所设计算法的优势,采用一个手写体数字数据库作为测试用的字符集,该库中共有5000个训练样本和10000个测试样本。相关参数设置如下所示:输入节点为5个,隐层节点为15个,输出节点为3个;群体规模为200,交叉概率为0.6,变异概率为0.05。并在如下环境下进行测试:

1)硬件环境:Inter(R)Core21.80G

Hz+2GDDR2

2)软件环境:windowsxp+vc6.0

将上述字符集样本空间分别利用GA-BP算法、改进的GAIBP算法进行训练和测试。经统计实验结果得测试的识别结果为表1所示。

表1

GA—BP与本文方法实验结果比较

通过对以上表中两种算法的实验结果比较可以得出:

1)本文算法在识别方面的正确率方面有一定的提高,特别是对于一些结构复杂的数字,如3和8,识别的正确性有了很大的提高。

2)尽管在个别数字,如数字4在识别中,使用本方法错误率有所提高,但对于其它的所有数字的识别错误率均有所下降。

参考文献

[1]神经网络原理[M].叶世伟,史忠植,译.北京:机械工业

出版社,2004

[2]贺昌政,李晓峰,俞海.人工神经网络模型的新改进及

其应用[J].数学的实践与认识,2002,32(4):555~557[33吴小培,费勤云.一种提高算法学习速度的有效途径

口].安徽大学学报(自然科学版),1998,22(3):66[4]陆金桂,王石刚,胡于进,等.多层神经网络算法的研究

[J].计算机工程,1994,20(1):17~18

[5]张铃,张钹,殷海风.多层前向网络的交叉覆盖设计算

法[J].软件学报,1999,10(7):737~738

I-6]吴鸣锐,张钹.一种用于大规模模式识别问题的神经网

络算法[J].软件学报,2001,12(6):851~854

[7]马永成,肖诗斌.基于内容的文档图像检索的特征抽取

研究EJ].江西师范大学学报:自然科学版,2008,32(2):

138~141

[8]AGhosh,N.Pal,s.Pal.Self-organization

for

object

extractionusing

a

multilayerneuralnetw

orkandfuzzi—ness

measures[J].IEEETransactions

on

FuzzySys—

tents,1993,l(1):54~68

I-9]s.Pal,D.Bhandari.Geneticalgorithmsw

ithfuzzytness

functionforobjectextractionusingcellular

net—

worksl,J].FuzzySets

and

Systems,1994,65:129~139

[10]F.一LChen,s.一F.Liu.Aneural-netw

orkapproachto

recognize

defect

spatial

patternin

semiconductor

fabrication[J].IEEE

Transactions

On

Semiconductor

Manufactur—ing,2000,13(3):366~373

[113KKameyama,Y.Kosugi,T.Okahashi,etak

Au—

tomaticdefectclassicationinvisualinspectionofsem

-iconductorsusingneuralnetworks[J].IEICETrans—

actions

on

Information&SystemsE81一D,1998(11):

】26】~】27】

因篇幅问题不能全部显示,请点此查看更多更全内容

Top