第八屆星際爭霸 AI 大賽(StarCraft AI Competition)終於落下帷幕。
這次大賽選用的版本是《星際爭霸:母巢之戰》,開啟戰爭迷霧。所有參賽的 AI 在 16 台虛擬機上,1v1 捉對廝殺,為期兩周共進行 41580 場大戰。按照最終的勝率排定座次。
每局比賽 60 分鐘,未分高下時得分多者勝出。作弊或者計算超時都會被判出局。

共有 28 支隊伍參賽,其中有 15 支屬於獨立戰隊(Independent),其他基本來自大學:
美國哈佛大學、荷蘭代爾夫特理工大學、瑞典皇家理工學院、荷蘭馬斯特里赫特大學、巴西米納斯聯邦大學、日本筑波大學、加拿大紐芬蘭紀念大學、法國南特大學、法國高等信息工程師學院、日本立命館大學、韓國世宗大學。

還有三個隊伍是量子位格外關注的。
比方說中國團隊。
其中以獨立戰隊身份參賽的“CPAC”,背後是一個 Junge Zhang 領銜的 13 人研發團隊,來自中科院自動化研究所;這個星際 AI 基於 Steamhammer bot,然後增加了一些新的策略,並通過機器學習的方式訓練了一個多層感知網路來生產戰鬥部隊。
(Steamhammer bot 傳送門:http://satirist.org/ai/starcraft/steamhammer/)
還有一個中國團隊由 Tang Zhentao 領銜,代號“KillAll”,據推測應該是來自中科院自動化研究所複雜系統管理與控制國家重點實驗室;不過相關信息實在是太少。
另一個值得關注的隊伍是“CherryPi”(櫻桃派),背後是來自 Facebook 人工智慧研究實驗室的八人團隊。

最終的戰果:不隸屬於任何機構的獨立戰隊們,包攬前三名。
CPAC 以 71%的勝率排名第四;CherryPi 以 69.08%的勝率排名第六;KillAll 以 43%的勝率排名第 18。第一名“ZZZKBot”勝率 83.11%,平均用時 8 分鐘。
這幾位 AI 用的都是蟲族。

Facebook 的團隊,在這個大賽中顯得有些異類,畢竟這是唯一有企業背景的選手,而且是一個押注 AI 已久的科技巨頭。
科技巨頭的 AI 殺入星際爭霸並不稀奇。今年 8 月,Google 旗下的 DeepMind 宣布進軍星際,不過他們選擇的方向是《星際爭霸 2》。
看起來,星際爭霸已經成為巨頭爭霸的下一個戰場。
Facebook 的人工智慧團隊至少已有 80 餘人,帶領這個團隊的是大名鼎鼎的 Yann LeCun,他們已經發表了很多研究和論文(其中三篇與星際爭霸有關)。但目前 Facebook 在人工智慧領域還沒有取得 AlphaGo 那樣的成就。
而這次參賽成績也表明,Facebook 還有很長的一段路要走。

Facebook 研究科學家 Gabriel Synnaeve 表示,他們把 CherryPi 當做一個基線,以及未來繼續在星際領域進行研究的基礎,“我們想看看它與現有 bot 相較如何,特別是測試一下是否有需要糾正的缺陷”。
人工智慧對於科技公司的重要性已經不言而喻,而星際對於 AI 研究的重要性和挑戰,不僅僅是指揮戰鬥這麼簡單。與下圍棋這件事相比,《星際爭霸》的複雜性要大得多也要困難得多。
即便 DeepMind 現在也沒有突破性的進展。(參見量子位之前的報道)
星際 2 是個實用的基礎 AI 研究環境,因為遊戲本身複雜多變,且勝利方式不固定。
玩家想要取勝需要同時做多手準備,比如管理並創造資源、指揮軍事單位和部署防禦結構等操作需要同時進行,逐步完成。此外,玩家還需預測對手的策略。
這項任務確實不容易,但不是無解。DeepMind 和暴雪嘗試將遊戲分為多個“迷你遊戲”,將不同任務分解成“可管理的組塊”,比如建立特定單元、收集資源或在地圖上移動等。
細分是為了方便研究人員進行不同任務的測試比較及細化,最終在智能體中組合,從而教會智能體通關整個遊戲。
為啥這個大賽沒用星際 2?好像是沒跟暴雪爸爸談好……

回到這次的星際爭霸 AI 大賽,獨立參賽的隊伍,通常 bot 背後是程序員制定的規則和策略。比如摘得冠軍的 ZZZKBot,背後是澳大利亞的程序員 Chris Coxe。他獨自創建了這個 AI,但其中只有一些簡單的學習功能,背後更多是各種預先編輯好的策略。
而對於科技巨頭來說,他們更多的依靠機器學習,通過積累大量的遊戲數據,讓 AI 自己制定相應的遊戲策略。不過據說這次 Facebook 也沒有把全部研究都注入 CherryPi 之中。儘管如此,CherryPi 還是獲得了對手的肯定,獲得第二名的 PurpleWave 作者就表示,CherryPi 對時機的把握讓他印象深刻。
那麼獲勝的隊伍都依靠了什麼策略和技術?量子位也簡單介紹一下。
第一名:ZZZKBot
蟲族,單基地 Rush 布局:4-Pool,Speedling,Hydra,Muta。使用手工編碼的邏輯,來進行策略選擇。
這個 bot 其實只能執行一種單基地 Rush 戰術,單它的對手現在比較吃這一套。另外,這個 bot 能在遊戲中學習一些策略,以判斷哪種 rush 是最有效的。以及,這個 bot 幾乎沒有掌握任何戰鬥中的微操作。
“這原本只是想證明一個概念”,作者 Chris Coxe 自我評價:“源代碼並不是那麼好”。
第二名:PurpleWave
這個 bot 主要是用 Scala 寫出來的,作者是美國軟體工程師 Dan Gant,他今年一月開始啟動這個項目。
PurpleWave 看起來比第一名更為“AI”一點;會微操作,有多種不同的策略。PurpleWave 的高級決策被構建為一個任務網路,它能根據對手以往的比賽情況,選擇不同的對抗策略。
第三名:Iron
這是去年的冠軍,作者是法國程序員 Igor Dimitrijevic。Iron 於 2016 年開始研發,前身是 2015 年參賽的 Stone。
Iron 是一個多智能體系統,每個智能體控制一個單位。整體行為的魯棒性是其主要目標,每個智能體都是高度自主的,可以在 25 種行為之間切換。每場對決,Iron 都採用相同的開局,但對根據對手的情況進行反應和修改策略。
第四名:CPAC
團隊名單:Junge Zhang,Xun Zhang,Qiyue Yin,Dong Zhan,Shihong Deng,Huikai Wu,Peixi Peng,Wenzhen Huang,Jing Kong,Debang Li,Yange Fang,Tairan Zhang,Junliang Xing。
CPAC 是首次參賽,整個研發耗時數月。其他情況開頭也介紹過了。

最後說一下這個大賽的情況。
星際爭霸 AI 大賽,是加拿大紐芬蘭紀念大學 David Churchill 組織的年度活動。這個比賽的目的是促進和評估即時戰略遊戲(RTS)對人工智慧的意義。
整個比賽使用 BWAPI,這是一種可以讓 AI 程序控制《星際爭霸:母巢之戰》的軟體庫。
另外還有一些基本數據分享一下。比如歷屆選手的種族分佈,2017 堪稱蟲族大崛起:

大會官方還提供了一個開源項目:UAlbertaBot,包含完整的文檔。不過這只是一個入門指導,如果你想基於這個開源代碼參賽,必須對其進行重大修改。主辦方也不想一個 bot 的多個副本展開競爭。
這個開源項目的地址在此:https://github.com/davechurchill/ualbertabot/wiki
問耕 發自 凹非寺
量子位 出品 | 公眾號 QbitAI