Deepmind暴雪開源介面 AlphaGo能否用於星海爭霸
來源:觀察者網 專欄作者:陳經
早在2016年3月AlphaGo挑戰圍棋成功之後,就傳出Deepmind下一步計畫是在星海爭霸
上打敗人類。
人工智慧開發者研究演算法很喜歡用電腦遊戲。一是研究目標清楚,遊戲目標定義得
很完善,科研有時最重要的是提出問題。二是最近流行的深度學習需要極多的訓練樣本,
人類的線上高水準比賽很多能夠提供足夠的樣本。三是問題足夠難,進展如何通過人機對
戰、線上測試一清二楚,而不是研究者自說自話。
圍棋是“完全資訊博弈”(局面擺明,理論上有確定結論)遊戲裡最複雜的一個,又
很有藝術性。在圍棋上戰勝人類,就實現了Deepmind負責人哈薩比斯的說法,機器自我對
弈不斷自我學習的方法可以解決一切基於推理的棋類遊戲。
這個自學習的框架,能否在“非完全資訊博弈”上打敗人類,令人非常有興趣,同時
又極有學術價值。星海爭霸是一個很合適的測試物件。星海爭霸最常見的是兩個玩家對戰
,各自從一個基地開始發展,沒有兵力在附近就看不見對方的動作,對方在幹什麼自己不
知道,因此是“非完全資訊博弈”。
1998年暴雪公司推出的星海爭霸,經過數次升級到“母巢之戰”版本,終於成為一款
平衡性極好的即時戰略遊戲,人族、神族、蟲族三家兵種與科技特色極為鮮明。在不少玩
家的心中,星海爭霸具有獨特的地位,對戰起來戰略非常複雜,而且富於變化經常有創新
。
韓國人在曹熏鉉與李昌鎬稱霸世界棋壇後掀起了圍棋熱潮,會下圍棋的人比例極高。
同樣,韓國人也非常熱愛星海爭霸,將它變成了一項“國技”,創立了職業聯賽,出現了
許多高水準的職業選手,在WCG(世界電子競技大賽)上多年來一直是壟斷地位,競技水
準比其它國家選手高出一大截。
韓國選手發明了很多新戰術,如“拖把流”、“宇宙天空流”、“神教流”,不斷將
星海爭霸遊戲水準推向新的高峰。玩家們普遍認為,歷史最強選手應該是人稱“教主”的
人族選手李永浩(網名Flash)。因為Flash的統治力,玩家們認為雖然星海爭霸已經很平
衡,但在頂尖水準人族應該稍有優勢,神族最吃虧。
星海爭霸有個很大的問題,操作實在是太複雜。除了複雜的對戰策略,職業選手們還得
有象抽風一樣的手速,APM(每分鐘操作)經常上400。對戰雙方一邊要採礦挖氣開分基地
發展經濟、科技、兵工廠,還得去多線作戰,作戰時微操很重要。蟲族的“拖把流”就是
說前方打得再激烈,還得抽空在後方不斷增補農民挖礦發展,這樣蟲族利用出兵快兵力前
仆後繼的優勢,彌補了單兵戰力的不足,“補農”做的不好的對手後期就敗下陣來。
這樣發展下去,身體反應的對抗越來越激烈。韓國職業選手基本都非常年輕,手速反
應跟不上就被淘汰,而且有可能產生職業病。開發商暴雪公司2010年推出了操作簡單一些
的星海爭霸2,2016年韓國星海爭霸1聯賽停辦,可能都與此有關。
能夠說明星海爭霸複雜性的,除了多線操作,還有“偵察”。有一定水準的玩家都會
在很早就從本方基地派出一個農民去探路尋找對方基地(蟲族還會讓漂浮的房子去碰運氣
),跑到對方基地偵察對方的發展動向。如果發展方向被針對了,失敗可能就非常大了。
例如對方在發展空中力量,自己卻沒有作好防空準備;或者對方放棄經濟短期堆積兵
力猛撲過來,自己卻農民過多兵力不足防禦工事不夠,錢多還被打死。偵察經常有運氣因
素,如猜錯探路方向,很長時間才找到對方基地,反應時間不足吃了虧。所以即使強如教
主,勝率也只有70%。
通過以上描述,我們能感覺到星海爭霸從AI研發角度看,是一個比圍棋複雜得多的遊
戲。圍棋就是去推理出勝率高的選點,而星海爭霸要決定很多的行動策略,科技與經濟發
展方向、偵察之後針鋒相對、戰鬥的方向與時機、作戰單元的微操。
例如高水準選手都會hit and run(打了就跑)的騷擾戰術,甚至上升到戰略層面,
如人族的雷車提速騷擾,如何應對很煩人。除了“資訊不完全”這個特性,星海爭霸的博
弈決策種類也特別多。而各類決策的影響也長短不一,有的決策要過很長時間才能體現重
要性,水準不高的甚至看不懂。同時,與圍棋AI相比,星海爭霸的AI具有更高的實用價值
,如果開發成功,軍事指揮等決策事務引入人工智慧就是很快的事了。
正因為如此,星海爭霸職業選手對AlphaGo征服圍棋後轉向星海並不服氣,職業解說
黃旭東在2016年3月與古力九段發生爭執。圍棋的推理深度極深,電腦演算法能解決圍棋
非常令人震驚了。
特別是AlphaGo取得突破後短短一年多就迅速戰勝李世石、柯潔等所有人類最頂尖選
手,這個發展速度讓人印象深刻。AlphaGo的演算法原理能不能用在星海爭霸上讓AI的競
技能力取得突破,並不容易回答。
2017年8月10日,Deepmind與暴雪公佈了星海爭霸2的AI開發介面,合作發了論文《星
海爭霸2:對強化學習新的挑戰》,對這個問題作出了初步的探索。可以看出來,星海爭
霸的複雜度可能超過了Deepmind的想像,他們的進展並不太大。這也部分揭示了,
Deepmind發明的“讓機器自己玩遊戲不斷進步”的流水線開發方法存在一定局限性。同時
,這並不是說人工智慧就對星海爭霸沒有辦法了,更厲害的學習框架也許可以開發出來,
Deepmind與暴雪為此準備了完善的研發環境,意義很大。
Deepmind讓AlphaGo不斷自我對弈提高棋力,既不去主動寫代碼告訴機器怎麼下棋,
也不去干預機器的自我學習過程。主要的開發就是設計好各類機器學習的過程,找到新的
訓練方法提升效率,這是一個很高明的選擇。
AlphaGo演算法負責人席爾瓦說,人類棋譜的作用,就是提供一個初始的棋力,之後
就再沒有人類棋譜輸入了,AlphaGo學習自己的棋譜提升棋力。而騰訊的絕藝開發方法不
太一樣,具備了很高棋力以後積極地與頂尖棋手不斷實戰測試,發現問題後針對棋譜改代
碼調試升級。
絕藝的開發方法多少有些急功近利,近期顯得無法突破瓶頸,在2017年8月16、17日
的首屆中信證券杯智慧圍棋賽中先後負於臺灣的CGI與日本的DeepZenGo,出乎預料地連決
賽都沒有進。
絕藝的失利有偶然性,CGI與DeepZenGo也不是太穩定,奪冠的DeepZenGo預賽中輸給
了絕藝。這說明高水準圍棋AI的開發並不簡單,容易進入瓶頸,棋界都在等AlphaGo的新
論文公佈。
因為這個思想,Deepmind堅持讓機器自我學習不斷打星海爭霸去提升實力,認為這種
方法潛力更大。主動去程式設計讓AI具備相當的實力,這樣前期進展快,但提升潛力不大
。機器的學習有兩種,一種是從0知識開始,一種是參考人類的比賽錄影。這兩種辦法,
Deepmind都在星海爭霸2上進行了實踐,那麼結果如何?
從0知識開始讓AI自我學習是Deepmind的拿手好戲。在開發AlphaGo之前,Deepmind就
有一篇2015年的《自然》文章《Human-level control through deep reinforcement
learning》,描述如何在“打磚塊”等Atari開發的經典小遊戲中,從0知識開始自我學習
達到超過人類的遊戲水準。
開發人員負責給AI定好神經網路結構,AI通過海量試玩,分析遊戲結果(如分數)改
變神經網路係數提高分數回報。可以猜測,Deepmind希望用海量的自我對戰,引導星海爭
霸AI的神經網路結構去自己發展出越來越複雜的戰略與戰術,甚至與人類玩家抗衡。
Deepmind也這樣對星海爭霸2建立了幾種神經網路架構,一種訓練是用比賽勝負結果
作為“回報”去調整網路係數,另一種是用比賽過程中報告的分數(如錢數、農民數、兵
的個數)作為回報。訓練的對手是暴雪內置的AI,這種AI是用主動程式設計的方法做出來
的,前期如何發展,什麼時候對玩家發動一波進攻都是寫好的。它的目的是讓玩家學習操
作,玩得開心,不是為了搞出厲害的AI展示演算法能力。
暴雪的內置AI有十個級別,最厲害的三個是作弊的,AI能得到額外的資源和視野,
Deepmind用的是最容易的那個級別。比賽是人族對人族,如果30分鐘沒有打完,就是和局
。
結果是令人崩潰的!Deepmind訓練出來的神經網路沒有一局能打勝,甚至沒有一個能
打得象回事。表現“最好”的一種神經網路,它“學會”了將人族建築飄到空中遊動躲避
攻擊(但就沒法搞生產了),然後生存大於30分鐘拖成和局。如果是用過程中的分數作為
訓練目標(它和比賽勝負是有關聯的),這些神經網路們不約而同收斂到了一個策略:讓
農民拼命採礦,其它什麼也不幹,對手來了就任人宰殺。
暴雪的內置AI是很差的,有些玩家聲稱能一家打六七個AI,因為AI的策略太簡單。這
個結果等於是說,Deepmind並沒有做出有操作意義的AI,而是將以前機器從0知識開始不
斷試玩Atari小遊戲的成功方法跑了一下。結論是,星海爭霸遠比小遊戲複雜,過去的神
經網路結構和訓練方法是遠遠不夠的。由於外界對Deepmind的預期很高,這次它報告的結
果可能會讓人意想不到,雖然Deepmind自己說這不令人意外。
為了探索神經網路自學習框架對星海爭霸的作用,Deepmind還設計了七個迷你遊戲,
等於是相當於Atari小遊戲難度的子任務。這七個迷你遊戲跑出了一些有意義的結果。
推 講的好詳細