剛剛,星際爭霸AI大賽新王誕生!
二十多個掌握了機器學習技能的AI,全都在一個不會學習、只會基於規則機械行動的bot面前,俯首稱臣。
包括三巨頭之一Yann LeCun治下的Facebook AI團隊。他們的AI獲得亞軍,但在與新王的100回合大戰中,戰績是83負17勝,劣勢明顯。
其他AI更不是對手。
新霸主與全部對手的2600場廝殺中,勝率達到了95.91%。而往屆比賽中,冠軍勝率最高的一次,也不過89%。
到底是誰?哪個團隊的人工規則,能如此碾壓人工智慧?
答案是:賽達(SAIDA)。
△ SAIDA對戰第二名CherryPi
來自三星,首次參賽的賽達,完全基於規則,在這個機器學習大爆炸的時代,一個如此「復古」的系統,俾睨一眾AI。
賽達之所以如此厲害,一個重要原因是,背後有韓國職業星際選手助力。要知道,星際一度被稱為韓國的國技。
這次星際爭霸AI大賽的組織者戴夫·邱吉爾(Dave Churchill)總結說,今年的比賽成了兩家巨頭之間的爭奪。
第一名三星賽達,代表頂級人類玩家的經驗總結;第二名Facebook CherryPi,有頂級程式設計師坐鎮,3位頂尖bot作者都在麾下。
目前,三星職業選手組更勝一籌。
這還不是賽達的全部成就。在另一個星際賽事——星際AI錦標賽(SSCAIT)上,它的ELO等級分也排在第一名。
總體來看,它已經是地表最強星際AI了。
我們來認識一下這匹黑馬。
基於規則的復古新秀這次大賽還是基於星際爭霸:母巢之戰(Starcraft Broodwar)。
賽達使用人族(Terran),以穩定的防守優先戰略開局,到中期過後,它會尋找最佳rush時機,一波強攻擊敗對手拿下比賽。
△ SAIDA對戰畫面和現在主流方法不一樣的是,賽達沒有用機器學習方法。
三星的程式設計師們嘗試了用卷積神經網絡和編碼器-解碼器從遊戲視頻中學習戰鬥時機,也嘗試了用多智能體強化學習算法來控制單位……然後決定,在參賽算法裡不用這些東西了。
這些研究當然也沒有白費,他們把研究結果寫進論文,投稿到了AAAI 2019。哪位朋友見到這篇論文的預印本,歡迎通知我們,和更多量子位讀者分享。
△ SAIDA對戰畫面我們說回參賽版本的賽達,它都是手工編寫的基於規則的算法,一共49702行。
不過,這並不是說它的打法就是一成不變的。它所用的策略不是一開始就預設好的,而是會根據偵查和掃描收集的信息來構建。
除了選擇策略的程序,賽達還包含用來控制單位和建築物的有限狀態機,用來尋找建基地位置或者敵人基地的幾種搜索算法。
那麼,人類程式設計師們是如何給這個算法制定規則的呢?
背後有韓國職業星際選手的幫助。戴夫說,把大賽官方提供的樣本程序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進步明顯、B站參賽下面,說說今年的其他選手。
先看看最終的排名。
△ 今年的星際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臺機器進行分布訓練,也被對手認為很有潛力。
One More Thing雖然「不會學習」的賽達擊敗了各路AI,但有個細節很有意思。
我們注意到,如上圖所示,隨著比賽時間的推移,三星賽達的勝率雖然一直很高,但總體上在輕微但持續的下降。
與此同時,獲得第二名的CherryPi的勝率,在輕微而持續的上升。
儘管星際很難,但對於AI來說,也許未來有一天也能跟圍棋一樣,不用依靠人類的知識,自己成長為一代高手。
最後,給幾個開源地址。
賽達的原始碼目前還沒有放出,不過,GitHub頁面已經有了,誰知道官方什麼時候會補一些除了readme之外的東西呢:
https://github.com/TeamSAIDA/SAIDA
CherryPi的GitHub頁面傳送門:
https://github.com/TorchCraft/TorchCraft
Locutus的GitHub頁面傳送門:
https://github.com/bmnielsen/Locutus/
量子位AI社群開始招募啦,歡迎對AI感興趣的同學,在量子位公眾號(QbitAI)對話界面回復關鍵字「交流群」,獲取入群方式;
此外,量子位專業細分群(自動駕駛、CV、NLP、機器學習等)正在招募,面向正在從事相關領域的工程師及研究人員。
進專業群請在量子位公眾號(QbitAI)對話界面回復關鍵字「專業群」,獲取入群方式。(專業群審核較嚴,敬請諒解)
量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話界面,回復「招聘」兩個字。