標籤:

Deepmind與暴雪開源介面,人工智慧挑戰星際爭霸到哪一步了? | 陳經

關注風雲之聲提升思維層次

解讀科學,洞察本質

戳穿忽悠,粉碎謠言

導讀

Deepmind挑戰星際爭霸的進展令人震驚的小。對於人類選手的擁護者,這是極好的消息,Deepmind過去成功的機器學習方法,這次看來碰到了很厚的牆,短時間內應該不可能有星際爭霸AI象AlphaGo那樣自我對練後忽然跑出來天下無敵。Deepmind應該是感覺到這個項目短期無望,所以將平台開放,希望全球研發者一起來想辦法。

—————————————————————————————————————————

本文來自微信公眾號:觀察者網(ID:guanchacn)

早在2016年3月AlphaGo挑戰圍棋成功之後,就傳出Deepmind下一步計劃是在星際爭霸上打敗人類。

人工智慧開發者研究演算法很喜歡用計算機遊戲。一是研究目標清楚,遊戲目標定義得很完善,科研有時最重要的是提出問題。二是最近流行的深度學習需要極多的訓練樣本,人類的線上高水平比賽很多能夠提供足夠的樣本。三是問題足夠難,進展如何通過人機對戰、線上測試一清二楚,而不是研究者自說自話。

圍棋是「完全信息博弈」(局面擺明,理論上有確定結論)遊戲里最複雜的一個,又很有藝術性。在圍棋上戰勝人類,就實現了Deepmind負責人哈薩比斯的說法,機器自我對弈不斷自我學習的方法可以解決一切基於推理的棋類遊戲。

這個自學習的框架,能否在「非完全信息博弈」上打敗人類,令人非常有興趣,同時又極有學術價值。星際爭霸是一個很合適的測試對象。星際爭霸最常見的是兩個玩家對戰,各自從一個基地開始發展,沒有兵力在附近就看不見對方的動作,對方在幹什麼自己不知道,因此是「非完全信息博弈」。

1998年暴雪公司推出的星際爭霸,經過數次升級到「母巢之戰」版本,終於成為一款平衡性極好的即時戰略遊戲,人族、神族、蟲族三家兵種與科技特色極為鮮明。在不少玩家的心中,星際爭霸具有獨特的地位,對戰起來戰略非常複雜,而且富於變化經常有創新。

韓國人在曹熏鉉與李昌鎬稱霸世界棋壇後掀起了圍棋熱潮,會下圍棋的人比例極高。同樣,韓國人也非常熱愛星際爭霸,將它變成了一項「國技」,創立了職業聯賽,出現了許多高水平的職業選手,在WCG(世界電子競技大賽)上多年來一直是壟斷地位,競技水平比其它國家選手高出一大截。

韓國選手發明了很多新戰術,如「拖把流」、「宇宙天空流」、「神教流」,不斷將星際爭霸遊戲水平推向新的高峰。玩家們普遍認為,歷史最強選手應該是人稱「教主」的人族選手李永浩(網名Flash)。因為Flash的統治力,玩家們認為雖然星際爭霸已經很平衡,但在頂尖水平人族應該稍有優勢,神族最吃虧。

星際爭霸歷史最強選手,最終兵器、教主Flash,職業生涯勝率唯一超過70%(圖片來源:見水印)

星際爭霸有個很大的問題,操作實在是太複雜。除了複雜的對戰策略,職業選手們還得有象抽風一樣的手速,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 throughdeep 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小遊戲難度的子任務。這七個迷你遊戲跑出了一些有意義的結果。

圖為四個迷你遊戲。第一個是「移動到游標處」,玩家要反覆操作一個人族士兵到達指定地點,成功一次加1分,不停做追求高分。第二個是不斷操作兩個士兵收集散落的水晶。第三個是持續生產水晶礦和氣礦。

第四個是生產士兵,玩家需要先造出兵營才能造兵。可以看出,這都是很簡單的生產型任務。還有三個戰鬥型小遊戲,分別是3個人族士兵打蟲族小狗、9個人族士兵打4隻蟲族蟑螂、人族士兵打蟲族小狗和自爆蟲,蟲族兵種會不斷冒出來,打死的越多分越高。對這些小任務,Deepmind讓一個業餘玩家和一個職業選手來多次玩,獲得分數統計用於比較。

