玩轉 馬里奧 的演算法能搞定 口袋妖怪 嗎?

2021-09-20 00:22:07 字數 1741 閱讀 5403

現在,你很可能已經聽說過機械人玩遊戲的水平超過人類了吧。這些機械人的一種設計方法是給它們明確地程式設計,設定一組輸入和一組輸出之間的對應關係;或者也可以讓它們自主學習、進化,它們就可以對同樣的輸入做出不同的反應,以期找到最優的對策。

一些聞名遐邇的機械人有:

alphazero:它是乙個象棋機械人,經過 24 個小時的訓練成為了世界最佳棋手。

alphago:它是乙個圍棋機械人,因打敗世界級棋手李世石和柯潔而聞名世界。

mari/o:它是乙個超級馬里奧機械人,可以自學快速通過任意馬里奧關卡。

「馬里奧」和「口袋妖怪」之間存在的三個關鍵差異點,可用來解釋其原因:

第一,目標的數量

第二,分支乘數

第三,區域性優化 vs 全域性優化 

下面,讓我們就這三個因素來比較這兩款遊戲吧。

目標的數量

機器學習的方式是通過優化某種目標函式。無論是將(增強學習和遺傳演算法中的)反饋函式或者適應度函式最大化,還是將(監督學習中的)價值函式最小化,它的目標都是相似的:盡可能獲得最佳成績。

「馬里奧」有乙個目標:到達最後的關卡。簡單來說,就是你在死之前到達的地方越遠,你就玩得越棒。這是你唯一的目標函式,並且你的模型能力可以直接用這一數值來評估。

這就引導我們進入到下乙個論題。

分支乘數

簡單來說,這個分支因子就是你在任意一步,能夠做多少個選擇。在象棋中,平均的分支乘數是 35;在圍棋中,分支乘數是 250。對於之後每增加的一步,你有(分支乘數^步數)個選擇來進行評估。

在「馬里奧」中,你或者向左走、向右走、跳躍,或者啥也不做。機器需要評估的選擇數量少,而且這個分支乘數越小,機械人通過計算能夠**到的未來就越遠。

區域性優化 vs 全域性優化 

區域性優化和全域性優化可被看作兼有空間和時間上的意義。短期的目標和當前的地理區域被視為區域性的,而長期目標和相對較大的區域例如城市甚至整個地圖,被視為全域性的。

將每一次移動分解成它的構成部分,會是將口袋妖怪問題分解成乙個個小問題的方法。優化區域性以實現從乙個區域的點 a 到點 b 是簡單的,但是決定哪個目的地是最佳的點 b,是乙個更難得多的問題。在這裡,貪婪演算法就失效了,因為區域性優化的決策步驟並不一定帶來全域性最優。

最後一件事

從機械人角度,「口袋妖怪」不僅僅是乙個遊戲。機械人都是單一任務的專家,而當遇到乙個想要對戰的 npc 時,乙個幫助你在地圖中到處移動的機械人將無能為力。對它們而言,這是兩個完全不一樣的任務。

目前為止,對於打造了在遊戲中比我們的表現更好的機械人這一現實,我們應該感到欣慰。現在,這些遊戲雖然涉及到了複雜的數學,但是其目標是簡單的。隨著 ai 的發展進步,我們將創造出這樣的機器:它們能完全通過自己對複雜優化問題的學習,解決影響力日益增強的現實世界問題。請放心,還有一些事情是機器尚未打敗人類的,其中就包括我們的童年遊戲——至少現在是這樣。

長翅膀的馬里奧

文科大三體驗工科研究生,想都不敢想 一 二零二零這一年感覺誰也挺不容易的,我也是換了一種形式沉澱了下來很多,摸索出適合自己的一套系統學習方法。二 最近一兩個月,除了要正常本科安排的培養課程,我還加入了一位教授的大資料開發專案團隊。在文科專業中能有工科的實驗專案機會去鍛鍊實屬難得,這也符合我自身向文工...

位元組跳動演算法題 馬里奧跳躍

思路 動態規劃 n 7 p 0 maxdis 10,0,2,1,1,0,1 maxdis 2,0,1,1,1,1,1 maxdis 5,0,5,1,1,1,1 dp i 代表當前點到終點的最小跳躍次數 dp 0 for i in range 0,len maxdis for i in range l...

玩NDS的超級馬里奧感想!!

超級馬里奧 這個遊戲相信大家都非常熟悉,不用多介紹了吧!記得小的時候為之瘋狂 2007年的2月,再次在nds上玩到 現在玩遊戲的意義跟以前大大不同,以前好玩的遊戲就會玩,享受過程 現在玩遊戲就辛苦了,好玩不好玩似乎沒那麼重要了,當然還會盡量選擇好玩的遊戲,遊戲過程中還要思考究竟這是如何實現的?這個功...