AI稱霸電競還要多久?從Master圍棋60局連勝談起
歲末年初,沉寂了大半年的阿爾法狗(AlphaGo)又出來“搞事”了,在更新版本後,阿爾法狗化名Master,在網絡圍棋平臺玩起“扮豬吃老虎”的遊戲,接連橫掃古力、柯潔、陳耀燁、常昊、樸廷桓、金志錫等多名頂級圍棋選手,取得60勝0負的驚人成績。
開發團隊稱,和年初挑戰李世石時相比(v18版),最新版的阿爾法狗又有了巨大的進步,這一點也得到包括棋聖聶衛平在內的多個職業選手的承認。
結合阿爾法狗開發團隊Deepmind在去年11月暴雪嘉年華上公佈的《星際爭霸2》人工智能開發項目,讓人不由的在腦海中描繪出一副AI制霸電競的恐怖圖景:人類選手在AI的凌虐下苦苦掙扎,最終不得不退出電競舞臺。
這種情況會出現嗎?在這裡,筆者先說說自己的判斷:有可能,但還需要很長的時間。爲什麼有這樣的判斷呢?我們還是得從目前流行的電競遊戲談起。
面對網絡神秘選手吊打一衆名人,大家不約而同地想到了SAI那段極其相似的情節
三個重要的前提
目前主流的電競遊戲中,對抗性強、變數多、觀賞性好的遊戲主要是以《英雄聯盟》、《DOTA2》爲代表的MOBA類遊戲以及以《星際爭霸2》爲代表的RTS類遊戲(射擊類遊戲和卡牌類遊戲由於其侷限性,一般不適合作爲展示AI的平臺)。
相信不少玩家此前有看過《英雄聯盟》及《星際爭霸2》AI微操視頻,在《英雄聯盟》中,AI操作的角色擁有極爲驚人的反應,不僅能躲開所有非指向性技能,甚至還可以精確計算指向性技能範圍,讓自己控制的角色始終遊離技能範圍之外。
在《星際爭霸2》裡,AI的表現更爲恐怖。比如在20個機槍兵無損擊殺20個毒爆的視頻演示中,AI以驚人的微操技巧,控制每個機槍的走位、興奮劑BUFF,同時保持着完美的“甩槍”頻率,使毒爆根本無法近身——這一點目前最頂尖的職業選手也做不到。
另一個驚人的視頻演示來自於100條狗以極低的戰損搞定20輛坦克,在視頻中,衝擊坦克陣的狗羣總能在坦克開炮的瞬間散開,使坦克每次攻擊只能擊殺一條狗——這已經超越人類操作的極限了。
人類真的有辦法和AlphaGO這樣級別的AI進行電競對抗嗎?
不過這裡要指出的是,這些AI設計時都有一個非常關鍵的前提:遊戲開放了API接口供AI直接讀取數據。在這種狀態下,AI可以獲得當局對戰的所有信息,相當於一個開了全圖的職業高手。
換句話說,當玩家在和AI對戰的時候,不但你的一舉一動都在AI的掌握之中,連你控制的單位要攻擊什麼目標(無論是你有意控制攻擊目標,還是由遊戲單位隨機挑選),AI都可以在第一時間獲取,並且在瞬間做出反應——這纔是上文提到的100條狗完爆20輛坦克的真相。
顯然,這種AI並不算是真正意義上的人工智能,甚至連“類人工智能”都算不上,它的無敵是基於作弊(開全圖)以及人類根本無法達到的操作極限達成的。如果以這種標準來衡量,那不用阿爾法狗出馬,現有的電腦AI就足以虐殺所有的職業選手。即使把AI“全知全能”的開圖優勢去掉,僅以驚人的微操(多線操作的情況下,有效的APM可以達到幾千甚至上萬)就足以打敗大多數的職業選手——別的不說,只需要給AI腳本設置需要五線甚至十線操作的戰術,每一線都相當於一個職業選手全力在操作,這種情況對手怎麼招架?
輸給這樣的AI,我們會服氣嗎?
玩家同人創作的阿爾法狗娘——是不是感覺親切了很多?
所以,在談論AI能否稱霸電競時,我們至少要設置三個前提:
第一,AI獲取遊戲對戰信息的方式要和人類玩家一樣,人類玩家是通過眼睛觀看屏幕——獲取遊戲信息——大腦對信息進行篩選判斷——在最短時間內選擇最優應對策略——執行(只不過人類可以簡化中間判斷的過程)。那麼AI也得如此,任何繞過屏幕圖像獲取信息的方式都是“作弊”,因爲信息判斷流程越簡練,需要的計算量就越少。
第二,AI的APM(單位時間點擊操作)必須有限制,目前頂尖職業選手APM可以達到500以上,雖然很多是無效操作,但有一點可以肯定,AI能達到的微操極限一定是目前職業選手能夠實現的。
第三,AI的計算能力不能是無限制的,無論是年初和李世石的對弈,還是最近幾天在網絡上與衆圍棋選手的30秒快棋對弈中,阿爾法狗的落子速度並不算快(甚至不少時候比職業選手慢很多)。這就證明了開發者有意識的限制阿爾法狗的設備性能——否則在需要大量計算能力的場合(比如圍棋中盤局勢判斷),人類可能只能計算接下來5步落子的情況,而AI憑藉堆砌硬件就可以算到10步甚至更多,那依然不是公平的比賽。
畢竟人類的腦容量就那麼大,計算能力限制就在那裡。至於爲什麼限制AI計算能力這點很重要,下文會提及。接下來,在這三個前提下,我們再談圍棋和遊戲的差別。
圍棋曾經被認爲是AI無法超越人類的競技,但這次造物主徹底輸了
爲什麼是圍棋?
首先我們要明白一點,阿爾法狗“制霸”圍棋的壯舉之所以能引起如此廣泛的關注,關鍵還是“學習能力”。在此之前,IBM的超級電腦深藍戰勝國際象棋大師卡斯帕羅夫雖然也引發了輿論轟動,但歸根結底,深藍並不是人工智能。
它之所以能戰勝卡斯帕羅夫,是因爲研發人員把100年來60萬盤高手對弈棋譜都儲存進深藍的硬盤中,無論卡斯帕羅夫如何落子,電腦都可以從龐大數據庫裡找出對應的應對策略。
顯然,這隻能算“記憶力”(棋譜越多越厲害)和“計算力”(檢索應對方式的速度),不能算“學習能力”。更何況,國際象棋每一步落子只有20種後續可能性,而圍棋則高達200種——理論上,圍棋棋盤上的可能局面數量高達3的361次方,再考慮到打劫、提子等變化,這個數字就更驚人了——如此多的可能性,且不說開發人員能不能收集這麼齊全的棋譜,單是把這麼龐大的數據輸入到電腦裡,需要的資源(包括時間,硬件等)都是天文數字。
要不怎麼會有“圍棋自古無重局”的說法,就是因爲圍棋的可能性實在太多了。
那麼,阿爾法狗靠的是什麼新技術來解決這些問題呢?筆者不是專業人士,所以這裡只能從自己理解的角度向大家說明,僅供大家參考。簡單來講,阿爾法狗使用了三種技術:第一種是能根據當下棋局的情況,對下一步可能的走法進行預測;第二種是提升決策的速度,允許AI儘可能快的前提下落子;第三種技術可以讓AI根據當下局面判斷勝率,從而找出最優選擇。最後再使用“蒙特卡洛樹搜索”算法將這三種技術連爲一個整體。
打個不恰當的比方,阿爾法狗的學習方式有點類似試錯:AI根據當前棋局的情況隨便下幾步,在對手應子,局勢出現變化之後,AI重新選擇應對方式,計算這些應對方式的勝率,並做出最佳選擇。
如何判斷這種走法“勝率”是不是最高呢?這就需要AI有對應的棋譜,知道如何應對。但棋譜畢竟是有限的,無法覆蓋所有對局可能,怎麼辦呢?阿爾法狗的解決方案是自我學習——進行大量自我對弈練習,從而蒐集儘可能多的對弈數據——其實這也有點類似“窮舉法”,只不過以往對弈數據靠人類輸入,而阿爾法狗可以自己創造罷了。
阿爾法狗的制霸,是建立在千百年來人類智慧與經驗的肩膀之上
顯然,這種帶有精確記憶的自我學習方式是人類目前無法掌握的。即便如此,阿爾法狗還是有其明顯的缺陷。正如前文所說,在限定了計算能力的情況下(儲存空間就不限制了),阿爾法狗練習的越多,相應數據檢索和計算就需要更多的時間,這又會拖慢AI反應速度,畢竟圍棋在理論上超過3的361次方的變化,AI哪怕只儲存其中十分之一變化,其數據庫都驚人的龐大。此時,萬一對手的落子情況不在數據庫的儲存範圍內,那按上述的運行邏輯,阿爾法狗就要進行即時計算來尋求解決思路。
可是,以AI的目前的算法上看,這種即時計算需要的時間太久了,甚至有時候AI爲了算出一步最佳走法,能“思考”幾十個小時。爲了解決這個問題,阿爾法狗就引入了快速決策的技術,但這項技術在面對這種情況(數據庫沒有棋譜)時決策的準確率會大大下降。阿爾法狗年初與李世石對弈的第四局就是個中典型:李世石下了一手此前AI數據庫裡沒有的落子,導致阿爾法狗對局面進行重新計算,最終因爲太過費時導致AI只能倉促應了一手,最終還是敗給了人類。
講白了,阿爾法狗的強大是有限制的,它和人類相比無非擁有更強的記憶能力(海量棋譜),穩定高效的學習效率(自我對弈積累數據)。如果把這些優缺點代入電競領域,相信有不少讀者發現AI的問題所在了。
AI電競的兩道門檻
我們先從阿爾法狗的信息收集方式說起,在圍棋領域,阿爾法狗的圖像採集方式十分簡單,棋盤就361個點,每個點都是固定,對手如何落子一目瞭然,雙方每落子一次就掃描一次。
但是電競遊戲不同,地形、單位、技能的顏色不一,不同單位在不同場景下使用不同技能時的顏色又不一樣(光影效果,技能效果),這就需要AI有對應的“判斷”。這還不算,每個單位在戰鬥中血量不同,各自擁有的BUFF/DEBUFF不一樣,如果考慮單位當前座標、移動速度的不同、技能釋放預判的影響等等,AI的負擔就相當重了——畢竟它無法直接讀取圖像背後的數據,只能首先對“看到”的圖像進行數據化處理,這個處理的頻率還特別高,至少要1秒1次(在激烈的戰鬥中甚至要0.1秒一次)。你說,這得耗費多少計算資源?更讓AI頭疼的是,目前電競遊戲大多有“戰爭迷霧”,這種完全不同於圍棋的信息互動方式又進一步增加了AI判斷局勢的難度。
舉例來說,AI在偵查的時候發現了對手一條狗,之後這條狗躲進戰爭迷霧裡。在AI探索另一個方向的時候,又出現了一條狗。那麼,對AI來講,我如何確定這條狗是之前看到的那條呢?基於圖形採集的信息可是沒辦法給每個單位編號的(因爲外觀都一樣),那該如何判斷對手的兵力?再比如,如果對手防偵查做的極好的情況下,那種假一波真運營,假運營實際偷雞的打法,AI又該如何偵查如何應對?
就格鬥遊戲領域,以人類反應速度不可能戰勝的高級AI理論上早已出現
對職業選手來講要解決就簡單了——蒙,比如教主這種變態選手,就經常不偵查(還蒙的挺準!),顯然,這種不偵查也是基於海量經驗基礎上的直覺判斷,這是AI還做不到的。
第二個問題是,RTS遊戲和圍棋在局勢判斷上的不同,在圍棋裡,每一步落子前AI都可以通過計算來判斷最優解法,這些落子之間是有明確的邏輯關聯的。無論AI在某一步的落子如何的不合常規、讓人費解,我們都知道這一定是有伏筆的,只不過我們人類可能要到幾十步之後才能察覺其中的奧妙。
可是在電競遊戲中,AI如何判斷自己行爲會不會對最終勝利帶來幫助?尤其是有戰爭迷霧的影響,使AI每次的決策都不是即時性的,此時AI面臨的選擇就複雜了。比如說AI打算建防空防對手的空投。可是對方從頭到尾都沒從這個方向進行空投,或者發現了這個防空之後對手更換了空投位置,那這個防空的價值到底怎麼估算?建還是不建?多建還是少建?
再比如AI贏得前線決戰的勝利,但對手同時分了兩路兵偷襲自己幾個分礦並重創了經濟,那麼AI就要判斷自己目前兵力是否應該長驅直入對手老家,還是回家固守補充經濟。
如何選擇,需要的更多的信息參考。但上文提到了,偵查這個行爲本身需要時間,可是RTS遊戲的戰機往往是稍縱即逝。AI這種需要邏輯關聯的判斷機制,往往會貽誤戰機甚至導致最終失敗。
這個問題,職業選手的解決方式依然簡單粗暴:“蒙”。這個蒙不需要什麼職業選手去確定什麼邏輯關聯,只要“覺得”自己應該這麼做,選手就會付諸行動。因爲人腦可以通過直覺的幫助來省略決策的步驟,從而實現眼睛看到圖像信息——直接決策(中間判斷的過程省略了)。但AI做不到,哪怕有限制的允許AI讀取遊戲數據接口(比如基於公平對戰所能獲取的信息),AI也一樣要經歷收集數據,建立模型,判斷最優解法,執行的過程,這個過程是無法省略的。
同樣,AI的計算能力是有限的,不可能出現十線同時進行頂級微操。那麼問題就來了,在不同地點發生衝突的時候,AI如何判定哪一個地點的戰鬥需要分配主要計算能力,哪一個地點只需要次要計算能力呢?這個判斷,可沒那麼好下。
當然,這些問題其實都可以通過增加AI的計算能力來解決,但這就等同於“作弊”了。這也是爲什麼筆者認爲AI在很長的一段時間內無法稱霸電競的原因。那麼問題就來了,這樣的AI到底有什麼用呢?
有什麼用?當然是《終結者》或《西部世界》啊
不止是電競,還有星辰大海
在去年11月的暴雪嘉年華里,谷歌Deepmind團隊就“爲什麼開發星際2的AI”這個問題進行了解釋。其中提到的很重要的一點是“幫助人類思考和決策”。
怎麼理解這句話呢?這得從目前科技發展的現狀談起。
我們知道,雖然計算機性能在日新月異的發展,但摩爾定律已經接近失效,隨着處理器製作工藝越精細,製作的難度呈指數型增長,處理器性能增長已經陷入瓶頸。換句話說,現行構架下的電腦理論上的潛力已經挖掘殆盡。而下一代的“量子計算機”距離面世還遙遙無期。
儘管目前多數計算機已經擁有遠超人類的計算能力,但這還遠不足以滿足人工智能的運算需求。尤其是人類對自己大腦的決策機制還沒有研究透,更不用說按照現有AI理論對這種“決策”模式進行模仿了。
目前AI的決策邏輯還是“經驗主義”爲核心,面對突發事件,AI只能從自己的數據庫裡搜索類似的解決方案,即便新的方案可以通過平時不斷的情景模擬積累(類似阿爾法狗圍棋的自我對弈),也無法保證覆蓋所有可能的新情況。
滿面春風的黃博士,自家“兒子”那麼牛逼作爲一介棋手想必也很得意吧
在計算機技術以及AI算法沒有出現重大突破之前,要讓AI按最接近人類的方式思考,所需要的計算力都是天文數字。且不說目前人類能不能造出這麼多的計算機,單就體積而言,這樣的AI佔地面積得多大?能供幾個人使用?
這種情況下,研發AI所面臨的首要問題就是如何在有限資源的前提下,最大程度的實現AI的擬人化、高效化的決策。這樣的決策要保證AI擁有類似人類“直覺”決策的高效,也能彌補人類直覺決策的種種不足。
圍棋也好,遊戲也罷,都是爲這個目的而服務。選擇圍棋,是因爲這個棋類運動是目前開放式信息對抗遊戲的巔峰。選擇星際,則因爲它是目前封閉式信息(戰爭迷霧)對抗遊戲的里程碑,它的數據量遠超圍棋,當然是進一步調試和改進AI算法的最佳平臺。
順便一提,Deepmind團隊早在2011年就嘗試研發《星際爭霸1》的AI(那時候暴雪也開放了遊戲的數據接口),但最終以失敗告終。
那麼,這種擬人化和高效化的決策有什麼用呢?從遊戲角度,AI可以幫助我們優化各種戰術,比如人類玩家想出了新戰術,在過去可能需要大量的練習甚至要找熟悉的職業選手、戰隊教練進行反覆的驗證,這期間還得特別保密。但如果有AI的輔助,那麼戰術或者運營策略的優化顯然更便捷了,單位多造少、如何操作、地形有什麼影響、建築學如何擺放等等,AI都可以替代人類進行幾千上萬次的重複驗證,從而優化整個戰術流程和操作細節。
當然,如果只讓AI做這種事情太暴殄天物了。比如AI還可以在醫療領域發揮重要的作用:醫生在治療病人時依據的多是自己的經驗,這種經驗同樣需要長時間的試錯和實踐積累。而且這種直覺你是很難精確描述——總不能醫生開出一個治療方案還要把自己基於哪一年在哪裡看到的什麼病例說出來吧——這其中還可能出錯。
《攻殼機動隊》中,人類在自己的大腦裡植入AI芯片“電子腦”,增強自身信息處理能力
但是如果有了AI的幫助情況就同了,AI完全可以以數千萬份的醫療文獻、病例爲基礎,通過自我學習和虛擬實驗,找出最佳的治療方法。在擁有龐大的數據庫、自我學習機制和計算力的前提下,如果AI還擁有像人類那樣的快速判斷機制(直覺),就能減少誤診的可能性,這纔是AI的作用所在。
如果我們再拓展到其他領域,建築,生物,軍事,航空航天,AI都可以在很大程度上成爲人類的幫手。
只不過要實現這一點,還是得由易到難一步步來,畢竟人類的“直覺”是經過幾十萬甚至上百萬年進化才發展完善的,要讓AI模擬這種快速決策的機制,還需要在大量的改進與優化。
但不管怎麼說,AI的未來不止是電競,還有星辰大海。
歡迎參加——愛玩網百萬稿費徵稿活動:當金牌作者,開本站專欄,領豐厚稿費,得專屬周邊!
遊戲專欄投稿信箱:otaku@vip.163.com
歡迎關注愛玩APP【精選】板塊,更多精彩等着你!