Deepmind從0知識開始訓練AI玩這些小遊戲,最後取得的能力是:「移動到游標處」AI做得比職業玩家好,因為機器操作快;「收集散落水晶」和業餘玩家差不多;「打小狗」比業餘玩家稍好;「打蟑螂」比業餘玩家好一些,弱於職業玩家;「打小狗和自爆蟲」比業餘玩家差不少。

可以看出,這些小遊戲AI算是會玩,但從0知識開始訓練,基本就是業餘水平。令人震驚的是「採礦採氣」這種簡單任務,AI比業餘選手還要差很多,而「生產士兵」AI就等於不會,造不出幾個兵。這可能是因為,想多採礦採氣,需要一點「策略」,花一點錢生產農民(職業的還會讓農民分散開縮短回基地距離提高開採效率),這AI沒人指點就不太會。而「生產士兵」需要的策略就更多,先要多生產農民採礦,然後要造出兵營,還要多個兵營,「步驟」這麼多,AI完全學不會。

這說明,從0知識開始訓練,改變神經網路結構玩遊戲這個方法,只能解決有限的一些小遊戲。對星際爭霸這種複雜的策略遊戲,純自學連簡單任務都做不好,更不要說和人對打,連最弱的內置AI也打不過。星際爭霸操作類型很多,單一動作與最終回報因果關係不明,多種操作為了全局戰略服務,機器從0開始自我學習很可能是走不通的,領會不到遊戲的精要之處。

AlphaGo之前有一個很有意思的計劃,從0知識開始自我學習出一個不受人類棋譜「污染」的圍棋AI,如果能訓練出來,這個AI會如何下棋非常有意思。

但可以猜測這個計劃不成功,五月與柯潔的人機大戰中沒有提到。這種AI從隨機亂下開始訓練,可能陷入了某種瓶頸中出不來了,就如「生產士兵」小遊戲一樣,沒有辦法達到較高水平。人類高手的棋譜是有意義的,每一招即使不是最佳選擇也很有邏輯,讓AlphaGo的行棋選擇有了邏輯基礎,在這個基礎上AlphaGo再深入地判斷幾個選擇的好壞。

如果沒有人類提供初始基礎,AlphaGo自我訓練很可能「Garbage in, Garbage out」無法持續提升。就象有些小孩很聰明也很努力學習,但如果沒有明師指點學習方向,也不知道如何發揮聰明才智。

Deepmind這次也嘗試了向人類學習如何打星際。AlphaGo有兩個神經網路,分別是用於預測棋手選擇的「策略網路」,以及預測局面勝負的「價值網路」。Deepmind也用人類星際爭霸2的對戰回放(replay)訓練了兩個網路,一個是「策略網路」用來學習在當前局面下人會怎麼操作,一個「價值網路」用來預測當前誰勝誰負。

理論上來說,可以用這兩個網路讓AI來打星際,選擇一個獲勝概率大的操作來執行。用這種辦法,Deepmind在「生產士兵」小遊戲上有了突破,比之前的自學習方法多生產了不少人族士兵(應該還是不如人類玩家)。用「策略網路」與暴雪內置AI對打,也比之前的表現「好多了」。

之前根本就不能叫對打,最多只是自己的建築飄起來逃跑,而向人類選手學習操作之後,AI能以較高的概率造出戰鬥部隊了(這需要多個步驟,對AI並不簡單,也有一定概率造不出來),甚至平均能造出七八個兵(在被消滅之前)。總的來說,神經網路學習人類操作以後,AI可以有一定機會摸到「造兵反抗」的正確方向,好過之前的「束手無策」或者「逃跑主義」,但也不太像是有主意的樣子。

