標籤:

為什麼要研究星際爭霸的AI?

在AlphaGo震撼人類之後,谷歌最近又開始想搞大新聞,他們最近聯合暴雪公司發布了星際爭霸2的AI開發環境sc2le,並且希望在不遠的將來,在這一項遊戲上戰勝頂級的人類。由於星際是自己接觸的第一款電腦遊戲,心中頗有些情懷,忍不住瞎寫了一些東西。

AlphaGo的一戰成名,二戰驚人,三戰令世間高手盡絕念。大家一想,這人類智慧的結晶圍棋都已經淪陷了,星際難道比圍棋還難嘛?外加電子競技一直備受爭議,相信很多人會有一些不理解。

其實從一些蛛絲馬跡中,我們其實可以得到一些信息。比如在競技遊戲玩家中實際上有一種潛在的鄙視鏈,為了不引戰,就不具體說了。但是在這些鄙視鏈中,星際往往處於上游。另一方面,我們也會注意到周圍喜歡玩遊戲的朋友里,通常玩星際這一類即時戰略遊戲的也是比較少的。這也一定程度上反映了這類遊戲對於人類玩家都會有一定的門檻。(當然這兩個理由都是在胡謅)下面我們來具體討論一下,為什麼星際爭霸對於電腦來說是一個很難的,甚至超過圍棋的問題。

什麼是即時戰略

首先我們需要明確的一點是星際爭霸是一款即時戰略遊戲。這類遊戲比較有名的比如很老的《沙丘》,在中國曾經很火的《紅色警戒》,同樣是一代人回憶的《魔獸爭霸》。大家可以發現這類遊戲有著這樣的特點。就是通常需要利用單位來採集資源,建設基地,發展科技,生產單位。往往還需要偵查,以找到更多的資源以及敵人的所在。最終的目標就是消滅敵人(勝利條件可能會略有不同,對戰中往往摧毀敵方所有單位作為勝利條件)。可以看到這樣的遊戲包含的元素很多,而最可怕的是,它所有的階段都是實時進行的,而不是我們在棋牌類遊戲或者普通策略類遊戲中的回合制。玩家彷彿是一個揮斥方遒的將軍,指揮著千軍萬馬(當然沒這麼多了),這樣的遊戲可以說是相當驚心動魄了。

這樣說起來可能還是比較虛,為什麼星際AI搞起來比圍棋AI難主要還是由於下面幾個原因。

這是一個多智能體的問題

什麼是多智能體? 這裡的智能體實際上有兩層含義。一是玩家層面,比如我們現在已熟知的AlphaGo就是一個智能體。它能夠從全局調用一切己方資源,與另一智能體相抗衡(另一台電腦或者人類玩家)。二則是遊戲元素層面,星際里是有很多單位(或者通俗一些說是小兵)供我們操作的(比如採集資源、修建建築、進攻等等),這些單位本身也可以看做是一種智能體,因為他們要不斷決策,決定什麼時候、在什麼地方、做什麼事情。

雖然都是電腦智能體,這裡理想中的星際AI(我們姑且叫它AlphaStar)卻與AlphaGo有著本質的不同,AlphaGo至始至終都只會面對一個對手。而在星際則可能出現2v2,3 v3甚至4v4,這就使得AlphaStar不得不考慮如何跟盟軍合作的事情,也就形成了一個多智能體(哪怕合作的是人,也會比圍棋在決策層面更複雜)

而在更低一點的層面,這個智能體本身也要考慮如何去協調上百的單位去完成目標,要讓這些單位相互合作,本身也是一個多智能體的任務。這裡我們還是拿AlphaGo來看,圍棋是回合制的遊戲,每次只需要下一枚棋子,棋子不會有相互之間的合作。

這是一個不完全信息的遊戲

什麼叫不完全信息?就是我無法獲知對手的完整信息。舉個具體的例子大家就知道,比如我們平時打鬥地主或是摜蛋,對方拿到手裡的牌,對方抽的牌我們都是不知道的;亦或是狼人殺,其他人的身份我們也不知道。這些就是典型的不完全信息的情況。而星際里的不完全信息是怎麼回事呢?星際存在著戰爭迷霧的機制,這個機制使得在我方沒有單位的地方,是無法獲知當地的實際情況的。這樣子問題就複雜了,如果我們悶聲造步兵,結果對方一群飛龍殺過來,豈不是被打得毫無還手之力。以AlphaGo的觀點來看,就是它的估值網路不好使了,看不到全部的棋盤,沒辦法對當前局面進行有效評估。

