人工生命 v2.0.0 發布,給青蛙添個眼睛

←手機掃碼閱讀     admin @ 2019-06-13 , reply:0

Frog | 人工生命
https://gitee.com/drinkjava2/frog

這是一個人工生命試驗項目,最終目標是創建「有自我意識表現」的模擬生命體,技術架構基於02年提出的 一個人工腦模型。 這個項目永遠沒有結束的時候,開始於模擬一個簡單的生命體,然後是青蛙、狗......, 結束於有「自我意識表現」的人工腦。

本次更新內容為幾個提交內容的總和,因為這個項目本身的特點,決定了它不可能是個「有用」的程序,就好象你如果真的拿到一隻青蛙,也不知道能用它來幹什麼,所以我也不知道什麼時候該發布更新資迅。只好將幾次更新累積在一起發。但這個項目足夠有趣,對神經網路、人工智慧感興趣的同學們可以看一看。自從上個版本「第一個人工生命誕生」后,目前主要改動是給青蛙加了個眼睛,但非常簡陋,指望青蛙進化出一雙炯炯有神大眼睛的同學們可能要失望了。以下為更新內容流水賬:

2019.03.11 虛擬環境已建好,可以模擬低等生命的遺傳、繁殖、變異、進化現象,但目前只能往一個方向運動,相當於一個最簡單的單細胞生物,還不具備視覺能力,不具備主動找食能力。
運行run.bat可以查看演示(需要安裝Java8和Maven)。Env.java中的幾個重要參數說明:

  • SHOW_SPEED: 調整實驗的速度(1~1000),值越小則越慢。
  • ENV_WIDTH: 虛擬環境的大小(100~1000)
  • EGG_QTY: 每次允許Frog下多少個蛋,每個蛋可以孵出4個青蛙。通常下蛋取值在10~1000之間。蛋保存著我們測試的結果。實驗的最終目標就是獲得一個蛋。
  • FOOD_QTY:食物的數量,食物越多,則Frog的生存率就越高,能量排名靠前的一批Frog可以下蛋,其餘的被淘汰。
    下面是這個測試的動畫截圖,有興趣的可以試著自己運行一下:
    result1
    另外每步演示的結果(egg)會存檔在根目根目錄下,名為egg.ser,可以刪除這個文件以從頭開始新的測試。因為還沒涉及腦模型的搭建,可以看到有些青蛙跑得飛快,這是自然選擇的結果,因為跑在最前面的吃得多。 
    2019.03.21 添加了腦圖,改進隨機運動模式為Hungry區驅動。從腦圖上可以直觀地觀察腦結構,方便調試。 
    2019.04.01 改進腦圖的顯示bug, 每一次生成Frog時添加隨機神經元,並簡單實現"卵+精子->受精卵"演算法,以促進種群多樣性。 
    2019-04-12 添加一個簡單的眼睛(只有四個感光細胞),自然選擇的結果是眼睛被選中,但是和運動區短路了,談不上智能。但有眼睛后找食效率明顯提高了,見下圖:
    resut2
    2019-06-13 做了一些重構清理,加上了Happy和Pain兩個器官,分別對應進食獎勵和痛苦感,後者在靠近邊界時激發。觀查它的表現,痛苦感生效了,一些Frog跑到邊界后就不再前進,而是順著邊界溜下去了,但是Happy器官沒有生效,這也很顯然,因為Happy屬於複雜的進食條件反射鏈的一部分,在沒有記憶器官(演算法)引入之前,再怎麼優勝劣汰也是沒辦法用上進食獎勵信號的。見下圖: 
    resut3

版權 | License

Apache 2.0

期望 | Futures

歡迎發issue提出更好的意見或加入開發組,尤其歡迎能接觸到超級計算機的同學加入,隨著虛擬環境的複雜度和神經元數量增多,對電腦速度要求會越來越高。

關注我 | About Me

Github
碼雲





[admin ]

來源:OsChina
連結:https://www.oschina.net/news/107427/rengongshengming-2-0-0-released
人工生命 v2.0.0 發布,給青蛙添個眼睛已經有25次圍觀

http://coctec.com/news/all/show-post-207103.html