星海爭霸 AI 大賽冠軍出爐!沒用機器學習的三星,打爆臉書在內的二十幾個 AI 選手

【為什麼我們要選這篇文章】今年的星際 AI 大賽結果出爐,冠軍 選手居然沒有「學習技能」還是第一次參賽!這個由三星出品的人工智能令所有團隊驚豔,而其他參賽者還有 Facebook 的 AI 團隊,以及中國知名影音平台 Bilibili 等多家科技公司參與,至於他們戰況如何,就來看看以下文章吧!(責任編輯:鄭惟馨)

本文經 AI 新媒體量子位(公眾號 ID:QbitAI)授權轉載,轉載請聯繫出處

作者:量子位/夏乙 問耕

剛剛,星海爭霸 AI 大賽新王誕生!

二十多個掌握了機器學習技能的 AI,全都在一個不會學習、只會基於規則機械行動的 bot 面前,俯首稱臣。包括三巨頭之一 Yann LeCun 底下的 Facebook AI 團隊。他們的 AI 獲得亞軍,但在與新王的 100 回合大戰中,戰績是 83 負 17 勝,劣勢明顯。

其他 AI 更不是對手。新霸主與全部對手的 2600 場廝殺中,勝率達到了95.91%。而往屆比賽中,冠軍勝率最高的一次,也不過 89%。

到底是誰?哪個團隊的人工規則,能如此碾壓人工智慧?

答案是:賽達(SAIDA)

SAIDA 對戰第二名 CherryPi

三星出品的 AI 沒有學習能力,勇奪冠軍靠得是人類經驗!

來自三星,首次參賽的賽達,完全基於規則,在這個機器學習大爆炸的時代,一個如此「復古」的系統,俾睨一眾 AI。賽達之所以如此厲害,一個重要原因是,背後有韓國職業星際選手助力。要知道,星際一度被稱為韓國的國技。

這次星海爭霸 AI 大賽的組織者戴夫.邱吉爾(Dave Churchill)總結說,今年的比賽成了兩家巨頭之間的爭奪。第一名三星賽達,代表頂級人類玩家的經驗總結;第二名 Facebook 的 CherryPi,有頂級工程師坐鎮,3 位頂尖 bot 作者都在麾下。(TO 編按:bot 為軟體代理的口語)

目前,三星職業選手組更勝一籌,但這還不是賽達的全部成就。在另一個星海賽事——星際 AI 錦標賽(SSCAIT)上,它的 ELO 等級分也排在第一名。(TO 編按:ELO 等級分制度是基於統計學的一種評估棋手水準的方法。一些線上遊戲的競技對戰系統也採用此評分)

總體來看,它已經是地表最強星際AI了。讓我們來認識一下這匹黑馬。

基於規則的演算法+選手經驗,成就賽達的冠軍之路

這次大賽還是基於星海爭霸:母巢之戰(Starcraft Broodwar)。

賽達使用人族(Terran),以穩定的防守優先戰略開局,到中期過後,它會尋找最佳 rush 時機,一波強攻擊敗對手拿下比賽。

SAIDA對戰畫面

和現在主流方法不一樣的是,賽達沒有用機器學習方法。

三星的工程師們嘗試了用卷積神經網路(Convolutional Neural Network, CNN)和編碼器—解碼器從游戲視頻中學習戰鬥時機,也嘗試了用多智能體強化學習演算法來控制單位……然後決定,在參賽演算法裡不用這些東西了。

這些研究當然也沒有白費,他們把研究結果寫進論文,投稿到了AAAI 2019。哪位朋友見到這篇論文的預印本,歡迎通知我們,和更多讀者分享。

SAIDA 對戰畫面

我們說回參賽版本的賽達,它都是手工編寫基於規則的演算法,一共 49702 行。不過,這並不是說它的打法就是一成不變的。它所用的策略不是一開始就預設好的,而是會根據偵查和掃描收集的訊息來建構。除了選擇策略的程式,賽達還包含用來控制單位和建築物的有限狀態機,用來尋找建基地位置或者敵人基地的幾種搜索演算法。

