1

我一直在閱讀Augmented Topologies的NeuronEvolution,並且有這個小東西一直困擾着我。雖然利落閱讀肯尼斯·斯坦利的論文我來到這個數字在這裏:NeuroEvolution:NEAT算法創新編號

NEAT mutation

創新人數從1,2,3,4,5,6去1,2,3,4,5,第一次突變6,7。

第二個從1,2,3,4,5,6到1,2,3,4,5,6,8,9。

我的問題是爲什麼它會跳過7號,直接跳到8?我沒有發現與刪除創新數據有關的任何內容。

同樣的事情,在第二個數字中,家長1是如何失去6,7的,第8個基因在家長2中去了哪裏?

NEAT crossover

回答

1

的創新數(我將使用IN的簡稱)是一種特定件結構的標籤。因此,從神經元號碼1到神經元號碼2的連接將具有例如IN。 1,並且具有該連接的所有網絡都將該連接標記爲IN 1.當創建新連接(通過添加連接變異或添加節點變異)時,首先檢查在「數據庫」中是否存在這樣的連接插件。如果已經存在這樣的連接,則使用其IN。如果不是,則增加一個IN計數器,新連接將獲得這個新的IN並存儲在數據庫中。

在上半部分的第一個圖中,從神經元3向神經元5添加了一個新連接。如果這是第一次出現在整個羣體中的這種連接,則增加IN計數器並使用這個新的IN爲那個連接。如果它已經發生在其他地方,則使用其IN,而不是創建一個新的。這可能是其中的任何一種情況,我們不知道其他人是怎麼樣的。它只是發生連接3-> 5有IN 7.

現在,在第一個圖的底部,在神經元3和4之間添加一個神經元6,這意味着您添加連接3-> 6和6-> 4。再次,您首先問「數據庫中是否有連接3-> 6的IN?」如果是你使用那個IN,如果不是你增加計數器。其他連接也是如此。在該圖中,您可以想象所有這些新連接都是新連接,所以在上部IN計數器爲6,並且新連接尚未遇到,您增加了IN計數器並將7分配給連接。然後底部發生了,有兩個全新的連接,所以你把IN計數器增加到8和9.在底部,沒有連接3-> 5,它有IN 7,所以這就是IN 7沒有的原因那裏。

關於第二個圖,這只是一個例子,以顯示交叉如何在不相交的INs時工作。爲了舉例,父母就是這樣的。但是,他們可以很容易地進入這個狀態。想象一下,在進化的某個較早時間點,父母1只有IN1至5和5是迄今爲止最新的IN。然後,人口中的其他地方添加了神經元5和神經元4之間的新神經元(No.6),即創建了新的連接5→6和6→4。由於沒有遇到這種連接,IN計數器增加到6和7.然後,在此之後,通過添加新的連接1-> 8來變更父節點1。由於這也是新的,新的IN 8被分配。