计算机应用研究
APPLICATION RESEARCH OF COMPUTERS
2000 Vol.17 No.3 P.15-16




应用神经网络分类器识别手写邮政编码
顾军捷　陈焱
摘　要：介绍了神经网络分类器的一般原理，提出了应用神经网络分类器识别手写邮政编码的基本方法。针对手写邮政编码模式内在的多样性和复杂性，又提出一种自适应树状网络模型以适应复杂数据的处理。
关键词：神经网络分类器 识别 自适应树状网络模型
1　引言
　　准确有效地自动识别信封上的邮政编码，可以提高邮件的分组投递速度，大大节省时间和人力，提高邮政服务质量。但是，由于各种各样的手写字体在大小、位置、方向、风格等方面存在很大的差异，包含了大量的模糊信息，很难用一套确定的描述或者符号来定义。这给利用计算机进行模式识别带来了非常大的困难。
　　近年来发展起来的人工神经网络理论，建立了一种由大量处理单元组成的非线性大规模自适应动力系统[1]，具有学习能力、记忆能力、计算能力以及智能处理功能，并在不同程度和层次上模仿人脑神经系统的信息处理、存储及检索功能。基于神经网络的分类器与传统的模式识别方法相比，在对模糊问题或模糊数据的处理中表现出了强大的适应能力[2]，被广泛应用于图象纹理分类、模糊控制等领域。在此，我们提出使用神经网络分类器来识别手写邮政编码。
2　神经网络的基本原理
　　我们先介绍一般的多层感知机(MLP)网络的反传(BP，Back Propagation)算法[3]，网络基本结构见图1。在BP网络中，训练过程包含了正向传播过程和反向传播过程。输入信号从输入层经隐层单元逐层处理，并传向输出层。如果在输出层得不到期望的输出，则依靠反向传播，将误差沿原来的连接通路返回，修改各层神经元的权值，采用误差梯度下降的方法,使误差信号最小。

图1　神经网络的基本模型
　　下面给出训练神经网络训练过程的一般算法。
　　设神经元输出函数

其中θ(为阈值参数。
　　Step1. 初始化权值系数、阈值为小的随机数，给定迭代结束参数ε。
　　Step2. 提供样本矢量＝（x1，…，xN）,通过f(x)计算出网络输出矢量＝（y1，…，yM）。
　　Step3. 输入导师信号＝（d1，…，dM）,并反传改变权参数的值
wij(t+1)＝wji(t)+ηδjx'i+α(wji(t)-wji(t-1))
其中，(为学习因子(Gain term)，α为动量因子(Momentum term)；x＇i为i单元所在层的输出；δj为j单元的误差因子。
　　(i) 如果j单元是输出单元，那么
δj=yj(1-yj)(dj-yj)
　　(ii) 如果j单元是隐单元，则

　　k取所有j所连接的上层单元。
　　Step4. 当误差||δoutput||<ε时，结束迭代，退出训练，否则，转Step2。
3　应用神经网络分类器识别手写邮政编码
　　采用神经网络的方法识别手写邮政编码，分为两个步骤：第一步，使用手写数字样本集训练网络。首先将样本进行数字化处理，将其转化成二值的图形矢量，以7×7为例，见图2。然后将数字化后的图形矢量输入网络，输入层49个结点，输出层10个结点，分别代表0～9这10个类别，隐含层可以取20～25个结点。用BP算法训练直至误差收敛，具体方法如下：图形矢量输入网络，其导师信号(或称为期望输出)在其对应的结点处为1.0，其余结点均为0。每一轮训练结束后计算实际输出与期望输出之间的误差，如小于规定的门限，则训练结束，否则，继续训练。

图2　手写字体与数字化后的图形矢量
　　第二步，用训练好的网络来识别手写邮政编码。网络的输入为待识别的手写邮政编码经过数字化后得到的图形矢量。输入数据经过网络的正向传输在输出层得到输出。选取输出层10个结点中数值最大的结点，我们将其判决为该编码所属类别。
　　采用基本BP网络分类器在对手写邮政编码识别的具体实现时,经常会遇到一些预料不到的复杂情况。例如，不少人在书写“7”的时候，习惯于加上一短划，见图3。这种情况大大增加了数字模式的复杂性，使各类模式的分布扩散，类内方差增大，容易引起模式相近类别的误判。

图3　一种容易与“2”引起混淆的手写体“7”
　　为了解决这个问题，增强网络对于复杂数据的识别能力，我们对基本BP网络分类器进行了改进，提出一种自适应树状网络模型。
　　我们先对训练样本进行一次预处理。首先计算一下各类数字内部各种模式分布的分散情况，在此我们利用方差来表达一个分散度的概念。

其中i为类别号，x为图象矢量，mij为均值。
　　显然，D越大，各种模式的分布越分散。如果分散度过大，说明该类数字模式较多较复杂，需要进一步地分类。按照某种法则将其分为若干类之后，重新计算各小类的分散度，再判断是否需要进一步分类，直至将这一大类分离出若干相对较为单纯的模式为止。
　　仍以“7”为例。首先计算类号为7的样本的均值m和方差D，由于D>T(T为设定的门限)，故进行一次类内的细分；按比例减小T，对分出来的两小类重新计算均值和方差，进行再一次的细分。假定这样直至最后分出7(I), 7(II), 7(III)三类，见图4。

图4　自适应分类的树状结构
　　对其它数字的类别也进行同样的处理。这样，通过树状的自适应预分类器，我们就得到分布比原来的10个大类更精细的若干个小类，记为I(j), I{0...9}, j{I, II, III,...}。用它们代替上文中基本BP网络分类器输出层的10个结点，然后采用同样的方法训练网络直至收敛。

图5　改进的识别手写邮政编码的神经网络分类器模型
　　用训练好的网络对手写邮政编码数据进行识别，分类器输出类别号I(j), I{0...9}, j{I, II, III,...}。将所有的I(j)类(j{I, II, III,...})归为第I类，即得到最后的判决结果。
4　结论与讨论
　　神经网络分类器对模糊数据的强大处理能力，使自动准确地识别手写邮政编码成为可能。本文提出的自适应树状网络模型，提供了一种进一步提高识别精度的有效途径。关于系统的实现，还有若干具体问题值得探讨：
　　1) 基于BP网络分类器在对手写邮政编码识别的具体实现时，由于输入结点数据量较大，所以存在着网络复杂、训练时间较长的缺点。为了解决这个问题，我们认为有必要对输入层的图形矢量进行一些分块处理，以加快训练速度。
　　2) 面向对象的程序设计方法(OOP)同神经元以及树状网络模型存在着内在一致性，可以方便地进行建立、合并、删除网络结点等处理。从理论上支持动态拓扑结构，为神经网络分类器的编程提供了一个很好的解决方案。
顾军捷(中国科学技术大学电子工程与信息科学系 信息处理中心 合肥 230027) 
陈焱 (中国科学技术大学电子工程与信息科学系 信息处理中心 合肥 230027) 
参考文献
1 史忠植. 神经计算. 北京：电子工业出版社, 1993
2 Massimo MeneGanti, Francesco S. Saviello, and Roherto Tagliaferri. Fuzzy Neural Networks for Classification and Detection of Anomalies. IEEE Trans. Neural Networks, 1998, 9(5): 848～861
3 中国科学技术大学生物医学工程跨系委员会. 神经网络及其应用. 合肥：中国科学技术大学出版社, 1992
4 Claus Neubauer. Evaluation of Convolutional Neural Networks for Visual Recognition. IEEE Trans. Neural Networks, 1998, 9(4): 685～695
收稿日期：1999年9月13日
