![]()
這篇研究來自德州農工大學數據科學研究院與計算機科學系,于2026年4月12日以預印本形式發布,編號為arXiv:2604.10812v1,感興趣的讀者可以通過該編號查閱完整原文。
說到用AI玩游戲,大多數人腦子里可能浮現的是AI打敗圍棋世界冠軍、或者在《星際爭霸》里橫掃職業選手的新聞。但你有沒有想過,讓一個AI玩《精靈寶可夢·紅版》這樣的經典Game Boy游戲,其實比打圍棋還要難得多?這不是在開玩笑——德州農工大學的研究團隊親身經歷了這份痛苦,然后把它做成了一篇正經的學術研究。
這項研究的核心,是讓一個AI學會玩《精靈寶可夢·紅版》游戲最開頭的幾段內容:從主角小智的房間里走出去、在彩葉鎮轉一圈找到高草叢、然后贏得第一場和對手小茂的寶可夢對戰。聽起來像是小孩子十分鐘就能搞定的事情,但對AI來說,這是一場充滿陷阱的馬拉松。
一、為什么讓AI玩《精靈寶可夢》是一件很頭疼的事
要理解這件事有多難,不妨把AI玩游戲的過程類比成教一個完全不懂規則的新手學下棋。但《精靈寶可夢·紅版》甚至比國際象棋還要棘手,因為它不只是一個游戲,而是多個游戲疊加在一起的超復雜任務。
首先是"獎勵稀少"的問題。在游戲里,真正有意義的事件——比如抓到一只寶可夢、贏得一場對戰——之間隔著成千上萬個操作步驟。對AI來說,這就像是讓你走完一個巨型迷宮,但迷宮里幾乎沒有任何路標,你只有走到終點才能知道自己走對了。大部分時候AI只能在黑暗里亂摸。
其次是選擇太多的問題。游戲剛開始沒多久,屏幕上就有幾十個格子可以走,有門可以開,有人可以交互。每一步都有很多種選擇,AI根本不知道哪條路是對的。
更麻煩的是,AI只能"看到"當前屏幕上的畫面,就像你隔著一扇窗觀察房間,你能看到現在窗里的樣子,但你不知道隔壁房間發生了什么。角色當前的血量、所在地圖的編號、背包里有什么——這些關鍵信息都藏在游戲的內存深處,不直接顯示在畫面上。
還有一個讓研究團隊頭疼不已的細節:《精靈寶可夢·紅版》的移動方式有個奇怪的"雙按"機制。你按一下方向鍵,角色只是轉個身;再按一下,角色才真正往那個方向走一步。如果AI不了解這個規則,它就會一直在原地轉圈,看起來忙忙碌碌,實際上哪兒也沒去——這聽起來既可笑,又真實發生了。
正因為這些挑戰,德州農工大學的研究團隊決定不只是"扔一個AI進去讓它自己摸索",而是搭建一套叫做PokeRL的系統,專門針對這些讓AI"犯傻"的陷阱逐一設計解決方案。
二、研究團隊搭建了一個什么樣的"訓練場"
PokeRL的底層架構,是在PyBoy這個Game Boy模擬器上包了一層自定義的"環境外殼",再連接上一套強化學習框架。可以把這個過程理解為:研究團隊給AI建了一個經過特殊改造的游戲機,這臺游戲機不只是讓AI按鍵,還會實時記錄AI的行為、讀取游戲內存里的關鍵數據、根據AI的表現給出獎勵或懲罰,并且裝了一套"防抽風"系統防止AI做出奇怪的重復行為。
AI的"眼睛"是一個被壓縮成72×80像素的黑白屏幕畫面。為了讓AI有短期記憶,系統會把連續四幀畫面疊加在一起輸入給AI,就像讓你同時看到一段短視頻的四個截圖,而不是只看一張靜止圖片。此外,還有一個非常巧妙的設計:每張地圖都對應一個"已探索遮罩",這是一個跟游戲畫面一樣大的黑白圖層,AI走過的格子會被標記出來。這個遮罩相當于AI的地圖筆記,告訴它"這里我已經去過了,那邊還沒探索"。兩個圖層疊加之后,最終AI處理的是一個8通道的輸入(4幀畫面加上4幀對應的探索遮罩),再送進一個卷積神經網絡進行分析決策。
說到AI的"大腦",研究團隊使用了一個標準的卷積演員-評論家網絡,參數量大約107萬個。這個數字在AI領域算相當輕量,訓練速度相對較快。整個網絡分成兩部分:演員部分負責決定下一步按哪個鍵,評論家部分負責判斷當前局面"值不值"。兩者共用前面的卷積層和一個512單元的全連接層,最后分叉成兩個輸出頭。
為了讀取游戲內存里的關鍵數據,研究團隊還專門編寫了一個內存讀取模塊,直接從游戲RAM中獲取角色坐標、當前地圖編號、隊伍數量、戰斗狀態和寶可夢血量等信息。這些信息不會直接給AI看,而是用來計算獎勵信號、判斷任務完成條件。
在行動選項上,研究團隊把AI的可用按鍵限制在7個:上下左右四個方向鍵、A鍵、B鍵和"什么都不做"。Start鍵和Select鍵被徹底封禁——原因是AI非常容易學會狂按這兩個鍵來打開菜單,不但沒有任何進展,還會讓游戲卡在菜單界面動彈不得。事實上,研究團隊曾觀察到AI學會了在走下樓之后瘋狂存檔的習慣,這純屬走了歪路,必須截斷。
三、如何教會AI"什么是有意義的行為"——獎勵體系設計
在強化學習里,AI完全靠獎勵來判斷自己做得對不對。設計獎勵就像設計一套積分規則:規則定得好,AI就會學到真正有用的技能;規則有漏洞,AI會第一時間找到作弊方法并死死抓住不放。
研究團隊把獎勵分成三個層次,由細到粗。最細的一層是每一步行動的即時獎勵:走到一個新的格子得1分,移動的歐氏距離每增加一個單位額外得0.2分,第一次踏上某個位置再額外得0.5分。這些小獎勵的作用是引導AI不要停在原地,鼓勵它不斷向新方向探索。
中間層是完成階段性小目標的獎勵:從一張地圖切換到另一張地圖得10分,本局游戲第一次進入某張地圖額外得5分,到達大片未探索區域再得2分。這些獎勵引導AI不僅在當前小區域轉悠,而是積極尋找出口、進入新地圖。
最頂層是稀有的大事件獎勵:進入高草叢得20分,觸發戰斗得10分,抓到寶可夢或者贏得和小茂的對戰得50分。這些是游戲進度的真正里程碑,獎勵值大,但出現頻率極低。
為了對沖AI可能發展出的偷懶行為,研究團隊還加入了一套懲罰機制:原地不動會被扣分,反復按同一個鍵會被扣分,陷入位置循環也會被扣分。這些懲罰值被刻意設計得比較溫和,范圍在-0.02到-0.2之間。這是一個非常重要的經驗教訓:研究團隊一開始用了很重的懲罰,結果AI因為太害怕扣分而變得極度保守,整體得分變成大量負值,訓練徹底崩潰。適度的懲罰才能保持方向感而不破壞學習積極性。
四、AI最容易犯的兩種"壞毛病"以及如何治它們
如果你讓AI在沒有任何限制的情況下自由探索,它幾乎必然會發展出兩種讓人抓狂的習慣:一種是無休止地在同一片區域打轉,另一種是瘋狂按某一個鍵。研究團隊把這兩種毛病稱為"循環"和"垃圾鍵入",并且專門為它們設計了一套三層防御機制。
先說防循環。第一層是位置訪問計數器:系統記錄本局游戲AI走過每個坐標的次數,超過3次開始扣小分,超過5次扣更多。第二層是行動模式檢測:系統用一個長度為20步的滑動窗口監視AI最近的按鍵序列,一旦發現AI在反復做"A-B-A-B"或者"左-右-左-右"這樣的固定重復模式,立刻扣分,反過來如果AI打破了這種模式,還會獎勵一點小分來鼓勵改變。第三層是位置循環檢測:系統跟蹤AI的歷史位置軌跡,如果發現AI反復回到某個小半徑范圍內的位置,判定為循環并施加懲罰。
研究團隊為了驗證這套系統的效果,專門統計了訓練過程中"循環局"的比例——所謂循環局,是指某單個坐標被訪問超過10次、或者行動模式檢測觸發超過20次的那些局。結果非常直觀:在沒有防循環系統的情況下,所有訓練局中有41.2%屬于循環局,只有58.8%是正常進行的。加上防循環系統之后,循環局的比例急劇下降到4.7%,正常局占到95.3%。這相當于把AI抽風的概率從接近一半降低到了幾乎可以忽略不計。
再說防垃圾鍵入。研究團隊發現AI特別容易學會狂按A鍵、不動鍵或者沒有意義的菜單鍵,因為這些行為不會直接導致懲罰,但也不需要什么學習成本。解決方案是一套漸進式連按懲罰:同一個鍵連按3次開始扣0.1分,超過5次扣0.2分。與此同時,如果AI最近幾步內使用了至少4種不同的行動,還會得到一個小小的多樣性獎勵來激勵它主動變換策略。Start和Select鍵則直接從行動空間中刪除,徹底關上這扇偷懶的門。
評估這套防垃圾鍵入系統的效果,研究團隊用了信息熵這個工具——可以把它理解為衡量一個人打牌時出牌花色有多均勻的指標,花色越均勻,熵值越高。在沒有防垃圾鍵入系統之前,AI的行動分布熵只有1.21比特:A鍵占了32.1%,什么都不做占了28.4%,真正移動的行動只有27.2%。加上系統之后,移動行動的比例上升到68.2%,A鍵和B鍵加起來只有24.3%,什么都不做降到了7.5%,總體熵值上升到1.82比特,相對提升約50%。換句話說,AI從一個只會按A和發呆的懶蛋,變成了一個能靈活移動探索的正常玩家。
五、把大任務拆成三節課——課程式訓練結構
直接讓AI從游戲開始一口氣學到贏得對戰,就像讓一個從來沒碰過樂器的人直接去演奏一首交響樂。研究團隊選擇的方法是把整個早期游戲分成三個獨立的學習階段,每個階段有自己的起點、終止條件和獎勵重點,讓AI循序漸進。
第一階段叫"走出房間"。AI從小智的臥室開始,目標是走下樓梯、穿過客廳、推開前門走到屋外。這個階段的獎勵重點在移動本身和第一次地圖切換,幫助AI學會基本的方向控制和門的交互方法。在訓練了15萬步之后,AI能在大約65%的局次里成功走出房間。
第二階段叫"探索到草叢"。AI從房子前門外出發,目標是在彩葉鎮和1號道路上找到高草叢,觸發大木博士的劇情事件。這個階段的獎勵更強調探索新地圖和覆蓋更大的地圖面積。經過50萬步訓練,AI能在約60%的局次里成功到達高草叢并觸發事件。
第三階段叫"贏得對戰"。AI直接從與小茂對戰的開始狀態出發,使用固定的初始寶可夢,目標是通過有效的戰斗指令擊敗對手。這個階段的獎勵聚焦于使用進攻招式、擊倒對手寶可夢和贏得對戰。訓練50萬步之后,AI的勝率穩定在約50%左右。
這種分階段的課程式結構有兩個明顯好處:一是每個階段的任務足夠簡單,AI能更快看到有效獎勵,學習效率大幅提升;二是調試起來容易得多,哪個階段出了問題一目了然,不用在一個龐大的單一系統里撈針。
六、給AI加上"地圖筆記"有多重要——探索遮罩的價值
前面提到,AI的觀察中除了實時畫面,還有一個"已探索遮罩"。研究團隊專門做了一組對比實驗來量化這個遮罩到底有多重要,訓練時長統一控制在30萬步。
結果相當明顯。沒有探索遮罩時,AI平均每局探索的獨特坐標數量是34.2個,彩葉鎮的地圖覆蓋率只有12%,平均每個格子被重復訪問4.8次。加上探索遮罩之后,獨特坐標數量跳升到48.1個,增幅超過40%;彩葉鎮覆蓋率從12%飆升到41%,漲了約242%;每個格子平均被重復訪問的次數從4.8次降到了3.1次,重復率降低了約35%。
這說明AI并不只是把探索遮罩當作無用的噪聲忽略掉,而是真正學會了把它當作一張記憶地圖來使用——哪里已經去過,就傾向于往沒去過的方向走。在沒有遮罩的情況下,AI的策略本質上是無記憶的,只能根據當前畫面猜測方向,結果就是反復在同一片區域繞圈。遮罩給了AI"空間記憶",讓它的探索行為從無目的的隨機游走,變成了有一定方向感的主動開拓。
七、這套系統的局限性和未來可以做什么
PokeRL在設計理念上確實走出了一步:不只是堆算法,而是把游戲本身的具體特性和AI最常見的失敗模式一起編進了系統里。但這套系統本身也有一些不掩蓋的局限。
最明顯的一點是,整個系統并不是"純粹從像素學習"。內存讀取模塊直接偷看了游戲RAM里的數據,獎勵信號也經過了大量人工設計。這意味著如果你想把這套框架搬到另一款游戲上,需要重新做大量的適配工作,不是開箱即用的通用方案。訓練過程也相當耗時,而且對超參數比較敏感,換一組參數可能效果大相徑庭。此外,游戲中的文字對話場景有時候需要人工干預才能跳過,還沒實現完全自動化。
至于未來可以去的方向,研究團隊提出了幾個思路。一是把三個獨立訓練的階段合并成一個連貫的長期任務,讓AI在一場游戲里連續完成走出房間、探索地圖和贏得對戰,而不是分開訓練。二是在探索機制上加入更系統的好奇心驅動方法,比如讓AI對沒見過的畫面自動產生更強的探索欲望,而不依賴手工設計的循環懲罰。三是嘗試減少手工設計獎勵的比重,改用從人類玩家行為中學習的逆強化學習方法,或者基于人類偏好反饋的獎勵學習方法,讓AI自己摸索出什么樣的行為是好的。四是把語言模型融入對戰決策,借鑒已有研究中語言模型在寶可夢對戰里取得接近人類水平的思路。最后,研究團隊希望把整個PokeRL環境打包成一個標準化的開源測評平臺,讓更多研究者可以在相同條件下做對比實驗,推動這個方向的整體進步。
說到底,這項研究想傳遞的核心信息很簡單:讓AI玩好一款游戲,光靠聰明的算法是不夠的,更需要把游戲的具體怪癖和AI的具體弱點都認真對待,然后一個一個地工程化地解決掉。在AI面對復雜的真實世界任務時,這種"把失敗模式顯式建模進系統"的思路,可能比單純追求更大更強的模型更加實用。這不是最終答案,但它是一塊認真打磨過的墊腳石。
Q&A
Q1:PokeRL系統中的"探索遮罩"具體是怎么工作的?
A:探索遮罩是一張和游戲畫面一樣大的黑白圖層,AI每走過一個格子,對應位置就會被標記出來。這張圖作為額外的觀察信息輸入給AI,讓AI知道哪里已經去過、哪里還沒探索。遮罩的原點固定在該地圖的入口位置,保證攝像頭滾動時標記不會錯位。實驗表明,加了遮罩之后AI在彩葉鎮的地圖覆蓋率從12%提升到41%,重復訪問同一格子的次數也明顯減少。
Q2:PokeRL的防循環機制為什么要用三層,一層懲罰不夠嗎?
A:單層懲罰容易被AI繞過。比如只懲罰位置重復,AI可能換成在稍微不同的兩個位置之間來回切換,形式上不觸發懲罰但實質上仍是無效循環。三層機制分別針對位置頻率、行動模式和空間軌跡三個維度,覆蓋了循環行為的不同表現形式,互相補充。實驗數據顯示三層機制合用后循環局比例從41.2%降到了4.7%,效果相當顯著。
Q3:PokeRL訓練出的AI最終能打通《精靈寶可夢·紅版》整個游戲嗎?
A:目前不能。PokeRL只針對游戲最開頭的三個階段進行了訓練,分別是走出房間、探索到高草叢和贏得第一場對戰,三個階段的成功率分別約為65%、60%和50%,距離通關整個游戲還差得很遠。研究團隊的定位也很明確:這是一個研究早期游戲段落的實驗平臺,目標是為更復雜的長期任務打基礎,而不是直接造出一個能打通全游戲的AI。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.