不管是從0開始自己玩學習,還是向人類選手學習操作,Deepmind的星際爭霸AI最大的麻煩是,不知道自己要幹什麼。AlphaGo知道自己要優化每一步的勝率,它明確知道自己要幹什麼,一直這麼做就能擊敗最強的人類選手。而星際爭霸不是這樣,開局AI需要多生產礦,然後要改變目標去造兵營,同時還有一堆不同的事要去做,這些「小目標」和最終獲勝的「大目標」是什麼關係,AI是很糊塗的。

雖然Deepmind取得的進展令人震驚的小,但要看到,它還是堅持機器學習的戰略方向,堅決不用人去寫代碼解決問題。如果把代碼寫死,很容易就能寫出不錯的採礦造兵策略,比暴雪的內置AI強也不難。但這不是Deepmind的思想精髓,而是過去的老辦法。Deepmind認為,要讓機器具備學習能力,可以給它數據,不停找各種辦法教它「學習」,但不能直接下命令讓機器怎麼做。

為此,Deepmind與暴雪公布了幾十萬局人類選手在戰網的對戰錄像,並研發了一個對AI研發者很方便的開發環境SC2LE。全球研發者都可以用這些資源去研究星際爭霸2的AI了,比過去要方便多了。這個意義不可小視,一個好的研發環境往往能促使大批好的研發成果出來,因為會有更多研發者加入進來(之前因為麻煩做不了)。

Deepmind挑戰星際爭霸的進展就是這些。對於人類選手的擁護者,這是極好的消息,Deepmind過去成功的機器學習方法,這次看來碰到了很厚的牆,短時間內應該不可能有星際爭霸AI象AlphaGo那樣自我對練後忽然跑出來天下無敵。Deepmind應該是感覺到這個項目短期無望,所以將平台開放,希望全球研發者一起來想辦法。而之前AlphaGo看到突破的希望後,Deepmind擴大研發團隊加強保密,搞了一個鬨動全球的大新聞。

可以預計,會有不少星際爭霸的機器學習研究進展出來。如更多的迷你遊戲類型被嘗試,改善神經網路結構向人類學習操作後抵抗時間更長。但這類「小進展」一段時間內只會讓人類玩家會心一笑,對AI的能力給個很低評價。如果能通過機器學習的辦法打敗暴雪的內置AI,對研發者而言都會是極大的進展。真正讓業界震動的革命性演算法進步不可預期,也許能出來,也許長期出不來,但一定不是現在這些方法的拼湊組合。

其實Deepmind並不是最早開始挑戰星際爭霸的研究機構,這次提供的研發平台也不是最早的。2009年就有業餘開發者做出了BWAPI,是對星際爭霸1的。用這個介面,人們就可以開發AI來打星際爭霸了。之前是沒有辦法的,開發者不太可能直接讀取屏幕像素去分析各種單元,再操作滑鼠鍵盤點擊屏幕,會被界面開發煩死。有了BWAPI,各類星際爭霸AI迅速出來不少。

加拿大紐芬蘭紀念大學計算機科學系副教授 Dave Churchill(圖片來源於網路)

從2010年開始,加拿大紐芬蘭紀念大學計算機科學系副教授Dave Churchill等人組織了AIIDE(人工智慧與互動式數字娛樂年度會議)星際爭霸比賽,這是每年最重要的星際爭霸AI賽事之一,取得好名次的AI會與人類選手進行對抗。這些AI的水平肯定超過暴雪的內置AI,如果說與人類選手對戰,目前還得靠它們,Deepmind的AI看來一時指望不上。但是這些AI基本是用主動編程實現對戰策略,有點象是AlphaGo出現之前圍棋AI的格局。

蟲族小狗受到坦克攻擊時的極限操作:其餘小狗全部跳開

之前有一個熱門視頻,AI控制的蟲族100條小狗咬爆了人族的20輛坦克。人類選手絕對不可能實現這個操控,它需要一隻小狗受到坦克攻擊的時候,邊上的小狗全部跳開,免得被炮彈作用範圍內的濺射殺死,這需要的手速超過了人類極限。

從理論上說,AI在微操上有很大優勢。如果雙方拉開陣勢按電腦預設的方式對打,電腦的微操優勢將讓人類難於應付。但是這多少有些「欺負人」,有點象編程鑽遊戲規則的空子。可以預計,真正的星際爭霸AI學術研究,會對AI的APM作出限制,免得研究走入死胡同。Deepmind就設定AI的APM不超過180。

