工程師花5萬小時訓練AI遊玩《寶可夢》紅版 突破第一道館但走不出月見山
在經歷長達 5 萬小時的訓練與學習後,一位工程師成功讓一套 AI 模組學會如何遊玩《寶可夢:紅版》,創造出能夠自行探索遊戲,組成寶可夢隊伍,並成功擊敗第一道館的演算法。然而,這套 AI 一直到計畫結束時依然無法順利走出前往第二道館的月見山,或學會不要花錢買鯉魚王。即使如此,這項實驗依然讓玩家一窺機器學習技術的運作方式。
根據工程師 Peter Whidden 分享的流程影片,這套 AI 能夠在模擬器上以打破常規的輸入方式與遊戲進行互動,那就是能夠像人類一樣先按下一個操作按鍵後才觀察會發生什麼事。在實驗的開頭,Whidden 設置一段長約兩小時遊戲時間的學習流程,並利用模擬器的加速功能將其縮短到現實時間的 6 分鐘左右。在正式展開後,他更進一步讓 40 個測試情境同步進行。
由於機器演算法在本質上並不在乎「全破」一款遊戲,因此 Whidden 為 AI 演算法設計一套在完成特定目標時能夠獲得獎勵的系統。為了鼓勵 AI 在《寶可夢:紅版》中進行探索,只要能夠在地圖上看到一些之前沒有看過的東西,就能夠獲得獎勵點數。最終 AI 順利從真心鎮出發,穿過常盤森林,來到深灰市挑戰第一道館。
在那之前,AI 還需要更加完善的獎懲系統。在學會看到新事物能夠獲得獎勵後,雖然 AI 會開始不斷向前邁進,但完全不在乎收服寶可夢或進行對戰,而是在遇到野生寶可夢時立刻逃走。因此,Whidden 為獎勵系統加入更多內容,依照 AI 寶可夢隊伍的等級總和給予獎勵,讓它開始有動力去練等和捕捉寶可夢。
只不過在某一次的演算中,AI 走進寶可夢中心時意外開啟 PC,並在其中存放幾隻寶可夢。由於 AI 獲得的獎勵點數是依照隊伍等級總和而定,這個行為導致 AI 獲得的分數瞬間驟降。為了避免重蹈覆轍,AI 在那之後的所有演算中都選擇避開寶可夢中心,完全不敢進去為寶可夢補血,這讓 Whidden 不得不再次插手調整。
這套 AI 演算法最基本的運作方式,其實就是隨機在《寶可夢:紅版》中走動與遊戲進行互動,直到發現能夠以最有效率的方式獲得最多獎勵的路徑,並將經驗保留到下一次的演算中。在挑戰的過程中,AI 都只會使用最基本的攻擊招式撞擊來進行對戰,直到該招式的 PP 用完後才會使用其他選擇。某次演算中,AI 終於發現傑泥龜的泡沫攻擊能夠對小剛的寶可夢造成大量的傷害,最終順利擊敗這位道館館主。
即使 AI 在對於遊戲的理解與邏輯上依然比不上人類,但這場實驗發掘了一些更加深層的細節。根據 Whidden 的發現,AI 在經歷一段時間的演算後就開始固定以看似不尋常的路徑從真心鎮出發,直到遇到第一隻野生寶可夢。然而,這一系列的操作其實能夠保證 AI 能夠一球抓到遇見第一隻寶可夢。也就是說,AI 發現一個 Speedrun 玩家可能要花上好幾年的時間研究才有機會注意到的系統漏洞。
這套 AI 演算法在成功突破第一道館時基本上已經達成了 Whidden 最初設定的目標,但 Whidden 決定要讓 AI 的《寶可夢:紅版》冒險繼續下去,看看目前的獎勵機制到底能讓它走多遠。可惜的是,第一和第二道館之間的月見山對於看到新事物就能加分的 AI 來說實在是太過於容易分心,因此一直到 Whidden 決定讓實驗告一段落前都無法順利抵達華藍市。
除此之外,AI 似乎非常喜歡從鯉魚王大叔手中購買鯉魚王,因為這樣的行為能夠讓 AI 寶可夢隊伍的等級總和立刻多出五等,因此到實驗結束前,AI 在其中 1 萬次的演算中都跑去買了鯉魚王。另外值得注意的是,AI 有一次將抓來的小拉達命名為了「AI」,讓人細思極恐。
參考原文:GamesRadar