基于神经网络ZISC的模式识别系统
摘要:首先介绍人工神经网络ANN实现技术的历史、现状和发展,着重分析RBF网络的原理及其建立在超大规模集成电路基础上的硬件神经网络的设计方法。然后,介绍一种新的硬件神经网络技术ZISC的工作原理和应用。最后,以ZISC036芯片为例,实现一个模式识别系统。
关键词:人工神经网络 ZISC 超大规模集成电路 径向基函数 模式识别
引言
当前对人工神经网络ANN(Artificial Neutron Network)的研究热潮源自Hopfield J.[1]和McclellandJ.等人于20世纪80年代发表的论文[2],[3]。Hopfield提出了激活函数为非线性的反馈网络,并将其成功地运用于组合优化问题;Mcclelland和Rumelhart用多层前馈网的反向传播学习算法(Back Propagation)成功地解决了感知器不能解决的"异或"问题及其它的识别问题。他们的突破打消了此前人们由于简单线性神经网络感知功能的有限而产生的,使ANN成为了新的研究热点。之后,新的网络结构和新的学习算法层出不穷,目前常见的都已达到几十种。在这些神经网络中,径向基函数RBF(Radial Basic Fuction)网络由于具有强大的矢量分类功能和快速的计算能力,在非线性函数逼近等方面,特别是模式识别领域,获得了广泛的应用,从而成为当前神经网络研究中的一个热点[4]。
模式识别是人工智能经常遇到的问题之一。其主要的应用领域包括手写字符识别、自然语言理解、语音信号识别、生物测量以及图像识别等领域。这些领域的共同特点都是通过对对象进行特征矢量抽取,再按事先由学习样本建立的有代表性的识别字典,把特征矢量分别与字典中的标准矢量匹配,根据不同的距离来完成对象的分类。以识别手写数字为例,字典中有由学习样本建立的10个标准矢量(代表0~0),把从识别对象中抽取的特征矢量分别与这10个标准矢量匹配,矢量间距离最短的就说明别对象与这个标准矢量的分类最接近,进而识别出其表示的数字。
模式识别过程中,产生一个具有代表性的、稳定且有效的特征矢量分类匹配策略,是补偿变形、提高识别率的有效途径,如何确定分类器是识别系统成功的关键。可以说,模式识别的本质就是分类,就是把特片空间中一个特定的点(特征矢量)映射到一个适当的模式类别中。传统的模式识别分类都是基于串行处理的匹配策略:首先由学习样本建立识别基元(字、词、音、像素)的标准矢量识别字典,取取的特征矢量顺序与字典中的标准矢量计算区别得分;最后根据概率做出决策,输出识别结果。当模式类别很大时,识别速度会下降得很快,而近年来,用RBF网络解决这方面的问题得到了很好的效果。
理论模型要求发展神经网络型计算机来实现,但迄今 为止,这方面的工作限于条件还主要集中在传统计算机的软件模拟实现上。大多数学者认为,要使人工神经网络更快、更有效地解决更大规模的总是,关键在于其超大规模集成电路(V LSI)硬件的实现,即把神经元和连接制作在一块芯片上(多为CMOS)构成ANN。正是因为上述的原因,其中神经网络的VLSI设计方法近年来发展很快,硬件实现已成为ANN的一个重要分支[5],[6]。
以下介绍IBM的专利硬件RBF神经网络芯片技术ZISC(Zero Instruction Set Computer),并给出用ZISC设计和实现的一种模式识别系统。
1 用VLSI设计硬件神经网络的方法
神经网络的IC实现是比较困难的,设计者必须把神经系统模型的特性反映到受半导体工艺和IC设计规则制约的电路中去。用VLSI设计硬件神经网络的方法主要分为数字技术、模拟技术和数模混合技术等,下面分别作简要介绍。
(1)用模拟技术实现硬件神经网络
模拟神经芯片通过单元器件的物理性质来进行计算,因而可以获得很高的速度。神经元的核函数计算功能一般由乘法器或运算放大器来完成,而连接权值大多以电压形式存储在电容上或是以电荷形式存储在浮点门上。利用模拟神经芯片不仅可以制造多层前向感知器那样的传统结构,还能从形态上进行如硅视网膜这样的生物仿真设计,从而更有效地模拟生物学功能。
在解决实时感知类的问题中,模拟神经芯片扮演着主要的角色。因为这些问题不要求精确的数学计算,而主要是对大量的信息流进行集合和并行处理,这方面低精度的模拟技术从硅片面积、速度和功耗来看具有相当大的优势。但是模拟芯片的抗干扰性差,设计中需要考虑对环境因素变化引起的误差进行补偿,非常麻烦;它的另一个缺点是,制造一个突触必须考虑权值存储的复杂性,同时要求放大器在很宽的范围内呈现线性[5],[6]。
(2)用数字技术实现硬件神经网络
用高低电平来表示不同状态的数字电路是信息工业中最常用的技术。数字神经芯片有非常成熟的生产工艺,它的权值一般存储在RAM或EPROM等数字存储器中,由乘法器和加法器实现神经元并行计算。对设计者来说,数字神经芯片可以以很高的计算精度(达到32位或者更高)实现神经元核函数。另外,用数字技术实现神经网络时,通常可以采用标准单元库或可编程门阵列直接进行电路设计,这样可以大大减少设计时间[5],[6]。
数字神经芯片不仅具有容错性好、易于硬件实现及高精度、高速度的优点。更重要的是有很多数字电路CAD的软件可以作为设计工具使用。但要实现乘/加运算,需要大量的运算单元和存储单元。因而对芯睡面积和功耗要求很高。为了适应大面积的数字电路的要求,现在很多数字神经芯片都采用了硅片集成技术(Wafer-Scale Integration)。
(3)用数模混合技术实现硬件神经网络
出于上述种种考虑,许多研究人员提出并采用了各种数模混合神经芯片,具有数字及模拟工艺各息的优点而避免各自的缺点,运算速率高,芯片面积小,抗噪声能力强且易于设计。典型的数模混合信号处理部分则全是模拟的。这种结构很容易与其它的数字系统接口以完成模块化设计。近年来在各种数模混合神经芯片设计中,利用脉冲技术的数模混合神经芯片和利用光互连技术的光电混合神经网络芯片得到了广泛的关系,它们代表神经网络未来发展的方向。
尽管数模混合神经芯片有种种优点,但它也存在着一些不足。比如,对于大多数数模混合神经芯片来说,训练学习算法的实现往往需要一个附加的协处理器,这无疑会增加整个神经网络系统的成本和复杂性[5],[6]。
2 RBF网络原理和它的硬件实现
RBF网络是一种有导师的三层前馈网络。它最重要的特点是中间隐层神经元的基函数只对输入剩激起局部反应,即只有当输入落在输入空间的 一个局部区域时,基函数才产生一个重要的非零响应;而在其它情况下基函数输出很小(可近似为零)。网络结构如图1所示。
图1(a)描述了隐层神经元的作用,其中X=(x1,x2,…,Xn)是输入层的输入矢量;C=(w1,w2,…,Wn)是该隐层神经元的中心矢量(每个隐层神经元的中心徉量存储在其与输入各种神经元之间的连接权中),σ代表宽度(半径);而|| ||表示n维空间中矢量之间的距离(这里的距离不一定是数学意义上的欧几里得距离,在不同的情况下可以有种种含义);f是隐层神经元的基函数,目前用得比较多的是高斯分布函数。 可以看出,需要分类的模式类别数的增加总可以通过不断增加三层RBF网络隐层神经元数来实现,含义十分直观。由于其学习过程为两步,且每一步的学习算法都十分有效,所以它的学习速度很快。RBF网络主要适用于解决已知的大规模分类问题,比如图像目标跟踪、面部和双眼的生物图像识别等。
RBF网络每个输出层结点的输出为其与各隐层神经元输出y的加权求和。按高斯分布函数的定义,隐层神经元的输出y与输入矢量x的函数关系应服从正态分布,即当X与中心矢量C的距离很矢时,y接近最大值;反之y值减小。如X与C的距离超过宽度σ(即远离中心)时,输出y可近似为零,相当于对输出层没有贡献。这就实现了局部感知。
不难看出,RBF网络用作矢量分类器时,输入层神经元个数由矢量空间的维数决定,隐层神经元个数由模拟类别数决定,每个隐层神经元的中心矢量(与输入层各神经元之间的连接权)都代表一种模式类别。输入矢量与哪个隐层神经元的中心矢量距离近,哪个隐层神经元的基函数输出就大,相应的模式类别对输出层的贡献就大;与哪个隐层神经元的中心矢量距离远,哪个隐层神经元的基函数输出就小,甚至不激活,输出0,相应的模式类别当然就不会影响RBF网络的输出,矢量和模式类别的分类由此完成。
相对于网络结构的简单,RBF网络权值的训练方法要复杂一些。通常分为下面的两个步骤。
①隐层和输入层之间的权值采用无教师聚类方法训练,最常用的是KNN法(K-Nearest-Neighbor)。它的基本思想是先设定训练样本的一个子集;再用模式分类算法LBG由这个子集形成N种类的模式,即把子集中的样本归类;然后,按顺序处理子集外的训练样本:对任一样本X,找出K个与X距离最近的矢量(随便找,只要近就行),计算这K个矢量分别属于N个模式种类的数目,哪个模式种类包含的最近矢量最多,X就属于哪个模式种类。
将输入的训练样本聚类后,每个模式种类中所有样本矢量的平均值就代表该隐层神经元和输入层之间的权值(中心矢量);而所有样本矢量与中心矢量的平方差的平均值就代表宽度σ。这样就做出了各个隐层神经元的全部参数。因为这种方法只要求输入训练样本就可以进行分类,无须知道训练样本的理想输出,因此被称为无教师方法。
②输出层和隐层之间的权值采用有教师聚类方法训练。简便实用的一种办法是:在确定隐层和输入层之间的权值之后,把训练样本矢量和其理想输出代入RBF网络,从而推出各个输出层神经元和隐层之间的权值。
对RBF网络的硬件实现技术,目前存在着不同的观点。但就有大规模分类和实时要求的模式识别问题而言,数字电路技术是最合适的选择,原因有以下几点:
①RBF网络用于手写字符识别、生物图像识别、自然语言理解这样的领域时,需要分类的模式类别数往往成千上万,所以要求隐层神经元数极大,单片神经芯片很难完成。使用数字神经芯片,网络的扩展十分容易,一般不需要外围逻辑器件而只要电阻就可以完成;而用数字神经芯片由于精度高,理论上可以无限并行扩展,且性能不下降。
②一个实用的模式识别系统,分类的模式往往会随着样本与环境的变化而变化,这就需要不断调整权值。数字神经芯片的权值存在数字存储器中,存储和恢复都很方便。这样用于模式识别系统的RBF网络的权值易变性得到了保证。
③模式识别系统对特征矢量提取对象的预处理是比较困难的工作。预处理效果不好时,RBF网络的输入往往含有噪声。数字神经芯片在抗干扰性方面与其它V LSI技术相比,显然具有无可比拟的优势。
④模式识别的要求包括模糊匹配和精确匹配两种。当用RBF网络实现精确匹配时,模拟技术完成不了这个要求,此时,数字神经芯片是避免错误输出的唯 一选择。
3 ZISC技术及其在模式识别中的应用
虽然人们已经在神经网络的硬件实现上做了大量的工作,并实现了许多不同的网络结构和算法;但是RBF网络的硬件实现工作却了了无几。这说明幅度当前的IC技术实现RBF网络的功能对设计水平的要求是比较高的,因此,本文介绍的这种商业芯片ZISC就成为了模式识别系统的一种有价值的神经网络硬件平台。
无指令计算机ZISC是世界著名的IBM实验室的一项创新性科研成果[7],它采用数字电路技术实现了RBF神经网络及KNN学习算法的集成电路芯片。作为ZISC芯片的合作发明人与授权生产商,美国Silicon Rcognition公司专业从事ZISC技术推广,其生产的ZISC036是一颗含有36个隐层神经元,专门用于各种模式识别矢量分类的集成电路。以下列出了它的一些主要特点与功能:
*使用RBF网络模型,无须编程而只须给它训练样本,即能实现学习和自适应识别;
*全并行运算,模式分类速度与隐层神经元存储的矢量数量完全无关;
*无须外围逻辑电路即可实现多片ZISC036级连,模式分类数量及神经网络规模没有限制;
*输入和存储的矢量分量数目从1~64个可调(每个分量8位);
*超快速度,64个分量的特征矢量的识别在4.8ms内完成(主频时钟20MHz);
*用寄存器存储神经网络全局信息与神经元信息和权值;
*CMOS和TTL兼容的I/O,TQFP144封装,5V标准电源供电。
不难看出,应用这种神经网络芯片不需要操作系统和编程语言,主要的工作就是训练它和让它学习。因此,用它开发面向消费类的模式识别产品是一种简单且实用可行的方法,可以大大地缩短研发周期。
本文给出了用六片ZISC036级连,通过印制电路板实现的通用模式识别系统。图2为这个系统的总体框图。
系统通过PCI总线接受待识别的模式原始数据。数字存储在2个8MB高速DRAM区中。神经网络控制器选用Xilinx Virtex FPGA,它的主要功能是完成对原始数据的特征矢量提取并输入到ZISC036芯片阵列中。可以使用标准的FPGA开发工具生成不同的RBF文件,从而实现不同的特征矢量提取电路。ZISC036芯片阵列按照三描述的方法一个个顺序接受矢理输入,然后进行并行的学习和分类,识别结果作为输出返回。只要修改FPGA中的特征矢量提取电路和界面程序,就可以实现图像、话音等各种不同的模式识别程序,只要修改FPGA中的特征矢量提取电路和界面程序,就可以实现图像、话音等各种不同的模式识别功能。这个通用模式识别系统的性能以传统CPU或DSP的指标来衡量,相当于13.2GPS(每秒执行132亿条指令)。
用上述系统可以完成如图像目标跟踪、图像识别、数据挖掘等许多实时性要求很高的模式识别和分类功能。以下用一个自适应图像目标跟踪的实验作为例子,视频图片演示结果如图3所示。
图3的视频图片从一段AVI文件中捕获。首先从初始的视频帧中选定汽车的图像,提取其纹理特征作为训练样本输入到ZISC神经网络。然后,ZISC神经网络在后面接下来的视频帧中搜索类似的图像纹理模式并圈定跟踪目标的坐标。如果发现所跟踪目标的模式发生变化,ZISC神约网络能够自动学习新的特征并建立一个新的模式存入神经网络。通过不断地比较已存入神经网络的模式和所跟踪目标之间的区别,系统就能够识别目标,从而在拥挤的背景和变化的环境下始终锁定目标。实验用视频图片为320×240像素,跟踪目标扫描范围为20×20像素。
结语
RBF神经网络的硬件实现是实现高速大规模模式分类的关键,而使用现有的比较成熟的商业芯片又无疑能简化模式识别系统的开发工作。IBM的ZISC采用数字电路技术实现了RBF神经网络芯片,用它作为核心,既能够大幅度提高识别性能,又能够缩短开发周期,是设计高性能模式识别。