為了解釋基因算法是怎么運(yùn)用于此的,想象一下產(chǎn)生了100個(gè)隨機(jī)的比特串,每個(gè)長(zhǎng)2 048個(gè)比特。從每一個(gè)比特串我們可以構(gòu)造一個(gè)相應(yīng)的神經(jīng)網(wǎng)絡(luò)。對(duì)于每一個(gè)網(wǎng)絡(luò)都采用同樣的初始信號(hào)來(lái)讓網(wǎng)絡(luò)的信號(hào)傳輸啟動(dòng)。提取其中的某些輸出信號(hào)并且使用它們,比如,通過(guò)控制構(gòu)成棍形腿的4個(gè)線條的角度來(lái)讓棍形腿走路。我們可以測(cè)出在一定時(shí)間內(nèi)腿的走動(dòng)距離。
那些走更長(zhǎng)距離的神經(jīng)網(wǎng)絡(luò)的比特串,可以存活到下一代。那些走的距離短一些的比特串則會(huì)死亡,這就是所謂的達(dá)爾文定律,即“適者生存”。比特串越適應(yīng),即具有更高性能分?jǐn)?shù)或“高適應(yīng)值”的就越會(huì)復(fù)制自己,產(chǎn)生所謂的“孩子”或后代。然后,這些孩子和它們的父輩一起被“變異”,也就是說(shuō),每一個(gè)比特有一個(gè)很小的概率來(lái)改變相應(yīng)的值(0變成1,1變成0)。兩個(gè)比特串可以“交配”,即一個(gè)稱為“特征交換”的過(guò)程。它有很多方式。一個(gè)簡(jiǎn)單的方式就是,選取兩個(gè)父比特串或者通常所謂的“染色體”,在同樣的位置把它們分成兩部分,然后交換相應(yīng)的部分。這等價(jià)于性,基本上來(lái)說(shuō)就是混合來(lái)自父輩的基因來(lái)產(chǎn)生后代。
越適應(yīng)的父輩就擁有越多的后代。每一代基因算法擁有一定的總體數(shù)量,例如100。大多數(shù)的變異和特征交換會(huì)讓染色體擁有更低的適應(yīng)值,所以它們將被從總體中清除。偶爾的一次變異或一次特征交換則會(huì)增加一點(diǎn)染色體的適應(yīng)值,以至于在某個(gè)時(shí)候它會(huì)把自己的父親或者其他低適應(yīng)值的染色體擠出總體。通過(guò)對(duì)這樣的過(guò)程循環(huán)幾百次,就有可能進(jìn)化出性能更好的神經(jīng)網(wǎng)絡(luò),或者任何需要進(jìn)化的目標(biāo)。
神經(jīng)系統(tǒng)進(jìn)化
當(dāng)我在布魯塞爾攻讀博士學(xué)位的時(shí)候,研究如何進(jìn)化出可以隨時(shí)間變化輸出信號(hào)的神經(jīng)網(wǎng)絡(luò)。據(jù)我所知,在此之前沒(méi)有任何人做這樣的事情。在此之前,曾經(jīng)有人把基因算法應(yīng)用到神經(jīng)網(wǎng)絡(luò)進(jìn)化中,但這些應(yīng)用都是靜態(tài)的,也就是說(shuō),輸出的信號(hào)不會(huì)隨著時(shí)間而改變。我覺(jué)得這些限制是不必要的。基因算法應(yīng)該能夠解決隨時(shí)間改變信號(hào)的問(wèn)題。當(dāng)我想通了這一點(diǎn)后,就開(kāi)始研制可以讓棍形腿走路的神經(jīng)網(wǎng)絡(luò)。我成功了。這需要一些小技巧來(lái)讓它進(jìn)化,它確實(shí)實(shí)現(xiàn)了。
這個(gè)發(fā)現(xiàn),說(shuō)明動(dòng)態(tài)進(jìn)化(和靜態(tài)相對(duì)應(yīng))的神經(jīng)網(wǎng)絡(luò)是可以實(shí)現(xiàn)的,這個(gè)發(fā)現(xiàn)給我打開(kāi)了一個(gè)嶄新的世界,并且產(chǎn)生了一個(gè)新的被稱作“神經(jīng)系統(tǒng)進(jìn)化”的研究領(lǐng)域。我開(kāi)始考慮下一步的工作。我產(chǎn)生了一個(gè)新想法,那就是如果我用一個(gè)神經(jīng)網(wǎng)絡(luò)進(jìn)化出一種行為,那么我就可以用第二個(gè)神經(jīng)網(wǎng)絡(luò),也就是說(shuō),用一套不同的權(quán)值,進(jìn)化出一個(gè)不同的行為。權(quán)值設(shè)置決定輸出信號(hào)的動(dòng)態(tài)性。
于是我充滿信心,不再局限于二維平面的簡(jiǎn)單的棍形腿試驗(yàn),而是開(kāi)始進(jìn)行我稱作“Lizzy”的三維生物模擬行為。如果我能成功地進(jìn)化出一種行為,那么就可以進(jìn)化出一系列的行為,而每一個(gè)神經(jīng)網(wǎng)絡(luò)對(duì)應(yīng)于一個(gè)行為?,F(xiàn)在我就可以更換行為,讓Lizzy先走,然后改變方向。為了使行為轉(zhuǎn)換更平緩,唯一必要的就是先停止“向前走”行為生成網(wǎng)絡(luò)(或者是我所稱作的模塊)的輸入,然后輸入行走模塊。模擬試驗(yàn)顯示動(dòng)作轉(zhuǎn)化很平緩,這非常好。現(xiàn)在我知道我可以讓類似四腳生物的Lizzy展示行為庫(kù)里的所有行為。
現(xiàn)在產(chǎn)生的問(wèn)題就是:什么時(shí)候改變行為。也許這樣的決定來(lái)源于環(huán)境的刺激。我開(kāi)始試驗(yàn)是否可以進(jìn)化出探測(cè)器模塊,例如,信號(hào)強(qiáng)度探測(cè)器、頻率檢測(cè)器、信號(hào)強(qiáng)度差異探測(cè)器,等等。是的,這是可能的。另一個(gè)邏輯步驟就是試著進(jìn)化決策類型模塊,例如這樣的類型——“如果輸入1的信號(hào)強(qiáng)度大于S1,并且輸入2的信號(hào)強(qiáng)度小于S2,那么采取An 行為”,也就是說(shuō),刺激信號(hào)可以傳送到執(zhí)行An行為的模塊。
綜合所有的三種模塊,也就是行為產(chǎn)生(或行為模塊)、探測(cè)模塊和決策模塊,看起來(lái)好像可以開(kāi)始制造人工神經(jīng)系統(tǒng)的工作了。如果有很多這樣的模塊,那么我認(rèn)為可以很合適地稱這樣的集合為一個(gè)“人工大腦”。就是在這樣的階段上,我信心滿滿,開(kāi)始朝著人工大腦先驅(qū)者的方向前進(jìn)。