難得小長(zhǎng)假偷個(gè)閑,聊個(gè)略復(fù)雜但我挺感興趣的話題。
新聞里說AlphaGo在戰(zhàn)勝李世石后,下一個(gè)就將挑戰(zhàn)電競(jìng)項(xiàng)目星際爭(zhēng)霸2(以下簡(jiǎn)稱SC2)。這事兒有幾點(diǎn)比較有趣:1)這下代表人類智力與尊嚴(yán)的第二戰(zhàn)居然又得由韓國(guó)人擔(dān)當(dāng)了;2)AI打星際是不是比下圍棋更難?最近80后人都在議論,包括古力這樣的九段棋手。我今天也想聊下這個(gè)問題。
為什么是80后最愛議論?也許太老的對(duì)星際沒興趣,太小的對(duì)圍棋沒興趣。80后恰好處于現(xiàn)實(shí)世界與虛擬世界的gamer的交集。
言歸正傳,我覺得SC更難。并不是說SC比圍棋難——單從逼格指數(shù)而言SC就沒資格與古老的圍棋相提并論。但對(duì)于AlphaGo要在SC上戰(zhàn)勝人類,難度會(huì)遠(yuǎn)大于他在圍棋碾壓人類。
之所以熱議,首先是因?yàn)锳I具備用膝蓋都能想到的一些巨大優(yōu)勢(shì)。SC這類RTS(即時(shí)戰(zhàn)略型游戲),比拼的維度主要有三個(gè):策略、運(yùn)營(yíng)和操作。而至少在運(yùn)營(yíng)和操作兩方面,AI必然具有碾壓人類的優(yōu)勢(shì)。
AI操作的優(yōu)勢(shì)毫無懸念。SC單方的人口上限為200,AI對(duì)于“百”數(shù)量級(jí)的單位做到每個(gè)都單獨(dú)給出指令輕而易舉。最優(yōu)秀的人類選手憑借靈巧的手指與科學(xué)的編隊(duì)所能做到的多線操作或所謂華麗“微操”實(shí)在相形見絀。
SC里所謂“運(yùn)營(yíng)”,總結(jié)起來就是怎樣充分利用自己的資源,最大化地產(chǎn)出。其本質(zhì)是運(yùn)籌學(xué),在略復(fù)雜的規(guī)則下做算術(shù)題:量化地掌握已控制的水晶與氣礦的存量、開采速度和未來儲(chǔ)量,各種建筑、兵種的建造時(shí)間和價(jià)格,各種部隊(duì)的移動(dòng)速度及與敵軍基地間的距離等……然后做出最精確的計(jì)算,找出最佳方案,且精準(zhǔn)地付諸執(zhí)行。人類要和電腦比算術(shù),換《最強(qiáng)大腦》的選手其結(jié)果也一樣。
所幸在“運(yùn)營(yíng)”和“操作”層面,能達(dá)到人類巔峰的選手,與AI的能力縱然差距再大,但具體體現(xiàn)在游戲中的結(jié)果卻沒有那么明顯。簡(jiǎn)單來說,AI能力縱然百萬倍于人類,最終應(yīng)用了最優(yōu)方案;人類憑借殘破的估算能力及過往經(jīng)驗(yàn),最終應(yīng)用了次優(yōu)方案,其效力可能也就相當(dāng)于最優(yōu)方案打了九五折。在單個(gè)事件中,AI實(shí)際百萬倍的優(yōu)勢(shì),在游戲中化作了個(gè)"+5%"。也許是+5%采礦速度,+5%出兵速度,+5%遭遇戰(zhàn)時(shí)的攻擊輸出……也許以上皆有,但終究只是量變。
而“策略”層面——無論在虛擬游戲還是真實(shí)戰(zhàn)爭(zhēng)中,都是雙方拉開質(zhì)的差距的關(guān)鍵。人類的勝利希望自然也在此。那么上升到“策略”層面,AlphaGo有什么難以克服的難點(diǎn)?
1. AI玩SC,分析建模的難度遠(yuǎn)高于圍棋。
這是AlphaGo的根本難題。是一個(gè)"step 0"般的存在。
對(duì)于圍棋,如何將信息數(shù)據(jù)化并建立分析框架是伴隨著規(guī)則產(chǎn)生就定下的,不存在這個(gè)"step 0"。AI下圍棋的根本難題是不能理想化地計(jì)算。要在區(qū)區(qū)19x19棋盤+單一棋子的設(shè)定下,用窮舉法去精確計(jì)算已然超越了運(yùn)算能力極限,于是AI必須能夠“判斷”局勢(shì),剪除低概率的分支,在最大概率的幾條分支上去做到對(duì)未來兩合甚至二十合的計(jì)算。做到這一步“判斷”已然是AI的巨大飛躍了。
但是AI玩SC的根本難題是壓根不能理想化地建模。SC的地圖(即棋盤)一般能有1024*1024,且有地形與海拔之分,且比賽地圖不斷更新;有上百種兵種,且各有不同的碰撞體積、移動(dòng)方式/速度、視野、攻防類型/攻防力/攻擊距離;數(shù)十種建筑/科技/兵種之間有復(fù)雜的建造條件限制,及不同的建造時(shí)間與造價(jià),從而決定了每個(gè)單位都具備一個(gè)經(jīng)濟(jì)價(jià)值……最最復(fù)雜的是,它是即時(shí)發(fā)生而非回合制的。類似圍棋中一個(gè)局部有氣沒氣,哪方占優(yōu)的判斷,在SC中極難做到。因?yàn)槿∧男?shù)據(jù)指標(biāo)來建立分析模型都需要極復(fù)雜的取舍。
類似半隊(duì)T的槍兵與一隊(duì)Z的小狗遭遇的極簡(jiǎn)單的局部小戰(zhàn)斗,綜合各種因素,要判斷打不打、打哪個(gè)、打到什么份上可以撤等基本問題,若理想狀態(tài)地建模情況下,就足夠耗盡AI的運(yùn)算能力了。但對(duì)人類而言,“條件反射”地即可做出反應(yīng)。
AlphaGo的“痛苦”或許我們很難體會(huì)。現(xiàn)實(shí)中,我們數(shù)據(jù)建模的困難往往在于“數(shù)據(jù)化”——全世界97%的信息都以非結(jié)構(gòu)化數(shù)據(jù)存在,即我知道這個(gè)因素很重要,但沒法將其量化從而放到分析框架中,只好放棄。但一個(gè)電子游戲中的所有信息其實(shí)都以結(jié)構(gòu)化的數(shù)據(jù)存在,卻還是得取舍,且需舍棄絕大多數(shù)已知數(shù)據(jù)資源。舍棄本已握在手中的東西比舍棄本就不曾擁有的東西顯然更“痛苦”。
2. 戰(zhàn)爭(zhēng)迷霧的存在,決定了SC是復(fù)雜的“不完全信息博弈”。
圍棋雙方所有已輸出的信息,均是完全公開的,但SC的地圖,只有己方單位的視野之內(nèi)的范圍才是可見的。這既大大增加了AI判斷局勢(shì)的難度,又為人類在策略層面玩出更多花樣提供了極大的可能。
SC等RTS游戲極重要的環(huán)節(jié)就是“偵查”。了解此時(shí)此刻敵方出生地在哪,出什么兵種、升什么科技、開幾處礦、屯兵何處等等,從而及時(shí)制定針對(duì)性的策略。該環(huán)節(jié)要求AI基于有限的偵查結(jié)果,來判斷人類的真實(shí)意圖。這對(duì)AI來說有兩個(gè)終極問題。
“兵者,詭道也”。這一點(diǎn)上SC與古往今來的現(xiàn)實(shí)戰(zhàn)爭(zhēng)并無二致。各種沿用千年的經(jīng)典戰(zhàn)術(shù)——誘敵深入、聲東擊西、前后包夾、圍魏救趙、半渡而擊等等,在SC中同樣也司空見慣。對(duì)AI來說,自己的進(jìn)攻可以完全只靠運(yùn)營(yíng)和操作的優(yōu)勢(shì)來碾壓,但對(duì)方人類要玩戰(zhàn)術(shù)卻無法控制,也不得不察。但要AI理解這些“戰(zhàn)術(shù)”,無異于要求其學(xué)會(huì)“兵法”之奧義——莫說AlphaGo,對(duì)它背后谷歌那些IT直男工程師而言,可能都難得太終極了。
其次,“兵不厭詐”,AI要能適應(yīng)人類的欺騙。你來偵查,我開造某建筑,趕走你的偵察兵后又馬上取消之。這樣一個(gè)小騙術(shù),AI怎么破?AI能產(chǎn)生“我有點(diǎn)不放心,再去看一眼”的心思么?這讓我想到了《三體》中描寫的,三體文明軍事力量遙遙領(lǐng)先,且通過質(zhì)子實(shí)現(xiàn)了完全監(jiān)視——相當(dāng)于SC中“地圖全開”,照樣敗給人心隔肚皮的渺小地球人。
從圍棋人機(jī)對(duì)戰(zhàn)上,我們看到AI已經(jīng)開始具備“模糊判斷”的能力了,但這樣的模糊判斷能力顯然離玩轉(zhuǎn)SC所需的要求相差甚遠(yuǎn)。AI對(duì)戰(zhàn)術(shù)的選擇,現(xiàn)階段可能還是選用“概率最大”的方案,即傾向于最“萬金油”的戰(zhàn)術(shù)。暴雪自身的AI其實(shí)亦是采用這樣的方案。
3. 人類是真的會(huì)“犯錯(cuò)”的,即博弈論的基本假設(shè)可能都不存在。
博弈論乃至整個(gè)經(jīng)濟(jì)學(xué)體系都有一個(gè)基本假設(shè),就是人必須是“理性人”。但是現(xiàn)實(shí)中顯然不是如此,所以在應(yīng)用經(jīng)濟(jì)模型解決現(xiàn)實(shí)問題時(shí)——至少在結(jié)果上——常以失敗告終。
人類在玩SC時(shí),且不說人類會(huì)別出心裁或孤注一擲或感情用事地放棄選擇明顯的更優(yōu)策略——這些都可權(quán)且理解為“戰(zhàn)術(shù)”,歸根結(jié)底,人類是會(huì)犯錯(cuò)誤的。比如計(jì)算錯(cuò)誤,生產(chǎn)了錯(cuò)誤的單位或卡了人口;更多的則是操作失誤,一個(gè)選手APM 300一場(chǎng)30分鐘比賽,兩只手要輸出近萬次操作,這里面可能有相當(dāng)大比例的廢操作和誤操作。其中任何一次真失誤,都可能對(duì)AI產(chǎn)生誤導(dǎo)。這進(jìn)一步增加了AI在進(jìn)行博弈(判斷)時(shí)的難度。
除了實(shí)戰(zhàn),AI甚至在其平時(shí)學(xué)習(xí)時(shí)都會(huì)受制于此。僅從操作指令的有效性而言,AI賴以學(xué)習(xí)的海量人類對(duì)戰(zhàn)replay屬于高度污染的元數(shù)據(jù)。我作為外行,AI自我學(xué)習(xí)的過程難以腦補(bǔ),所以很好奇總是基于污染的元數(shù)據(jù)的學(xué)習(xí)是否會(huì)導(dǎo)致“走火入魔”?
4. 人類工于“老謀”而AI長(zhǎng)于“深算”,但AI的反應(yīng)速度反而可能比人類慢。
假使上述三點(diǎn)難題都被克服,那么運(yùn)算速度的問題又將浮現(xiàn)。AlphaGo與李世石的對(duì)戰(zhàn)中,我們看到李總是早早陷入讀秒,似乎人類需要更多的時(shí)間思考。但SC是即時(shí)性游戲,人類的很多指令并非都通過思考,很多是通過經(jīng)驗(yàn)、直覺甚至是條件反射瞬時(shí)完成的。但對(duì)AI而言,即使一次簡(jiǎn)單的“思考”可以在極短時(shí)間完成,但思考過程本身卻不可缺省。
若AI必須步步計(jì)算而人類能大量瞬發(fā)指令,則在即時(shí)性的戰(zhàn)場(chǎng)上AI反而會(huì)比人類反應(yīng)更慢。
一個(gè)可能的解決方案是:AI可以設(shè)定“宏命令”來縮短思考時(shí)間,即遇到情況A就啟用A計(jì)劃,計(jì)劃A包含了一系列指令,不用每個(gè)單一指令再分別思考。但是,這個(gè)前提是AI能夠判斷出現(xiàn)了“情況A”從而觸發(fā)宏命令,這種程度的“判斷”又將增加上述問題2的難度。
BTW,AI有沒有能力自編“宏命令”?如果谷歌的工程師事前為AI編寫了大量“宏命令”,算不算作弊?
5. AI只能基于大數(shù)據(jù)學(xué)習(xí),所以AI的對(duì)手只有一個(gè):人類。
這個(gè)問題在圍棋人機(jī)對(duì)戰(zhàn)時(shí),AlphaGo團(tuán)隊(duì)就介紹過。針對(duì)單個(gè)棋手的棋局?jǐn)?shù)據(jù)太少,AlphaGo無法通過區(qū)區(qū)幾千局的數(shù)據(jù)棋勾勒出該棋手的風(fēng)格特長(zhǎng)。
變數(shù)更多的SC亦是如此。人類對(duì)戰(zhàn),必然會(huì)多看幾場(chǎng)對(duì)手近期的rep從而對(duì)對(duì)方的打法風(fēng)格有個(gè)大致了解,這對(duì)于在戰(zhàn)場(chǎng)上做上述問題2的判斷時(shí)有極大的幫助。但AI就算讀完該選手生平所有rep都無法對(duì)此人的“打法”做一總結(jié)。所以就算在面對(duì)某位以“XX流”聞名天下的對(duì)手,它也不會(huì)把防御“XX流”的戰(zhàn)術(shù)提高一丁點(diǎn)的優(yōu)先級(jí)。
對(duì)AI而言,對(duì)手是誰并不重要。對(duì)手就是“人類”全集。
總而言之,我認(rèn)為目前AI要在SC這樣的RTS游戲中戰(zhàn)勝人類還為時(shí)過早——雖然這只是個(gè)時(shí)間問題。其實(shí)以上所列的這些難題,某種程度上并不是AI的難題,而是背后的工程師們的難題。AI已經(jīng)可以深度學(xué)習(xí),可以模糊判斷,但本質(zhì)上,目前的AI還是屬于遇到一個(gè)問題,就從已積累下的浩如煙海的人類已有的解決方案中找答案——當(dāng)找不到答案時(shí),AI即會(huì)出現(xiàn)Bug般的決策失誤,猶如與李世石的第四局棋。什么時(shí)候AI能真正自己“創(chuàng)造”答案時(shí),那才是AI自己直面難題的開始。
但那也可能是高級(jí)AI真正覺醒的開始。
最后再嘮叨句,跳脫出AlphaGo等的表現(xiàn)來看AI,從經(jīng)濟(jì)學(xué)的角度出發(fā),AI的爆發(fā)期似乎也要到來了。AI從深藍(lán)到AlphaGo的進(jìn)步,其源動(dòng)力其實(shí)是計(jì)算機(jī)運(yùn)算能力的局限。因?yàn)楫?dāng)運(yùn)算能力提升至極限也不可能做到“窮舉”時(shí),才需要AI優(yōu)化運(yùn)算方法——學(xué)會(huì)模糊判斷。人類或提高硬件(提升運(yùn)算能力)或提高軟件(優(yōu)化運(yùn)算方法)都能提升計(jì)算機(jī)解決問題的能力。
過去四十年,遵照著摩爾定律,計(jì)算機(jī)運(yùn)算速度一直在飛速提升。但是摩爾定律失效之日已近在眼前。Intel已經(jīng)逆天地推出了14nm芯片,納米是什么概念?1nm等于10個(gè)水分子的直徑。分子的大小擺在那,那么精細(xì)的芯片制造工藝的極限也就擺在那。更何況實(shí)現(xiàn)商業(yè)價(jià)值的極限會(huì)早于技術(shù)上的極限先被觸及。
但人類的欲求總是在膨脹。人類總會(huì)希望解決越來越復(fù)雜的問題。A= B*C,為了滿足A的不斷增長(zhǎng),當(dāng)B(運(yùn)算能力)的提升遇到瓶頸時(shí),人類就會(huì)將更多的資源投入到提升C(運(yùn)算方法)的追求上。這里不是指Intel們一定會(huì)改行去研究AI,而是整個(gè)宏觀的人類世界的資源和關(guān)注度的轉(zhuǎn)移。到時(shí),全世界會(huì)有越來越多的AlphaGo團(tuán)隊(duì)在AI領(lǐng)域攻堅(jiān)。
而這個(gè)產(chǎn)業(yè)的終局,應(yīng)該會(huì)形成一家獨(dú)大的壟斷——即所謂“天網(wǎng)”的出現(xiàn)。