深度學(xué)習(xí)因?yàn)槠鋸?qiáng)大的表征能力,在很多方面都有非常優(yōu)秀的性能,,它不論是在計(jì)算機(jī)視覺,、自然語言處理,還是在游戲智能體上都能構(gòu)建出優(yōu)秀的模型,。而最近圖盧茲聯(lián)邦大學(xué)等研究者表示進(jìn)化算法也有著與深度學(xué)習(xí)相類似的潛力,,它可以進(jìn)化出一些能玩 Atari 游戲的智能體,并取得與人類相匹配的性能,。
近期街機(jī)學(xué)習(xí)環(huán)境(ALE)被用于對比不同的控制器算法,,從深度 Q 學(xué)習(xí)到神經(jīng)進(jìn)化算法。Atari 游戲的環(huán)境在一個(gè)通用界面上提供了大量不同任務(wù),、可理解的獎(jiǎng)勵(lì)度量和令人興奮的研究領(lǐng)域,,且它所需的計(jì)算資源相對有限。無怪乎該基準(zhǔn)套件得到了如此廣泛的應(yīng)用,。
Atari 領(lǐng)域中的一個(gè)困難在于使用純像素的輸入,。盡管與現(xiàn)代游戲平臺(tái)相比,Atari 的屏幕分辨率不算高,,但處理這類視覺信息對于人工智能體來說仍然是個(gè)挑戰(zhàn),。人們使用目標(biāo)表征和像素縮減方法,將該信息壓縮成更適合進(jìn)化控制器的形式,。這里深度神經(jīng)網(wǎng)絡(luò)控制器表現(xiàn)更加優(yōu)秀,,原因在于卷積層和在計(jì)算機(jī)視覺領(lǐng)域的長期應(yīng)用。
笛卡爾遺傳規(guī)劃(Cartesian Genetic Programming,,CGP)在計(jì)算機(jī)視覺領(lǐng)域的應(yīng)用也有很長的歷史,,盡管比深度學(xué)習(xí)稍微短了一些。CGP-IP 能夠創(chuàng)建圖像濾波器,,用于去噪,、目標(biāo)檢測和質(zhì)心定位(centroid determination)。在強(qiáng)化學(xué)習(xí)任務(wù)中使用 CGP 的研究相對較少,本論文將展示首次使用 CGP 作為游戲智能體的研究,。
簡單而言,,笛卡爾遺傳規(guī)劃是遺傳規(guī)劃的一種形式,其中程序表征為有向的,、通常由笛卡爾坐標(biāo)索引的非循環(huán)圖,。其中功能性節(jié)點(diǎn)通常由一組進(jìn)化的基因定義,并通過它們的坐標(biāo)連接輸入與其它功能性節(jié)點(diǎn),。程序的輸出由任何內(nèi)部節(jié)點(diǎn)或程序輸入基于進(jìn)化的輸出坐標(biāo)得出,。
ALE 提供了 CGP 和其他方法之間的定量對比。直接將 Atari 游戲分?jǐn)?shù)與之前研究中的不同方法結(jié)果進(jìn)行對比,,以對比 CGP 與其他方法在該領(lǐng)域的能力,。
CGP 的獨(dú)特優(yōu)勢使得其應(yīng)用在 ALE 上非常合適。通過定長的基因組,,小型程序能通過進(jìn)化生成并被讀取以理解,。雖然深度 actor 或進(jìn)化神經(jīng)網(wǎng)絡(luò)的內(nèi)部機(jī)制可能難以了解,但 CGP 進(jìn)化的程序可以讓我們深入理解玩 Atar 游戲的策略,。最后,,通過使用用于矩陣運(yùn)算的函數(shù)集,CGP 能夠僅使用像素輸入而不使用先驗(yàn)游戲知識,,在多種游戲上實(shí)現(xiàn)與人類相當(dāng)?shù)男阅堋?/p>
論文:Evolving simple programs for playing Atari games
論文地址:https://arxiv.org/abs/1806.05695
項(xiàng)目地址:hps://github.com/d9w/CGP.jl
摘要:笛卡爾遺傳規(guī)劃(Cartesian Genetic Programming,,CGP)之前已被證明在圖像處理任務(wù)中具備使用計(jì)算機(jī)視覺專用的函數(shù)集來進(jìn)化程序的能力。類似的方法也可用于 Atari 游戲,。使用混合型 CGP 和適用于矩陣運(yùn)算的函數(shù)集(包括圖像處理)來進(jìn)化程序,,但是允許出現(xiàn)控制器動(dòng)作。盡管這些程序相對較小,,但很多控制器的性能與 Atari 基準(zhǔn)集的最優(yōu)方法不相上下,,且需要的訓(xùn)練時(shí)間更短。通過評估最優(yōu)進(jìn)化的程序,,我們可以找到簡單卻有效的策略,。
3 方法
盡管有很多在圖像處理中使用 CGP 的案例,但在玩 Atari 游戲時(shí)這些實(shí)現(xiàn)必須進(jìn)行修改,。最重要的是,,輸入像素必須通過進(jìn)化程序處理以確定標(biāo)量輸出,這需要程序減少輸入空間,。本研究選擇的方法可確保和其它 ALE 結(jié)果的可比較性,同時(shí)鼓勵(lì)有競爭力且簡單的程序的進(jìn)化,。
圖 1:使用 CGP 來玩 Atari 游戲,,藍(lán)色像素矩陣是進(jìn)化程序的輸入,進(jìn)化的輸出決定最后的控制器動(dòng)作。這里展示了所有控制器動(dòng)作,,但大多數(shù)游戲僅使用可用動(dòng)作的子集,。帶紅色標(biāo)記的動(dòng)作表示一個(gè)按鈕。
4 結(jié)果
圖 2: Kung-Fu Master 游戲的蹲伏方法和玩家功能圖,。為簡潔起見,,這里忽略未激活的輸出和導(dǎo)致這些輸出的計(jì)算圖。
圖 3:Centipede 玩家,,僅激活了輸出 17,,下-左-開火。所有其它輸出導(dǎo)致空值或恒定零輸入,,此處未展示,。
圖 4:Boxing 游戲,使用像素輸入來連續(xù)移動(dòng)和采取不同動(dòng)作,。這里,,CGP 智能體通過不斷打擊 Atari 玩家來緩慢移動(dòng),將 Atari 玩家逼到圍繩處,。