遊戲AI的終極進化

撰文:GEME編輯團隊
出版:更新:

作者:黑色休謨

人工智能越來越發達,近日一名《Dota 2》的電競選手便敗在 AI 手下,Google 與 Blizzard 亦合作研發專門玩《StarCraft II》的 AI。究竟 AI 高手是如何鍊成的?人工智能終於要征服遊戲界了嗎?

(封面圖片:《StarCraft II》遊戲畫面)

繼圍棋之後

2016年 AlphaGO 在圍棋上戰勝了韓國棋手李世乭,震驚世界,當時 AlphaGO 的開發團隊 DeepMind 便指下一步要讓 AI (人工智能) 懂得玩即時戰略遊戲《StarCraft II》。當時多數人認為《StarCraft II》與《英雄聯盟》等遊戲涉及太多變數與選擇,遠比圍棋複雜,因此 AI 難以駕馭,未能戰勝人類。

然而,就在近日的 2017 International Dota 2 Championships 之中,大會安排了前世界 solo 冠軍、擅長打中路的烏克蘭選手 Dendi 與專門玩《Dota 2》的人工智能 OpenAI 對戰,結果由後者大勝。OpenAI 團隊由 PayPal 及 Tesla 電動車創辦人 Elon Musk 贊助,現時只能在非常特定的條件下玩《Dota 2》──它只能用影魔 (Shadow Fiend) 與對方的影魔進行1對1戰鬥,遊戲變數亦必須減到最少 (雙方禁止使用魔瓶、凝魂之淚、靈魂之戒、祭壇,移除中立生物和神符)。

第二局再次被 OpenAI 首殺,Dendi 表現非常錯愕,打出「gg」,放棄餘下的比賽 (NoobFromUA YouTube http://bit.ly/2vDiBZX)

OpenAI 的團隊沒有為它預設數據,它是由零開始不眠不休地學習,一開始還是在遊戲中夢遊的初哥,兩星期後便變成世界級大師,更展現出中途取消技能的高級技巧。在嚴格限定的條件下,OpenAI 的確有更出色的微操作及判斷力,結果連勝 Dendi 兩場。

刻苦學習的電腦

去年已經表示想涉足《StarCraft II》的 DeepMind 亦有動作,宣佈與 Blizzard 合作推出一套開源的 API 軟件,包括 SC2LE (StarCraft II Learning Enviornment) 開發包與使用 Python 語言運作的 PySC2,使用者可以利用這套軟件編寫針對《StarCraft II》的 AI 程式。兩間公司希望藉此集合全世界有程式背景的玩家及對遊戲 AI 有興趣的程式設計師,一起研究與改良 AI 技術。

《StarCraft II》要求玩家兼顧資源管理與部隊微操作,同時針對敵方的部署進行反擊和預測,對 AI 來說都是很大的負擔 (遊戲宣傳圖片)

傳統即時戰略 (RTS) 遊戲一向都有簡單的 AI,它們根據預先寫好的代碼行動,可以說是完全不會變通。面對著人類,AI 要靠作弊才能稍為彌補差距,例如在《StarCraft II》裡,3個最高難度的 AI 便比真人玩家擁有額外的資源與視野。但這絕不能滿足新世代的 AI 標準。

上圖展示出即使是同一個遊戲動作,人類玩家與 AI 亦各有不同的操作方式 (DeepMind)

 

開發團隊以強化學習 (reinforcement learning) 訓練 AI,AI 會自行透過試錯 (trial and error) 發現最佳的行為選擇,作為往後判斷的基礎。在強化學習裡,若果 AI 的某個行為導致正面效果,便會得到強化或獎勵訊號,那麼 AI 以後便會傾向選擇這個行為。

套用到《StarCraft II》上,獎勵訊號除了與一局遊戲的勝負有關,團隊亦會根據遊戲中的各種行為即時運算出分數,例如有新建築物會加分,被破壞則會扣分,以此鼓勵 AI 採取對自己有利的選擇,引導它以勝出遊戲為目標來行動。

AI 有本難唸的經

為了公平競賽,人類與 AI 都應該使用同一界面來玩遊戲,AI 能夠輕易掌握數,但人類使用視覺分析圖像的能力卻是它必須學習的地方。2016年 DeepMind 與 Blizzard 的研究人員已經著手解決這些問題,他們的方法是建立一個低解像度的《StarCraft II》畫面,將建築物、部隊、資源與位置等遊戲元素分拆為各個小部分,稱為「feature layers」,方便 AI 理解。

AI 眼中的畫面非常簡約,分別顯示遊戲中同一區域中不同的參數 (DeepMind YouTube http://bit.ly/2fKAgJF)

至於勝出遊戲又是更複雜的問題了。「勝出遊戲」對 AI 來說是一個模糊的概念,為此團隊將邁向勝利的過程分拆為一組組的任務,稱為 「mini-games」,例如採集礦石、興建兵營、生產陸戰隊。AI 透過不斷訓練,又從 battle.net 的排名賽中截取了數以十萬計的紀錄檔,一步一步將這些 「mini-games」組合成一套致勝的策略。

就決定是你了!人工智能!

AI 要戰勝人類玩家了嗎?現在似乎還未是時候。在 Dendi 落敗後,大會開放 OpenAI 讓現場觀眾挑戰,結果超過50名玩家成功勝過 OpenAI。有的玩家引開敵兵,讓自己的小兵攻破 OpenAI 的塔;有的玩家則不按章法地購買物品,這些 OpenAI 未曾遇過的新奇戰術都令它束手無策。

然而以 AI 進步的趨勢來看,相信不久將來 AI 就可以克服這些困難,以後遊戲 AI 的研究一旦成熟,人類玩家的贏面還有多少呢?或許未來玩家競爭的著眼點將不再是人類與 AI 誰勝誰負,而是一位玩家培養出來的 AI 能否戰勝其他玩家的 AI,我們的電競會朝著「代理人戰爭」發展嗎?