但即使AI有微操優勢,也還是打不過星際爭霸人類選手。電腦的經濟與科技發展「運營」可以很精準一點時間都不浪費,發展出足夠兵力,就出門與人類選手擺陣對戰,這樣按「套路」打電腦可能有優勢。

但人類選手根本不給電腦正面擺陣戰鬥的機會,而是各種花招往上招呼。人類可以早期突襲,可以派兵騷擾殺農民打了就跑,可以空投對方基地搗亂,可以派隱形兵力讓對方挨打了還不知道發生了什麼。

這樣不斷給對方製造壓力,電腦就顯得無力應對了,因為要應對這些騷擾需要寫非常多的程序,很快就超出了編程人員的能力。實戰中電腦就會傻傻的吃了虧也不知道,根本無法實現積攢兵力大規模團戰的設想。

而且對戰非常需要偵察,人類很容易分析出電腦的發展方向作出針對性安排。電腦想要偵察人類的動向卻非常複雜,很需要隨機應變,顯性地寫代碼幾乎不可能做到。

一旦人類在偵察上佔優,就可以抓住電腦的弱點作出針對性的騷擾,電腦沒有防空人類就派空軍,沒有防隱形就派隱形兵種去打,電腦幾乎難以應對。可以預計,想讓電腦擁有「即時反應」的應變能力,如果是顯性地編程去做,涉及的代碼量是海量的,開發難度極大。而且即使勉強開發出來了,也很快就會被高水平的人類對手發現漏洞。

2010年AIIDE首屆AI星際爭霸賽,加州大學伯克利分校的Overmind在四輪比賽後奪冠,之後與參加過WCG的人類選手Oriol進行了對戰,AI太弱完全不是對手。2015年AIIDE,前三名的AI與俄羅斯神族高手Djem5對戰,AI仍然顯得很愚蠢。雖然AI一次也沒有獲勝,AIIDE堅持請准職業水平的高手來測試,正如UEC杯計算機圍棋賽,獲勝的圍棋AI有機會接受職業棋手指導(在讓子情況下有機會獲勝,但星際爭霸無法讓子)。

目前星際爭霸的AI有機會戰勝D級甚至C級的人類玩家,但問題是,人類玩家能迅速改變策略找到AI的漏洞。對於如何戰勝人類頂級玩家,編程實現AI策略的開發者目前並沒有方向。

豐富的策略與隨機應變正是星際爭霸的遊戲精髓,人類用編程的辦法應該沒有出路,正如圍棋AI用代碼編程實現高手思想不可能成功。即使Deepmind目前的進展很小,從根本上來說,還是得讓機器自我學習發展出隨機應變的能力。

因此,星際爭霸AI開發的兩條路都還沒有看到戰勝人類的希望。機器自我學習這條路感覺機會要大一些,但從Deepmind的報告能看出,這條路剛起步就困難重重,無法完成一些最基本的任務。機器學習挑戰星際爭霸的難度,應該是超過業界的想像了,也許接近強人工智慧的難度。如果機器能打好星際爭霸,很多日常決策事務都可以戰勝人類了,人工智慧的時代可能就真來了。

背景簡介:本文作者筆名陳經,香港科技大學計算機科學碩士,科技與戰略風雲學會會員,微博@風雲學會陳經。文章於2017年8月24日發表於觀察者網(m.guancha.cn/chenjing/2),風雲之聲獲授權轉載。

責任編輯:孫遠

歡迎關注風雲之聲

知乎專欄:

zhuanlan.zhihu.com/feng

一點資訊:

yidianzixun.com/home?

今日頭條:

toutiao.com/m6256575842

推薦閱讀:

主流的深度學習模型有哪些?
邊看邊練的簡明機器學習教程 Part II
深度學習——分類之SENet
人類的宿命-人是什麼系列外篇之三
AI研習社每周公開課預告(10.24-10.27)

TAG:人工智能 |