基于神經(jīng)網(wǎng)絡ZISC的模式識別系統(tǒng)
關鍵詞:人工神經(jīng)網(wǎng)絡 ZISC 超大規(guī)模集成電路 徑向基函數(shù) 模式識別
引言
當前對人工神經(jīng)網(wǎng)絡ANN(Artificial Neutron Network)的研究熱潮源自Hopfield J.[1]和McclellandJ.等人于20世紀80年代發(fā)表的論文[2],[3]。Hopfield提出了激活函數(shù)為非線性的反饋網(wǎng)絡,并將其成功地運用于組合優(yōu)化問題;Mcclelland和Rumelhart用多層前饋網(wǎng)的反向傳播學習算法(Back Propagation)成功地解決了感知器不能解決的"異或"問題及其它的識別問題。他們的突破打消了此前人們由于簡單線性神經(jīng)網(wǎng)絡感知功能的有限而產(chǎn)生的,使ANN成為了新的研究熱點。之后,新的網(wǎng)絡結(jié)構(gòu)和新的學習算法層出不窮,目前常見的都已達到幾十種。在這些神經(jīng)網(wǎng)絡中,徑向基函數(shù)RBF(Radial Basic Fuction)網(wǎng)絡由于具有強大的矢量分類功能和快速的計算能力,在非線性函數(shù)逼近等方面,特別是模式識別領域,獲得了廣泛的應用,從而成為當前神經(jīng)網(wǎng)絡研究中的一個熱點[4]。
模式識別是人工智能經(jīng)常遇到的問題之一。其主要的應用領域包括手寫字符識別、自然語言理解、語音信號識別、生物測量以及圖像識別等領域。這些領域的共同特點都是通過對對象進行特征矢量抽取,再按事先由學習樣本建立的有代表性的識別字典,把特征矢量分別與字典中的標準矢量匹配,根據(jù)不同的距離來完成對象的分類。以識別手寫數(shù)字為例,字典中有由學習樣本建立的10個標準矢量(代表0~0),把從識別對象中抽取的特征矢量分別與這10個標準矢量匹配,矢量間距離最短的就說明別對象與這個標準矢量的分類最接近,進而識別出其表示的數(shù)字。
模式識別過程中,產(chǎn)生一個具有代表性的、穩(wěn)定且有效的特征矢量分類匹配策略,是補償變形、提高識別率的有效途徑,如何確定分類器是識別系統(tǒng)成功的關鍵??梢哉f,模式識別的本質(zhì)就是分類,就是把特片空間中一個特定的點(特征矢量)映射到一個適當?shù)哪J筋悇e中。傳統(tǒng)的模式識別分類都是基于串行處理的匹配策略:首先由學習樣本建立識別基元(字、詞、音、像素)的標準矢量識別字典,取取的特征矢量順序與字典中的標準矢量計算區(qū)別得分;最后根據(jù)概率做出決策,輸出識別結(jié)果。當模式類別很大時,識別速度會下降得很快,而近年來,用RBF網(wǎng)絡解決這方面的問題得到了很好的效果。
理論模型要求發(fā)展神經(jīng)網(wǎng)絡型計算機來實現(xiàn),但迄今 為止,這方面的工作限于條件還主要集中在傳統(tǒng)計算機的軟件模擬實現(xiàn)上。大多數(shù)學者認為,要使人工神經(jīng)網(wǎng)絡更快、更有效地解決更大規(guī)模的總是,關鍵在于其超大規(guī)模集成電路(V LSI)硬件的實現(xiàn),即把神經(jīng)元和連接制作在一塊芯片上(多為CMOS)構(gòu)成ANN。正是因為上述的原因,其中神經(jīng)網(wǎng)絡的VLSI設計方法近年來發(fā)展很快,硬件實現(xiàn)已成為ANN的一個重要分支[5],[6]。
以下介紹IBM的專利硬件RBF神經(jīng)網(wǎng)絡芯片技術ZISC(Zero Instruction Set Computer),并給出用ZISC設計和實現(xiàn)的一種模式識別系統(tǒng)。
1 用VLSI設計硬件神經(jīng)網(wǎng)絡的方法
神經(jīng)網(wǎng)絡的IC實現(xiàn)是比較困難的,設計者必須把神經(jīng)系統(tǒng)模型的特性反映到受半導體工藝和IC設計規(guī)則制約的電路中去。用VLSI設計硬件神經(jīng)網(wǎng)絡的方法主要分為數(shù)字技術、模擬技術和數(shù)?;旌霞夹g等,下面分別作簡要介紹。
(1)用模擬技術實現(xiàn)硬件神經(jīng)網(wǎng)絡
模擬神經(jīng)芯片通過單元器件的物理性質(zhì)來進行計算,因而可以獲得很高的速度。神經(jīng)元的核函數(shù)計算功能一般由乘法器或運算放大器來完成,而連接權值大多以電壓形式存儲在電容上或是以電荷形式存儲在浮點門上。利用模擬神經(jīng)芯片不僅可以制造多層前向感知器那樣的傳統(tǒng)結(jié)構(gòu),還能從形態(tài)上進行如硅視網(wǎng)膜這樣的生物仿真設計,從而更有效地模擬生物學功能。
在解決實時感知類的問題中,模擬神經(jīng)芯片扮演著主要的角色。因為這些問題不要求精確的數(shù)學計算,而主要是對大量的信息流進行集合和并行處理,這方面低精度的模擬技術從硅片面積、速度和功耗來看具有相當大的優(yōu)勢。但是模擬芯片的抗干擾性差,設計中需要考慮對環(huán)境因素變化引起的誤差進行補償,非常麻煩;它的另一個缺點是,制造一個突觸必須考慮權值存儲的復雜性,同時要求放大器在很寬的范圍內(nèi)呈現(xiàn)線性[5],[6]。
(2)用數(shù)字技術實現(xiàn)硬件神經(jīng)網(wǎng)絡
用高低電平來表示不同狀態(tài)的數(shù)字電路是信息工業(yè)中最常用的技術。數(shù)字神經(jīng)芯片有非常成熟的生產(chǎn)工藝,它的權值一般存儲在RAM或EPROM等數(shù)字存儲器中,由乘法器和加法器實現(xiàn)神經(jīng)元并行計算。對設計者來說,數(shù)字神經(jīng)芯片可以以很高的計算精度(達到32位或者更高)實現(xiàn)神經(jīng)元核函數(shù)。另外,用數(shù)字技術實現(xiàn)神經(jīng)網(wǎng)絡時,通??梢圆捎脴藴蕟卧獛旎蚩删幊涕T陣列直接進行電路設計,這樣可以大大減少設計時間[5],[6]。
數(shù)字神經(jīng)芯片不僅具有容錯性好、易于硬件實現(xiàn)及高精度、高速度的優(yōu)點。更重要的是有很多數(shù)字電路CAD的軟件可以作為設計工具使用。但要實現(xiàn)乘/加運算,需要大量的運算單元和存儲單元。因而對芯睡面積和功耗要求很高。為了適應大面積的數(shù)字電路的要求,現(xiàn)在很多數(shù)字神經(jīng)芯片都采用了硅片集成技術(Wafer-Scale Integration)。
(3)用數(shù)模混合技術實現(xiàn)硬件神經(jīng)網(wǎng)絡
出于上述種種考慮,許多研究人員提出并采用了各種數(shù)?;旌仙窠?jīng)芯片,具有數(shù)字及模擬工藝各息的優(yōu)點而避免各自的缺點,運算速率高,芯片面積小,抗噪聲能力強且易于設計。典型的數(shù)模混合信號處理部分則全是模擬的。這種結(jié)構(gòu)很容易與其它的數(shù)字系統(tǒng)接口以完成模塊化設計。近年來在各種數(shù)?;旌仙窠?jīng)芯片設計中,利用脈沖技術的數(shù)?;旌仙窠?jīng)芯片和利用光互連技術的光電混合神經(jīng)網(wǎng)絡芯片得到了廣泛的關系,它們代表神經(jīng)網(wǎng)絡未來發(fā)展的方向。
盡管數(shù)模混合神經(jīng)芯片有種種優(yōu)點,但它也存在著一些不足。比如,對于大多數(shù)數(shù)?;旌仙窠?jīng)芯片來說,訓練學習算法的實現(xiàn)往往需要一個附加的協(xié)處理器,這無疑會增加整個神經(jīng)網(wǎng)絡系統(tǒng)的成本和復雜性[5],[6]。
2 RBF網(wǎng)絡原理和它的硬件實現(xiàn)
RBF網(wǎng)絡是一種有導師的三層前饋網(wǎng)絡。它最重要的特點是中間隱層神經(jīng)元的基函數(shù)只對輸入剩激起局部反應,即只有當輸入落在輸入空間的 一個局部區(qū)域時,基函數(shù)才產(chǎn)生一個重要的非零響應;而在其它情況下基函數(shù)輸出很?。山茷榱悖>W(wǎng)絡結(jié)構(gòu)如圖1所示。
圖1(a)描述了隱層神經(jīng)元的作用,其中X=(x1,x2,…,Xn)是輸入層的輸入矢量;C=(w1,w2,…,Wn)是該隱層神經(jīng)元的中心矢量(每個隱層神經(jīng)元的中心徉量存儲在其與輸入各種神經(jīng)元之間的連接權中),σ代表寬度(半徑);而|| ||表示n維空間中矢量之間的距離(這里的距離不一定是數(shù)學意義上的歐幾里得距離,在不同的情況下可以有種種含義);f是隱層神經(jīng)元的基函數(shù),目前用得比較多的是高斯分布函數(shù)。
RBF網(wǎng)絡每個輸出層結(jié)點的輸出為其與各隱層神經(jīng)元輸出y的加權求和。按高斯分布函數(shù)的定義,隱層神經(jīng)元的輸出y與輸入矢量x的函數(shù)關系應服從正態(tài)分布,即當X與中心矢量C的距離很矢時,y接近最大值;反之y值減小。如X與C的距離超過寬度σ(即遠離中心)時,輸出y可近似為零,相當于對輸出層沒有貢獻。這就實現(xiàn)了局部感知。
不難看出,RBF網(wǎng)絡用作矢量分類器時,輸入層神經(jīng)元個數(shù)由矢量空間的維數(shù)決定,隱層神經(jīng)元個數(shù)由模擬類別數(shù)決定,每個隱層神經(jīng)元的中心矢量(與輸入層各神經(jīng)元之間的連接權)都代表一種模式類別。輸入矢量與哪個隱層神經(jīng)元的中心矢量距離近,哪個隱層神經(jīng)元的基函數(shù)輸出就大,相應的模式類別對輸出層的貢獻就大;與哪個隱層神經(jīng)元的中心矢量距離遠,哪個隱層神經(jīng)元的基函數(shù)輸出就小,甚至不激活,輸出0,相應的模式類別當然就不會影響RBF網(wǎng)絡的輸出,矢量和模式類別的分類由此完成。
相對于網(wǎng)絡結(jié)構(gòu)的簡單,RBF網(wǎng)絡權值的訓練方法要復雜一些。通常分為下面的兩個步驟。
①隱層和輸入層之間的權值采用無教師聚類方法訓練,最常用的是KNN法(K-Nearest-Neighbor)。它的基本思想是先設定訓練樣本的一個子集;再用模式分類算法LBG由這個子集形成N種類的模式,即把子集中的樣本歸類;然后,按順序處理子集外的訓練樣本:對任一樣本X,找出K個與X距離最近的矢量(隨便找,只要近就行),計算這K個矢量分別屬于N個模式種類的數(shù)目,哪個模式種類包含的最近矢量最多,X就屬于哪個模式種類。
將輸入的訓練樣本聚類后,每個模式種類中所有樣本矢量的平均值就代表該隱層神經(jīng)元和輸入層之間的權值(中心矢量);而所有樣本矢量與中心矢量的平方差的平均值就代表寬度σ。這樣就做出了各個隱層神經(jīng)元的全部參數(shù)。因為這種方法只要求輸入訓練樣本就可以進行分類,無須知道訓練樣本的理想輸出,因此被稱為無教師方法。
②輸出層和隱層之間的權值采用有教師聚類方法訓練。簡便實用的一種辦法是:在確定隱層和輸入層之間的權值之后,把訓練樣本矢量和其理想輸出代入RBF網(wǎng)絡,從而推出各個輸出層神經(jīng)元和隱層之間的權值。
可以看出,需要分類的模式類別數(shù)的增加總可以通過不斷增加三層RBF網(wǎng)絡隱層神經(jīng)元數(shù)來實現(xiàn),含義十分直觀。由于其學習過程為兩步,且每一步的學習算法都十分有效,所以它的學習速度很快。RBF網(wǎng)絡主要適用于解決已知的大規(guī)模分類問題,比如圖像目標跟蹤、面部和雙眼的生物圖像識別等。
對RBF網(wǎng)絡的硬件實現(xiàn)技術,目前存在著不同的觀點。但就有大規(guī)模分類和實時要求的模式識別問題而言,數(shù)字電路技術是最合適的選擇,原因有以下幾點:
①RBF網(wǎng)絡用于手寫字符識別、生物圖像識別、自然語言理解這樣的領域時,需要分類的模式類別數(shù)往往成千上萬,所以要求隱層神經(jīng)元數(shù)極大,單片神經(jīng)芯片很難完成。使用數(shù)字神經(jīng)芯片,網(wǎng)絡的擴展十分容易,一般不需要外圍邏輯器件而只要電阻就可以完成;而用數(shù)字神經(jīng)芯片由于精度高,理論上可以無限并行擴展,且性能不下降。
②一個實用的模式識別系統(tǒng),分類的模式往往會隨著樣本與環(huán)境的變化而變化,這就需要不斷調(diào)整權值。數(shù)字神經(jīng)芯片的權值存在數(shù)字存儲器中,存儲和恢復都很方便。這樣用于模式識別系統(tǒng)的RBF網(wǎng)絡的權值易變性得到了保證。
③模式識別系統(tǒng)對特征矢量提取對象的預處理是比較困難的工作。預處理效果不好時,RBF網(wǎng)絡的輸入往往含有噪聲。數(shù)字神經(jīng)芯片在抗干擾性方面與其它V LSI技術相比,顯然具有無可比擬的優(yōu)勢。
④模式識別的要求包括模糊匹配和精確匹配兩種。當用RBF網(wǎng)絡實現(xiàn)精確匹配時,模擬技術完成不了這個要求,此時,數(shù)字神經(jīng)芯片是避免錯誤輸出的唯 一選擇。
3 ZISC技術及其在模式識別中的應用
雖然人們已經(jīng)在神經(jīng)網(wǎng)絡的硬件實現(xiàn)上做了大量的工作,并實現(xiàn)了許多不同的網(wǎng)絡結(jié)構(gòu)和算法;但是RBF網(wǎng)絡的硬件實現(xiàn)工作卻了了無幾。這說明幅度當前的IC技術實現(xiàn)RBF網(wǎng)絡的功能對設計水平的要求是比較高的,因此,本文介紹的這種商業(yè)芯片ZISC就成為了模式識別系統(tǒng)的一種有價值的神經(jīng)網(wǎng)絡硬件平臺。
無指令計算機ZISC是世界著名的IBM實驗室的一項創(chuàng)新性科研成果[7],它采用數(shù)字電路技術實現(xiàn)了RBF神經(jīng)網(wǎng)絡及KNN學習算法的集成電路芯片。作為ZISC芯片的合作發(fā)明人與授權生產(chǎn)商,美國Silicon Rcognition公司專業(yè)從事ZISC技術推廣,其生產(chǎn)的ZISC036是一顆含有36個隱層神經(jīng)元,專門用于各種模式識別矢量分類的集成電路。以下列出了它的一些主要特點與功能:
*使用RBF網(wǎng)絡模型,無須編程而只須給它訓練樣本,即能實現(xiàn)學習和自適應識別;
*全并行運算,模式分類速度與隱層神經(jīng)元存儲的矢量數(shù)量完全無關;
*無須外圍邏輯電路即可實現(xiàn)多片ZISC036級連,模式分類數(shù)量及神經(jīng)網(wǎng)絡規(guī)模沒有限制;
*輸入和存儲的矢量分量數(shù)目從1~64個可調(diào)(每個分量8位);
*超快速度,64個分量的特征矢量的識別在4.8ms內(nèi)完成(主頻時鐘20MHz);
*用寄存器存儲神經(jīng)網(wǎng)絡全局信息與神經(jīng)元信息和權值;
*CMOS和TTL兼容的I/O,TQFP144封裝,5V標準電源供電。
不難看出,應用這種神經(jīng)網(wǎng)絡芯片不需要操作系統(tǒng)和編程語言,主要的工作就是訓練它和讓它學習。因此,用它開發(fā)面向消費類的模式識別產(chǎn)品是一種簡單且實用可行的方法,可以大大地縮短研發(fā)周期。
本文給出了用六片ZISC036級連,通過印制電路板實現(xiàn)的通用模式識別系統(tǒng)。圖2為這個系統(tǒng)的總體框圖。
系統(tǒng)通過PCI總線接受待識別的模式原始數(shù)據(jù)。數(shù)字存儲在2個8MB高速DRAM區(qū)中。神經(jīng)網(wǎng)絡控制器選用Xilinx Virtex FPGA,它的主要功能是完成對原始數(shù)據(jù)的特征矢量提取并輸入到ZISC036芯片陣列中。可以使用標準的FPGA開發(fā)工具生成不同的RBF文件,從而實現(xiàn)不同的特征矢量提取電路。ZISC036芯片陣列按照三描述的方法一個個順序接受矢理輸入,然后進行并行的學習和分類,識別結(jié)果作為輸出返回。只要修改FPGA中的特征矢量提取電路和界面程序,就可以實現(xiàn)圖像、話音等各種不同的模式識別程序,只要修改FPGA中的特征矢量提取電路和界面程序,就可以實現(xiàn)圖像、話音等各種不同的模式識別功能。這個通用模式識別系統(tǒng)的性能以傳統(tǒng)CPU或DSP的指標來衡量,相當于13.2GPS(每秒執(zhí)行132億條指令)。
用上述系統(tǒng)可以完成如圖像目標跟蹤、圖像識別、數(shù)據(jù)挖掘等許多實時性要求很高的模式識別和分類功能。以下用一個自適應圖像目標跟蹤的實驗作為例子,視頻圖片演示結(jié)果如圖3所示。
圖3的視頻圖片從一段AVI文件中捕獲。首先從初始的視頻幀中選定汽車的圖像,提取其紋理特征作為訓練樣本輸入到ZISC神經(jīng)網(wǎng)絡。然后,ZISC神經(jīng)網(wǎng)絡在后面接下來的視頻幀中搜索類似的圖像紋理模式并圈定跟蹤目標的坐標。如果發(fā)現(xiàn)所跟蹤目標的模式發(fā)生變化,ZISC神約網(wǎng)絡能夠自動學習新的特征并建立一個新的模式存入神經(jīng)網(wǎng)絡。通過不斷地比較已存入神經(jīng)網(wǎng)絡的模式和所跟蹤目標之間的區(qū)別,系統(tǒng)就能夠識別目標,從而在擁擠的背景和變化的環(huán)境下始終鎖定目標。實驗用視頻圖片為320×240像素,跟蹤目標掃描范圍為20×20像素。
結(jié)語
RBF神經(jīng)網(wǎng)絡的硬件實現(xiàn)是實現(xiàn)高速大規(guī)模模式分類的關鍵,而使用現(xiàn)有的比較成熟的商業(yè)芯片又無疑能簡化模式識別系統(tǒng)的開發(fā)工作。IBM的ZISC采用數(shù)字電路技術實現(xiàn)了RBF神經(jīng)網(wǎng)絡芯片,用它作為核心,既能夠大幅度提高識別性能,又能夠縮短開發(fā)周期,是設計高性能模式識別。