昨(20)日,騰訊AI實驗室以及美國羅徹斯特大學(University of Rochester)、西北大學(Northwestern University)的研究者發表了一份論文預印本,內容是研究團隊開發了2個AI,它們必須像人類玩家一樣探索地圖,尋找資源與偵查,並即時做出反應。依靠深度學習技術,研究團隊AI能夠以至少7成勝率擊敗遊戲內的「作弊3」AI,這個AI擁有地圖全開、額外資源等作弊優勢。這2個AI甚至在對戰人類鑽石玩家時也能拿下勝場,堪稱遊戲AI研究史的一大里程碑。
AI挑戰人類遊戲早已不是新聞,從知名的圍棋AI「AlphaGO」到最近的DOTA 2,都可看見AI進行深度學習後擊敗人類玩家的例子。但《星海爭霸II》並不一樣,面對資源收集、建築科技升級、偵查迷霧等難題,要馬上做出正確應對及操作才能獲勝,對AI來說是一大挑戰。
為了方便AI學習,研究團隊限制了地圖與遊戲模式為蟲族對蟲族1v1。由於《星海爭霸II》需要玩家針對地圖規劃宏觀戰略,在遭遇到狀況時要進行局部戰術規劃,面對敵人時要進行微操操作,研究團隊必須要規劃規則給AI進行思考,否則AI就會陷入矛盾而無法做出任何決定。另一方面,《星海爭霸II》中有許多硬性規定,例如玩家「想要製造1隻蟑螂」,他必須要經過「需要蟑螂繁殖場→蟑螂繁殖場需要使用1隻工蟲→蟑螂需要使用1隻幼蟲製造→製造1隻蟑螂要花費75晶礦與25瓦斯」的過程才能製造出1隻蟑螂。這種硬性規定玩家可以在遊戲前或遊戲中通過閱讀文字說明來理解,但對AI而言很困難。
再者,如何優化過程也是難題,以蟑螂繁殖場為例,「這個蟑螂繁殖場要蓋在哪?什麼時候蓋?用哪隻工蟲蓋?」對人類玩家而言,他們能馬上判斷這3個問題的優先度,「什麼時候蓋」一定是最重要的,「用哪隻工蟲蓋」一定是最不重要的;但對AI而言,研究團隊必須給它們制定好思考規則,否則AI就會浪費不成比例的資源在思考無用的問題上。
在確立了規則後,研究團隊開發了第1個AI「TStarBots1」。TStarBots1的執行原理是,研究團隊將遊戲總結成165個大型操作,這些大型操作底下由一系列小型操作組成,例如前述的「製造蟑螂繁殖場」就由「移動視野→選取隨機工蟲→選取介面、建造座標→完成建造」組成。這些大型操作再由最高控制台進行應用操作,如此去讓TStarBots1學習並練習如何組合出有效戰略並針對臨時狀況反應。通過這個學習機制,TStarBots1在1個GPU上訓練1天多後,就可以擊敗最高階的遊戲AI了。但這個方式也有限制,例如TStarBots1每執行1個大型操作,它就得把所有大型操作中的思考步驟都執行1次,但在整體戰略而言有些步驟之間卻是互斥的;同時,多餘的操作還會讓TStarBots1收集到不必要的資訊,干擾它的學習。另一方面,這個工作機制讓TStarBots1註定無法從小型操作上學習,因為它只是機械化的因為必要而執行它。
為了解決TStarBots1遇到的問題,研究團隊設計了TStarBots2。TStarBots2擁有雙層控制指令結構,上層操作是有關於戰略及大型戰術的操作,例如在敵方基地旁邊建造蟑螂繁殖場;讓某個編隊進行攻擊等。下層操作則是每個單位的細部操作,例如在具體座標建造蟑螂繁殖場;讓某蟑螂編隊由某位置攻擊某單位等。有關的上下層操作被編為1組,不同組之間可以同時進行操作,但同組裡面下級操作必須服從上級操作。這樣,TStarBots2就規避了1號遭遇的多餘資訊問題,也可以讓AI更好的學習不同操作的組合效果,發展出更好的戰略與戰術。
在實際與AI進行對戰後,TStarBots1與10個不同層級的《星海爭霸II》遊戲AI各進行200場對戰,除了面對「作弊3」僅有70%的勝率外,其他等級的AI都被TStarBots1打出了超過90%的勝率,可說是完虐了對手;而TStarBots2更是連作弊3都打出了90%的勝率。在與人類玩家對戰的少數樣本中,兩個AI都在鑽石玩家手中拿下過勝利,其中TStarBots1雖然贏過人類玩家,但當人類玩家發覺TStarBots1喜好進行異化蟲快攻後,TStarBots1勝率就大幅下降。而在TStarBots1與TStarBots2對戰紀錄上,TStarBots2由於尚未學習到TStarBots1喜歡使用快攻戰術而被TStarBots1打敗。可預見的是,未來AI將有機會與人類玩家一較高下,到時候誰能獲勝,將會是非常有趣的話題。
有興趣的玩家也可以看一下這篇論文:點我
延伸閱讀