掌握 2019 年雲端必勝技
開發者的雲端應用趨勢調查 >>點我<<

那麼,人類工程師是如何給這個演算法制定規則的呢?

背後有韓國職業星際選手的幫助。戴夫說,把大賽官方提供的樣本程式 UAlbertaBot 和專業軟體開發者、韓國職業星際選手放到一起,就有了賽達。

賽達目前只能應付業餘玩家,距擊敗頂尖職業選手還要一兩年

賽達的源頭,可以追溯到 2017 年三星 SDS 舉辦的演算法大賽。

當時的主題剛好是星際。比賽中成績不錯的工程師們惺惺相惜,向公司提出要聯手打造一個超級厲害的星海 AI。

於是,2018 年 1 月,賽達誕生了。現在,這個誕生還不到一年的新秀不僅是兩大星際 AI 賽事的第一名,還已經和人類業餘玩家、職業選手都交過手。人類業餘玩家已經不是它的對手。

雖然賽達目前,暫時,還打不過職業選手,但開發團隊認為「已經不遠了」,內心充滿了希望。他們說,現在的星海 AI 已經達到了高端業餘玩家的水平,戰網天梯 1800 分左右的那種。再有一兩年,就能擊敗戰網 3000 多分的最強 7 位職業選手之一。

籌辦者戴夫對這個展望似乎半信半疑,他說,“I’ll believe that when I see it :)”,「眼見為實」吧。

他們的目標是:成為第一個擊敗人類星海職業選手的 AI。

賽達團隊

上面,就是賽達的8名創造者:Iljoo Yoon、Daehun Jun、Junseung Lee、Hyunjin Choi、Changhyeon Bae、Hyunjae Lee、Yonghyun Jeong、Uk Jo。其中,Changhyeon Bae 是這支隊伍的 leader。

Facebook 團隊 CherryPi 進步明顯,影片平台 bilibili 也有參賽

下面,說說今年的其他選手。先看看最終的排名。

今年的星際 AI 大賽成績單

第二名是 CherryPi。如果你關注過這項賽事,一定不會對這個名字陌生。櫻桃派這個選手,家世顯赫,出自著名的 Facebook AI Research 團隊,領軍人物是大名鼎鼎的 Yann LeCun。戰隊成員包括:Jonas Gehring, Vegard Mella, Daniel Gant, Zeming Lin, Da Ju, Danielle Rothermel, Nicolas Carion, Nicolas Usunier, Gabriel Synnaeve

去年,CherryPi 參賽獲得第六名。今年,經過一番車輪鏖戰,CherryPi 最終奪得亞軍,僅次於三星 SAIDA 戰隊。要知道去年的冠軍 ZZZKBot,今年只獲得第 10 名的成績。

CherryPi會有 8-13 個候選策略。每場比賽開始時,它會根據與對手之間的歷史表現,基於具有時間衰減權重的強盜模型,選擇一個策略(通俗的說,也就是越是最近的比賽,權重越高)。隨著比賽進行,CherryPi 會根據當前情況,使用預訓練的模型,使用每種策略估計獲勝的可能性,滿足一些條件的情況下,會切換到勝率最高的策略。

所以,這也是一種來回切換的「混合」策略。

CherryPi 對戰畫面

策略選擇上有幾個基本的要素。一是多樣性,能夠考慮到盡可能多的情況。二是穩健性,以及追求 100% 的勝率。三是更好的揚長避短。

CherryPi 使用了非常多的 AI 技術,包括:

基於搜索的 AI。CherryPi 使用了區域級尋路來指揮單位繞過地圖上的障礙,使用威脅感知尋路來風箏或者引導單位脫離戰鬥。CherryPi 也會基於人類數據學習建築擺放的位置,還用了離線強化學習,以及在線學習,也使用了 BWEM 進行自定義的地圖分析。

