FPGA技術(shù)的應(yīng)用
困難依然存在,我在20世紀(jì)80年代晚期和90年代初期所使用的計(jì)算機(jī)對(duì)于我所構(gòu)想的任務(wù)來說簡(jiǎn)直慢得“不可救藥”。當(dāng)我開始試用十幾個(gè)進(jìn)化的模塊時(shí),Lizzy在計(jì)算機(jī)屏幕上的模擬速度顯著變慢。每當(dāng)我加上另一個(gè)模塊的權(quán)值后,模擬速度就會(huì)變得更慢一些。很顯然,這不是一條正確的路。怎樣才能解決這個(gè)問題呢?
這個(gè)時(shí)候,也就是1992年,我已經(jīng)完成了博士學(xué)位,開始了在日本的博士后工作。那年夏天,我和我所合作的、在維吉尼亞的喬治·梅森大學(xué)的一個(gè)電子工程師朋友進(jìn)行了一次交談。我問這位熟人怎樣才能使我的神經(jīng)網(wǎng)絡(luò)模塊的進(jìn)化速度通過電子技術(shù)得到提升。討論了半個(gè)小時(shí)后,他提到了一個(gè)稱作FPGA(Field Programmable Gate Array可編程門電路序列)的技術(shù)。因?yàn)槲也皇请娮庸こ處煟晕覐膩頉]有聽過這樣的東西?!笆裁词荈PGA?”我問。他告訴我這是一種可編程的特殊芯片,也就是說,我們可以用一個(gè)比特串來指令芯片里的電路怎樣去自我連接(或者用術(shù)語(yǔ)來說,就是自我“設(shè)置”)。
我頓時(shí)興奮無比。一個(gè)構(gòu)想閃過我的腦海。既然在過去的幾年里我一直利用基因算法來進(jìn)化神經(jīng)網(wǎng)絡(luò),我現(xiàn)在的傾向是把設(shè)置比特串想象成基因算法里的染色體,因此,在芯片里進(jìn)化硬件的想法看起來是可行的了。我開始不斷地“拷問”我的朋友,問這些設(shè)置比特串可以無數(shù)次的發(fā)送嗎?他想了一會(huì),回答說,如果芯片是基于RAM(就是計(jì)算機(jī)內(nèi)存)的話,那么就像任何計(jì)算機(jī)里的普通內(nèi)存一樣,可編程芯片可以被無限制地重新編程。
我非常高興,因?yàn)檫@意味著可以通過發(fā)送隨機(jī)的比特串,來隨機(jī)地設(shè)置或者連接可編程芯片,并產(chǎn)生復(fù)雜的隨機(jī)電路。如果有另外一個(gè)被編程的用來測(cè)試隨機(jī)程序芯片的性能電路,那么就可能在硬件上以硬件速度執(zhí)行基因算法。
我為這個(gè)構(gòu)想而激動(dòng)不已,以至于我一回到日本的研究組就馬上為我的想法作了一次研討會(huì),并且開創(chuàng)了所謂的“可進(jìn)化硬件”的研究領(lǐng)域。并發(fā)表關(guān)于這個(gè)想法的論文,向同事宣揚(yáng),在會(huì)議上作演講,等等??蛇M(jìn)化硬件(Evolutionary Hardware 或者 EH),現(xiàn)在已經(jīng)是個(gè)確立的研究領(lǐng)域了,每年都會(huì)在美國(guó)、歐洲和日本舉行研討會(huì)并出版相關(guān)的學(xué)術(shù)期刊。作為該領(lǐng)域的先驅(qū),我常常在自己的日常工作中試用它的基本思想。
緊接的那一年,即1993年,我轉(zhuǎn)到日本京都的研究實(shí)驗(yàn)室從事人工大腦的制造工作。我相信,可進(jìn)化硬件是一個(gè)使人工大腦制造變?yōu)榭赡艿挠行Чぞ摺?/p>
我開始寫論文,聲稱我打算在2001年前制造一個(gè)擁有10億神經(jīng)元的人工大腦。在1993年,宣布這樣的計(jì)劃常常會(huì)招來不信任的眼光。因?yàn)樵谀菚r(shí),大部分的神經(jīng)網(wǎng)絡(luò)研究者僅僅使用幾十個(gè)或者上百個(gè)神經(jīng)元。就像我早幾年一樣,突然聽到某個(gè)人說要使用上十億個(gè)神經(jīng)元,簡(jiǎn)直是非??尚Φ?。為此我被嘲笑、奚落。
但是,我堅(jiān)信我的想法是可行的。如果某個(gè)人制造一種基于可進(jìn)化硬件原理的特殊計(jì)算機(jī),那么,其電子性的進(jìn)化速度將會(huì)使大腦制造成為可能。我用數(shù)學(xué)進(jìn)行了推理,證明在2001年前制造出擁有十億個(gè)神經(jīng)元的人工大腦是可行的。我和日本實(shí)驗(yàn)室有一個(gè)7~8年的合同,因此,我想我有足夠的時(shí)間來實(shí)現(xiàn)我的夢(mèng)想。
我的第一個(gè)任務(wù)就是選擇一種可以設(shè)計(jì)和進(jìn)化神經(jīng)網(wǎng)絡(luò)的媒介。我選擇使用胞腔自動(dòng)機(jī)(Cellular Automata 或者簡(jiǎn)稱為CA)。在二維胞腔自動(dòng)機(jī)上的每一個(gè)細(xì)胞都類似于棋盤上的一個(gè)方格,但是有兩個(gè)不同。一個(gè)是這個(gè)棋盤有無限個(gè)方格,另一個(gè)是方格的顏色不僅限于黑色或白色,而可以是有限集合里的任何顏色。每個(gè)方格在每個(gè)單位時(shí)間里可以改變其顏色而成為集合中其他的任何一種顏色。一個(gè)特定方格所要改變的顏色決定于它現(xiàn)在的顏色和其鄰接方格的顏色。舉個(gè)例子,如果北邊方格是紅色,東邊方格是黃色,南邊方格是藍(lán)色,西邊方格是綠色,并且中間的方格是棕色,那么在下一個(gè)時(shí)刻,中心方格將變?yōu)樽仙?/p>