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