與去年相比,現在的 CherryPi 使用了 LSTM 模型進行高級策略的選擇,使用部分觀察的游戲狀態作為輸入;在巨集觀管理方面進行了優化,微觀管理也進行了改進。

CherryPi 使用了 Torch 框架,全部的代碼是大約 5 萬行的 C++。

SAIDA 對戰 FB 另一 Bot

第三名到第八名的共同特點:全是神族!

第三名 CSE。這是一個中國戰隊。成員包括:Junge Zhang、Wei Guo、Qiyue Yin、Dong Zhan、Qiwei Wang、Yihui Hu、Shengqi Shen、Kaiqi Huang。

其中第一位應該是中科院自動化所的張俊格,去年他也帶領團隊參加了星際 AI 大賽,只不過去年他們的 AI 是 CPAC,今年改了名字。這支戰隊算是「改裝」派打法,他們的 AI 去年基於 Steamhammer bot,而今年則基於 Locutus。他們在 Locutus 的基礎上,做了一些策略和微觀層面的優化。

第四名 BlueBlueSky,也基於 Locutus,作者是科羅拉多大學的博士生 Pengfei Hou。

第五名是正牌的 Locutus。在八月的 CIG 星際 AI 大賽上,丹麥獨立游戲 AI 開發者編寫的 Locutus 一舉奪魁。(當時ZZZKBot也參賽了,最終排名第七。)

可能正是由於 Locutus 的成功,今年3-8名的戰隊,全都是使用神族的 AI。全部戰隊中,有11支使用了神族,蟲族的熱度有所下降。

其實 Locutus 是基於 Steamhammer 改進的,不同之處在於,Steamhammer 玩蟲族,而 Locutus 玩神族。

Steamhammer本尊這次排名第十一。

除了 CSE 和 BlueBlueSky,這屆 AIIDE 星際 AI 大賽還有其他的中國團隊參賽。

排名第六的 ISAMind,作者 Fang Gao,來自中國電子科技集團公司認知與智能實驗室。

排名第七的 DaQin,作者 Lion Gis,看 GitHub 的畫風應該也是來自中國:
https://github.com/liongis。

而排名第 13 位的 LastOrder,來自 B 站(Bilibili AI Research)。LastOrder 使用了 TensorFlow 機器學習框架。

B 站這個 bot,據說用了 1000 台機器進行分佈訓練,也被對手認為很有潛力。

從勝率中發現的小細節:賽達輕微下降、CherryPi 卻緩緩上升

雖然「不會學習」的賽達擊敗了各路 AI,但有個細節很有意思。

我們注意到,如上圖所示,隨著比賽時間的推移,三星賽達的勝率雖然一直很高,但總體上在輕微但持續的下降。與此同時,獲得第二名的 CherryPi 的勝率,在輕微而持續的上升。

儘管星海很難,但對於 AI 來說,也許未來有一天也能跟圍棋一樣,不用依靠人類的知識,自己成長為一代高手。

最後,給幾個開源地址。

賽達的源代碼目前還沒有放出,不過,GitHub 頁面已經有了,誰知道官方什麼時候會補一些除了 readme 之外的東西呢:
https://github.com/TeamSAIDA/SAIDA

CherryPi 的 GitHub 頁面傳送門:
https://github.com/TorchCraft/TorchCraft

Locutus 的 GitHub 頁面傳送門:
https://github.com/bmnielsen/Locutus/

(本文經原作者 量子位 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為〈2018 星際 AI 大賽冠軍誕生!一個個機器學習演算法,都輸給不會學習的韓國 bot〉。)

延伸閱讀

台灣扳倒中國逆轉勝!交大圍棋 AI 幹掉世界排名第二的中國圍棋 AI
從圍棋、西洋棋、到 Dota2,人類喜歡跟 AI 單挑「遊戲」原因為何?
趨勢科技鍛鍊菁英工程師妙招:辦一場只由「AI」參加的德州撲克賽

AD