這裡我覺得還有必要額外提一下星際中有3個截然不同的種族供玩家選擇,不同的種族玩法風格大不相同,這和我們下棋的時候可不一樣了,圍棋只有黑白子之分,每枚棋子本質上是沒有區別的。

為了能夠知悉對方的發展動態,我們可以利用偵查手段,派一些小兵去轉轉,好歹知道對方什麼種族吧。但是派小兵出去是有風險的,一方面,小兵可能會被幹掉,影響我們自己的經濟,另外一方面,可能偵查到了假的信息,比如敵方佯裝造了一個機場,但是暴了一堆步兵等等。

這是一個動作空間巨大的遊戲

說到動作空間這個問題,我們就需要回顧一下目前我們經常用在遊戲AI中的強化學習方法。在強化學習中,我們能夠根據環境的反饋去評估一個最優的值函數(這個值函數能夠告訴我們進入怎樣的局面對我們是最有利的),有了這個值函數之後,我們就要改進我們的策略去達到他,即進行怎樣的操作,去達到有利的局面去。而改進策略的方法最簡單粗暴的方法就是枚舉動作集合,選取能達到最大值函數的動作

pi(s)=arg max_a Q(s,a)

之前大家玩的遊戲都是操作比較簡單的。比如谷歌曾經嘗試過玩Atari遊戲,這類遊戲風靡於上個世紀80年代,那時候是用專門的機器來玩,這個機器很簡單,只有一個搖桿,幾個按鍵,操作非常簡單。圍棋就更簡單了,我們只需要考慮在棋盤什麼地方下子就行。所以簡單用這種方式都能夠處理。

但是在星際中,玩家通過滑鼠鍵盤等點選操作,會有非常大的組合空間。首先單位非常多,建築非常多,每種單位可能又有自己特殊的技能。其次,地形也可能影響我們的動作,比如飛行單位就能直接飛過一個懸崖,步兵就得用個運輸機運一下。最後,隨著點科技樹的姿勢不同,我們可以用的動作集合也在隨之改變。簡而言之,就是動作候選本來就多,還會動態變化。

這一下子就噁心了,傳統的那個方法很難hold住了

這是一個節奏快時間長的遊戲

通常一局星際的對戰會持續十幾分鐘到甚至一個小時,其中會包含成千上萬的幀和操作。職業玩家每分鐘可能會達到500次的操作。這就使得AlphaStar不僅要在一個很長的序列中進行決策,還需要每步都決策很快。

這裡就有兩個嚴重的問題,首先決策過程很長,這就使得強化學習非常難以進行。因為強化學習是需要環境反饋來不斷優化的,決策過程長了之後,也就意味著反饋信號很滯後,真正影響勝局的信息反饋不了,AlphaStar不知道如何去探索動作。如果我們使用資源評價指標等來作為即時獎賞,往往會使得策略陷入局部最優,比如瘋狂的採集資源而不去造兵。而往往玩家早期的決策會對後面的結果產生比較大的影響,從而就造成AlphaStar全局懵逼。

其次,每步決策都需要很快,因為人一看到局面就會在一分鐘做到300-500次動作。這麼快節奏,刺不刺激?興不興奮?AlphaStar可就苦了,看看AlphaGo下圍棋下得修身養性的,想死的心都有了,總不能把一個即時戰略遊戲打成回合制遊戲吧(當然後面的Master下快棋快了很多,但是考慮到盤面的複雜度和動作空間,AlphaStar依然壓力山大)。

結論

綜上所述,星際這樣的即時戰略遊戲本身是具有非常高複雜度的,對於目前的人工智慧技術而言有很大的挑戰性,因此是具有相當高學術研究價值的(如果星際淪陷了,那麼我們熟知的MOBA類遊戲,Dota,LOL,王者榮耀這些也差不離了)。而且他易於展示,輿論上又很容易製造爆點(這一點比圍棋強多了,圍棋雖然一直給人一種智慧的象徵,但是大部分人看不懂啊,這些遊戲大家一看就懂,看著人類被打得落花流水,還不讓輿論high起來了)。另外一方面,如果機器能夠完成如此複雜的決策任務,那麼對於輔助人類進行戰爭決策,社會決策等方面也會有很大的幫助。

總之,今後AI研究的一大應用場景,必然是這些戰略遊戲了。

推薦閱讀:

下一代使用聯想智能情境引擎的電腦,將會懂你的心思
未來,你會和機器人成為好朋友嗎?
詳解谷歌第二代TPU:功耗性能究竟如何?巨頭想用它幹什麼?
Cousera deeplearning.ai筆記 — 規則化神經網路(Regularizing your neural network)
未來會是什麼樣?人工智慧電視走向猜想

TAG:人工智慧 |