Latest Entries

AI 自動通關超級瑪利歐 8-4:強化學習實驗全紀錄

導語

我最初開始研究強化學習(Reinforcement learning,簡稱RL),只是想做一個可以幫助自己在遊戲中刷幣的外掛。後來我選擇了超級瑪利歐兄弟作為實驗平台,因為我以為 AI 可以訓練到類似 Speedrun 的速度通關。

在研究過程中,我沒有找到任何 8-4 關卡的 AI 通關紀錄,所以我決定把這個項目當作第一階段目標:訓練 32 個模型分別通過瑪利歐的 32 個關卡,最終目標是用單一模型通關全部關卡。


影片展示


影片中有幾個精彩亮點:
第一次下水管:AI 成功通過起始下水管
空中水管特殊解:AI 利用烏龜彈跳,直接跳上空中水管,省去踩隱藏磚的步驟
水底障礙穿越:AI 不等待怪物散開,直接從狹窄空間穿越
踩死鐵鎚龜:AI 從幾乎自殺角度精準踩死怪物,順利通關


訓練過程概述

模型架構:使用 PPO(Proximal Policy Optimization)進行訓練。訓練過程中持續調整 reward 設計與網路參數,幫助收斂。

Reward 設計:
獲得分數 × 0.01 - 花費時間 + 往右移動距離 + 通關獎勵 - 死亡懲罰
通關獎勵和死亡懲罰 = 剩餘時間 × 0.5 (赴死會比等死的懲罰還低,避免AI恐懼死亡而空轉)

多執行序加速:使用 8 個執行序同時蒐集數據,一組可蒐集 8*1024=8192 筆數據,每組數據訓練 10 輪 × 32 批次。後期其中一個執行序專門使用最佳紀錄來蒐集後段資料。

數據量:大約蒐集 80,000,000 筆資料後(100組),模型才能穩定通關8-4。

Greedy 測試:使用 Greedy 策略可以 100% 成功通關,影片即展示的就是 Greedy 版本。


技術亮點

AI 在 8-4 關卡找到人類不容易的特殊解
後期訓練中,模型可以克服怪物障礙,精準通過水底區域
Reward 設計與多執行序蒐集資料策略顯著提高收斂速度
模型雖然使用多層卷積處理畫面,但仍能保持對關鍵事件(下水管、跳躍、怪物位置)的敏感性


研究動機與後續計畫

我最初研究 RL 只是想做遊戲外掛,但在超級瑪利歐中訓練出穩定通關 AI 後,我發現這個遊戲有一個 benchmark 可以做為比較標準。(ECS7002P-MarioAI)

未來可能會:
嘗試用單一模型通過所有關卡
與其他 AI benchmark 進行比較
將方法應用到其他遊戲


結尾

如果你對 AI 訓練遊戲模型有興趣,或想分享你的訓練經驗,歡迎留言或訂閱我的博客。我也會陸續分享更多關卡的通關紀錄與分析。

留言