人工生命開(kāi)源項(xiàng)目初稿
人工生命 v1.0
這是一個(gè)以“造人”為終極目標(biāo)的項(xiàng)目,并不是一個(gè)實(shí)用的、可以馬上在實(shí)際中使用的項(xiàng)目,目前還處于初始階段,作者本人也處于探索中,希望有興趣者能加入,早日在碼云上創(chuàng)造出一個(gè)真正意義上的人工生命。
簡(jiǎn)介 | Introduce
目前人工智能的研究主要集中在算法上,下面這張圖看了有什么感覺(jué):
絕對(duì)是四個(gè)字: 一臉懵逼。(原貼位于[這里])
對(duì)于普通程序員來(lái)說(shuō),是不可能學(xué)會(huì)上述知識(shí)樹(shù)的所有、甚至是一小部分的知識(shí)的,但好在目前神經(jīng)網(wǎng)絡(luò)研究還有另一條路可以走,就是模擬大自然,利用優(yōu)勝夯汰、隨機(jī)變異、用進(jìn)廢退這三大原則,用計(jì)算機(jī)的高速度來(lái)讓電腦自動(dòng)生成最優(yōu)神經(jīng)網(wǎng)絡(luò)腦模型,而不是手工從算法著手來(lái)模擬人腦,這是一個(gè)捷徑,因?yàn)椴挥没ㄌ鄷r(shí)間去研究算法(模式識(shí)別的成果可以引用,但僅限于此,人類的算法不應(yīng)該干涉電腦生成的網(wǎng)絡(luò)模型),只需要花時(shí)間在模擬環(huán)境和編制簡(jiǎn)單的用進(jìn)廢退邏輯即可,這是程序員所擅長(zhǎng)的。大自然從來(lái)就不懂什么是算法,聰明如我等程序員,難道還不如蠢笨的大自然? 從單細(xì)胞進(jìn)化到多細(xì)胞、從青蛙進(jìn)化到人類,這是一個(gè)漫長(zhǎng)的、隨機(jī)的進(jìn)化過(guò)程,但在超級(jí)電腦上跑可能只要幾天時(shí)間,就可能得到一個(gè)相當(dāng)不錯(cuò)的腦模型。當(dāng)然電腦速度越快、容量越大、環(huán)境模擬的越真實(shí),則優(yōu)勝夯汰后形成的腦結(jié)構(gòu)就越復(fù)雜,錯(cuò)的腦模型都被自然淘汰掉了。 從算法著手搭建,還是從模擬環(huán)境著手自動(dòng)進(jìn)化,這是創(chuàng)建人工生命的兩個(gè)大方向,第一個(gè)方向可以說(shuō)是一條死路,因?yàn)樗痪邆渌惴ㄗ愿倪M(jìn)、變異、遺傳(算法的壓縮)功能。模擬環(huán)境的難點(diǎn)在于環(huán)境本身必須足夠復(fù)雜、正確。而且必須循序漸進(jìn),與腦的進(jìn)化同步,如果把一群青蛙扔到猴子的模擬環(huán)境中,則所有青蛙都會(huì)被自然淘汰掉,項(xiàng)目就無(wú)法進(jìn)行下去了。 目前的項(xiàng)目只是搭建了一個(gè)框架,語(yǔ)言為Java,利用Swing作圖環(huán)境,構(gòu)建一個(gè)500x500象素點(diǎn)的虛擬環(huán)境、并模擬一群草履蟲(chóng)的優(yōu)勝夯汰,來(lái)獲取第一個(gè)具備自進(jìn)化功能的人工生命體,具體腦(即電腦生成的神經(jīng)網(wǎng)絡(luò))的實(shí)現(xiàn)算法還需要以后加入。現(xiàn)誠(chéng)心邀請(qǐng)有興趣加入的同學(xué)一起來(lái)加入,完成第一個(gè)初步目標(biāo):造出一個(gè)真正意義上的人工生命:草履蟲(chóng)。
短期目標(biāo) | Sort-term Goals
第一個(gè)初步目標(biāo):造出一個(gè)真正意義上的人工生命:草履蟲(chóng)。它必須具備以下前四個(gè)特點(diǎn):
-
腦結(jié)構(gòu)由電腦生成:神經(jīng)網(wǎng)絡(luò)由電腦算法生成,但是電腦算法僅限于模擬環(huán)境,而不是直接參與搭建神經(jīng)網(wǎng)絡(luò),就好象大自然只負(fù)責(zé)拍死不合格的生命,它從不主動(dòng)參與設(shè)計(jì)大腦。
-
腦結(jié)構(gòu)可遺傳:類似于生物的DNA,電腦生成的腦結(jié)構(gòu)(神經(jīng)網(wǎng)絡(luò)),可通過(guò)簡(jiǎn)單的算法規(guī)則描述,并且此算法規(guī)則可以壓縮成較短的片段存儲(chǔ),并參與到下一代草履蟲(chóng)的構(gòu)建。
-
腦結(jié)構(gòu)可變異:算法規(guī)則可以變異,下一代生成的草履蟲(chóng)在腦結(jié)構(gòu)上與上一代總體相似,但存在部分變異。
-
適應(yīng)環(huán)境:草履蟲(chóng)能夠在模擬的虛擬環(huán)境下存活下來(lái),環(huán)境有微小的變化,能夠自適應(yīng)環(huán)境,并一代代生存將適應(yīng)這種環(huán)境的能力遺傳下來(lái)。
-
用進(jìn)廢退:這是一個(gè)假想,對(duì)于生物來(lái)說(shuō),存在這樣一種現(xiàn)象,就是用的多的器官,容易發(fā)生變異(例如經(jīng)常嚼檳榔,容易發(fā)生口腔癌變),有理由相信這不是偶然現(xiàn)象,而是生物在進(jìn)化過(guò)程中的一個(gè)有用的功能,以便于更快地變異,以適應(yīng)環(huán)境,并很可能這種變異會(huì)通過(guò)遺傳細(xì)胞(變異的算法規(guī)則)影響到下一代。
理論 | Theory
為什么明明是個(gè)電腦程序,只要滿足上述四個(gè)特點(diǎn)就可以稱之為"真正"的人工生命? 這一點(diǎn)我不想多說(shuō),大家可以百度一下"zhangrex 人工生命"就知道我的觀點(diǎn)了:意識(shí)從來(lái)就不存在,意識(shí)只是一種現(xiàn)象。風(fēng)吹、樹(shù)動(dòng)和風(fēng)吹、添衣,都只是一種現(xiàn)象而已,生命本質(zhì)上是一種現(xiàn)象,換句話說(shuō),只要表現(xiàn)出生命現(xiàn)象的事物,就可以稱其為生命了,不管它是高等還是低等,不管它的物質(zhì)存在基礎(chǔ)是怎樣的。作為一個(gè)二十年前就思考人工智能(可能比在座的各位年齡都長(zhǎng))者的話,請(qǐng)仔細(xì)思考一下這個(gè)觀點(diǎn)。哲學(xué)上、理論上對(duì)智能、意識(shí)的研究是很無(wú)聊的,相當(dāng)于在研究“無(wú)”到底是什么,不必多糾纏在理論和算法上。是的,用模擬環(huán)境得到的人工神經(jīng)網(wǎng)絡(luò)模型,我們確實(shí)無(wú)法掌控它的算法是怎樣生成的,但是我們知道,這符合大自然創(chuàng)造生命的規(guī)律。
項(xiàng)目架構(gòu) | Architecture
這是一個(gè)Java項(xiàng)目,分為Application、Env、Frog三個(gè)模塊:
Application模塊: 用于項(xiàng)目的啟動(dòng)、關(guān)閉等基礎(chǔ)服務(wù)。
Env模塊: 目前是一個(gè)500x500象素點(diǎn)的虛擬空間,由Swing生成畫(huà)像,這是程序員唯一可以控制的區(qū)域。
Frog: 這是人工生命的主體,目前起名叫青蛙,其實(shí)叫什么都一樣。它具備以下器官:
Leg: 與運(yùn)動(dòng)神經(jīng)元相連,Leg的激活將導(dǎo)致Frog移動(dòng),Leg有五個(gè)方向:上下左右停
Mouth: 只有一個(gè)動(dòng)作:eat 用來(lái)食用虛擬空間出現(xiàn)的虛擬食物,它是一個(gè)感覺(jué)器官,而不是一個(gè)運(yùn)動(dòng)器官,F(xiàn)rog本身具有一個(gè)能量字段,進(jìn)食后能量字段會(huì)增加,運(yùn)動(dòng)或隨時(shí)間流逝能量將減少,能量耗盡則Frog死亡。
Brain: 有眼、腦細(xì)胞、腦區(qū)、基因等對(duì)象
文檔 | Documentation
作者其它開(kāi)源項(xiàng)目 | Other Project
期望 | Futures
歡迎發(fā)issue提出更好的意見(jiàn)或提交PR,幫助完善人工生命項(xiàng)目。
