馬斯克的OpenAI 究竟是如何在dota2中擊敗頂級(jí)人類選手的?

在8月12日,埃隆·馬斯克旗下旨在研究通用人工智能解決方案的公司OpenAI,所訓(xùn)練的一款人工智能算法在著名的電子競技游戲Dota2國際邀請賽The International中,參與了1V1比賽環(huán)節(jié),并壓倒性的擊敗了頂級(jí)電子競技選手Dendi。

馬斯克的OpenAI,究竟是如何在dota2中擊敗頂級(jí)人類選手的?

在alphago擊敗了柯潔以后,Deepmind多次公開表達(dá)了希望準(zhǔn)備要去嘗試挑戰(zhàn)星際爭霸等電子競技項(xiàng)目,目前Deepmind確實(shí)也聯(lián)合暴雪公司在開展這項(xiàng)嘗試。因?yàn)橄啾葒暹@種完全信息靜態(tài)博弈游戲(即雙方都能獲得局面的所有信息,下棋異步),電子競技游戲具備非完全信息屬性(雙方只掌握視野里的部分信息),而且競技過程是實(shí)時(shí)動(dòng)態(tài)進(jìn)行的。其規(guī)則和特征復(fù)雜度遠(yuǎn)超圍棋,因此對(duì)人工智能的局面評(píng)估、決策能力要求顯著更高。另外,相比圍棋這種高度抽象的游戲(只有落子一個(gè)動(dòng)作),電子競技游戲性質(zhì)上更類似人類現(xiàn)實(shí)世界對(duì)抗/戰(zhàn)爭的簡化模擬,涉及了大量資源調(diào)配、部隊(duì)構(gòu)成選擇、擴(kuò)張策略、攻防對(duì)抗等復(fù)雜但具有現(xiàn)實(shí)意義的博弈,如能在電子競技對(duì)抗中取得劃時(shí)代的里程碑,則代表了人工智能邁向通用化又進(jìn)了一大步。

這就是為何Deepmind、OpenAI等頂尖人工智能公司都不約而同希望挑戰(zhàn)電子競技的根本原因,但大家沒想到的是,人工智能這么快就在電子競技界取得了成功。

由于目前OpenAI尚未公布其Dota2人工智能的設(shè)計(jì)細(xì)節(jié),接下來我們通過分析和推測,力圖揭秘其背后的奧秘所在。

背景知識(shí):Dota 2游戲規(guī)則

Dota 2是一款類似于大眾熟知的王者榮耀式的5V5競技游戲,每邊分別由5位玩家選擇一名英雄角色,目標(biāo)以為守護(hù)己方遠(yuǎn)古遺跡并摧毀敵方遠(yuǎn)古遺跡,通過提升等級(jí)、賺取金錢、購買裝備和擊殺對(duì)方英雄等諸多競技手段。

這次OpenAI選擇了挑戰(zhàn)較為簡單的1V1挑戰(zhàn),即OpenAI僅控制1名英雄,和頂級(jí)電子競技選手Dendi操縱的1名英雄進(jìn)行對(duì)抗。

比賽中,采取dota 2“一塔兩殺”的規(guī)則,即雙方玩家只允許出現(xiàn)在中路,任意一方摧毀對(duì)方中路首個(gè)防御塔,或者擊殺對(duì)方英雄兩次則取得勝利。游戲中,每隔30秒雙方會(huì)獲得一波電腦控制的較弱部隊(duì)進(jìn)入前線互相攻擊,玩家殺死這些小兵可以獲得金幣,金幣用于購買裝備物品以強(qiáng)化英雄能力,同時(shí)消滅對(duì)方部隊(duì)可獲取到經(jīng)驗(yàn),經(jīng)驗(yàn)獲取到一定程度則可提升英雄等級(jí),使得英雄能力更強(qiáng),并獲得技能點(diǎn)升級(jí)新的技能。同時(shí)雙方各自還有一個(gè)初期威力強(qiáng)大的防御塔在身后,因此雙方一般的對(duì)抗策略是盡量控制兵線在靠近己方防御塔的地方,同時(shí)努力殺死對(duì)方小兵(正補(bǔ))并防止對(duì)手這樣做(反補(bǔ)),獲取經(jīng)驗(yàn)和金幣后升級(jí)技能,并試圖通過攻擊和技能擊殺對(duì)方或摧毀對(duì)方防御塔。

馬斯克的OpenAI,究竟是如何在dota2中擊敗頂級(jí)人類選手的?

OpenAI的決策空間

上述是dota 2 1v1競技的簡單介紹,以供不了解dota 2的讀者有個(gè)初步印象,接下來我們來分析一下在dota 2 1v1競技中的決策空間及決策連續(xù)性這兩個(gè)問題,這是與alphago完全不一樣的存在,也是人工智能+電子競技有趣的地方。

決策空間

相比圍棋只有一個(gè)落子動(dòng)作(選擇一個(gè)空位下子),dota 2 1v1中的決策空間相對(duì)非常復(fù)雜,玩家每分每秒需要在以下的動(dòng)作中做出決策:

移動(dòng):移動(dòng)英雄到一個(gè)特定的位置;

攻擊:控制英雄攻擊一個(gè)特定的目標(biāo)(包括對(duì)方英雄);

正補(bǔ):當(dāng)對(duì)方小兵瀕死時(shí),做出最后一擊殺死小兵以獲得金錢;

反補(bǔ):同理當(dāng)我方小兵瀕死時(shí),做出最后一擊殺死小兵防止對(duì)方獲得金錢,并減少對(duì)方獲得的經(jīng)驗(yàn)值;

施法:使用英雄主動(dòng)技能攻擊一個(gè)特定的目標(biāo);

取消攻擊/施法:英雄攻擊/施法前有一個(gè)短暫的硬直動(dòng)作,在攻擊/施法動(dòng)作真正做出前取消,從而達(dá)到誘騙對(duì)方的目的;

兵線控制:每隔30秒雙方會(huì)獲得一波電腦控制的小兵,通過攻擊對(duì)方英雄激活對(duì)方小兵仇恨從而引起小兵跑來攻擊自己英雄,或者用自己英雄的身體阻攔己方小兵前進(jìn),從而達(dá)到控制兵線靠近己方防御塔,獲得競技優(yōu)勢;

購買物品:用獲得的金錢在超過100種不同價(jià)格的物品中購買需要的裝備或消耗品;

使用物品:使用血瓶等消耗品補(bǔ)充自身;

當(dāng)然,上述只是列舉出了比較重要的戰(zhàn)術(shù)動(dòng)作,在實(shí)際競技過程中還有大量的如取消攻擊后搖、放風(fēng)箏、控符、技能組合等高級(jí)動(dòng)作。

決策連續(xù)性

圍棋是一個(gè)典型的異步競技游戲,選手在做出每一個(gè)決策前具有充分的決策時(shí)間,是典型的馬爾科夫過程,但dota 2是一款實(shí)時(shí)競技游戲,選手需要?jiǎng)討B(tài)做出實(shí)時(shí)決策,這點(diǎn)是dota 2和圍棋的另外一個(gè)不同。

那么OpenAI是怎么解決連續(xù)決策問題的?目前OpenAI尚未公布他們dota人工智能的細(xì)節(jié)。在這個(gè)問題上,OpenAI很有可能是通過考慮人類選手的決策效率,將決策過程離散化。Dota 2頂級(jí)選手的APM(action per minute,每分鐘做出的動(dòng)作)可達(dá)到200以上,眾所周知人來大腦的反應(yīng)速度是有極限的,一般頂級(jí)電競選手在反應(yīng)速度上都有異于常人的天賦,如果按比賽中觀測到的APM來算,人類的極限可能在1秒鐘做出4到5個(gè)動(dòng)作決策,因此OpenAI如果每隔0.2秒做出一個(gè)動(dòng)作決策的話,就能有超越人類的表現(xiàn)。

因此我這部分的猜測是,OpenAI很可能選擇了200ms以內(nèi)的某個(gè)值,在決策效率(更快的反應(yīng)速度)和決策深度中取得了平衡,將dota 2 1v1比賽轉(zhuǎn)變?yōu)轭愃茋宓鸟R爾科夫決策過程。

OpenAI算法猜測:先驗(yàn)知識(shí)+增強(qiáng)學(xué)習(xí)

目前OpenAI對(duì)他們dota人工智能算法的細(xì)節(jié)披露相當(dāng)有限,只是初步表示了他們并未使用任何模仿學(xué)習(xí)(Imitation Learning)或者類似于alphago的樹搜索技術(shù),純粹使用了self-play即俗稱 “左右互搏”的增強(qiáng)學(xué)習(xí)(reinforcement learning)方式訓(xùn)練。模仿學(xué)習(xí)是一種有監(jiān)督的機(jī)器學(xué)習(xí)方法,如alphago最初的落子器就是通過圍棋對(duì)戰(zhàn)平臺(tái)KGS獲得的人類選手圍棋對(duì)弈棋局訓(xùn)練出來的。而OpenAI并沒有使用這種方法,可能主要原因還是較難獲得dota 2 1v1的大量對(duì)局?jǐn)?shù)據(jù),由于dota 2中有100多個(gè)英雄角色可選擇,每個(gè)英雄的屬性和技能均不一樣,意味著要對(duì)每個(gè)英雄做優(yōu)化訓(xùn)練,如OpenAI在本次The International賽事中,只會(huì)使用一名英雄角色Shadow Field(影魔),從人類對(duì)局中獲得海量(如10萬局以上)高水平Shadow Field的1v1對(duì)局錄像數(shù)據(jù)其實(shí)并不容易。

使用增強(qiáng)學(xué)習(xí)去令機(jī)器學(xué)會(huì)玩一款游戲,我們不禁馬上聯(lián)想起谷歌DeepMind使用RL學(xué)習(xí)來玩打磚塊的經(jīng)典案例。DeepMind模型僅使用像素作為輸入,沒有任何先驗(yàn)知識(shí)來輔助AI進(jìn)行學(xué)習(xí),算法Agent通過和環(huán)境S的交互,一開始選擇隨機(jī)動(dòng)作A(向左還是向右移動(dòng)滑板,動(dòng)多少),并得到游戲分?jǐn)?shù)的變化作為獎(jiǎng)勵(lì),然后Agent繼續(xù)如此玩下去,游戲結(jié)束后Agent得到最后游戲總分R,按照這種方式不斷讓Agent玩N局游戲,可以得到了一系列訓(xùn)練樣本(S,A,R),通過訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)去預(yù)測在狀態(tài)S下,做動(dòng)作A可能最后得到R,這樣接下來Agent不再隨機(jī)做出決策A,而是根據(jù)這個(gè)函數(shù)去玩,經(jīng)過不斷的迭代,Agent將逐漸掌握玩打磚塊的訣竅,全程不需要人工制定任何的腳本規(guī)則。

馬斯克的OpenAI,究竟是如何在dota2中擊敗頂級(jí)人類選手的?

但是,在dota 2之中,或許很難采取類似學(xué)習(xí)打磚塊那樣從隨機(jī)行動(dòng)開始的“大智若愚”方式去做增強(qiáng)學(xué)習(xí),因?yàn)閷?duì)于打磚塊而言,每次動(dòng)作A對(duì)于得分R的影響都是明確可量化的,但在dota 2中,這將會(huì)是一個(gè)非常長的鏈條。如以基本動(dòng)作“補(bǔ)刀”為例:

補(bǔ)刀即對(duì)方小兵瀕死時(shí),控制英雄做出最后一擊殺死小兵獲得金錢,不是己方英雄親自殺死小兵不會(huì)獲得金錢。如果從隨機(jī)行動(dòng)開始,即AI胡亂攻擊隨機(jī)的目標(biāo),Agent要聯(lián)系起補(bǔ)刀行為和最終勝利之間的關(guān)聯(lián)是很困難的:補(bǔ)刀行為——小兵死亡——獲得額外金錢——用金錢購買正確的物品——正確的物品增強(qiáng)英雄能力——提升獲勝概率,完全不借助外界先驗(yàn)知識(shí),僅通過模擬兩個(gè)Agent“左右互搏”,從隨機(jī)動(dòng)作開始去做增強(qiáng)學(xué)習(xí),其收斂速度會(huì)異常的慢,很可能哪怕模擬幾百萬局都不見得能學(xué)會(huì)“補(bǔ)刀”這個(gè)基本動(dòng)作,但補(bǔ)刀僅僅是dota這個(gè)游戲入門的開始。

然而,根據(jù)OpenAI宣稱,他們僅僅用了兩周就完成了算法的訓(xùn)練,或許這里基本可以肯定,OpenAI使用了外界先驗(yàn)知識(shí)。

實(shí)際上,Dota 2游戲的開發(fā)商VALVE有一個(gè)dota 2機(jī)器人腳本框架,這個(gè)腳本框架下的機(jī)器人會(huì)熟練做出各種dota的基本動(dòng)作,如補(bǔ)刀、釋放技能、攔兵、追殺、按照腳本購買物品等,部分如補(bǔ)刀等依靠反應(yīng)速度的動(dòng)作可以展現(xiàn)得非常難纏。只不過機(jī)器人動(dòng)作的執(zhí)行非常機(jī)械,主要由于預(yù)設(shè)腳本的設(shè)定難以應(yīng)對(duì)信息萬變的實(shí)際競技,使得機(jī)器人總體水平根本無法接近一般玩家,更別說跟職業(yè)頂級(jí)玩家相比了。

馬斯克的OpenAI,究竟是如何在dota2中擊敗頂級(jí)人類選手的?

腳本機(jī)器人的優(yōu)勢是戰(zhàn)術(shù)動(dòng)作的執(zhí)行,如上述增強(qiáng)學(xué)習(xí)很難馬上學(xué)會(huì)的“補(bǔ)刀”動(dòng)作腳本機(jī)器人天生就會(huì),屬于先驗(yàn)知識(shí),而且可以憑借無反應(yīng)時(shí)間和對(duì)目標(biāo)血量和攻擊力的精確計(jì)算做得非常完美,缺點(diǎn)在于行動(dòng)決策弱智。這樣如果祭出“組合拳”,使用腳本機(jī)器人執(zhí)行基本戰(zhàn)術(shù)動(dòng)作,通過增強(qiáng)學(xué)習(xí)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)負(fù)責(zé)進(jìn)行決策,就像《射雕英雄傳》中,武功高強(qiáng)但雙目失明的梅超風(fēng)騎在郭靖身上,長短互補(bǔ)一舉擊敗眾多高手那樣,豈不完美?

我想OpenAI很可能也確實(shí)是這樣做的,首先優(yōu)化腳本機(jī)器人,將原子化的戰(zhàn)術(shù)動(dòng)作A的腳本做得盡善盡美,充分發(fā)揮機(jī)器的微操優(yōu)勢;同時(shí)通過增強(qiáng)學(xué)習(xí)訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò),計(jì)算目前局勢S下(包括場面小兵和雙方英雄的狀態(tài)和站位、技能CD和魔法值情況等),執(zhí)行那個(gè)戰(zhàn)術(shù)動(dòng)作A得到的預(yù)期最終reward最高,即A=P(Si),并且在較短的離散空間內(nèi),比如200ms不斷進(jìn)行決策并通過腳本執(zhí)行動(dòng)作A,最終使得OpenAI在大局觀和微操上都取得盡善盡美。當(dāng)然,由于OpenAI自身還沒公布算法細(xì)節(jié),上述方法只是一個(gè)最有可能的猜測,通過先驗(yàn)知識(shí)+增強(qiáng)學(xué)習(xí)獲得一個(gè)單挑能力很強(qiáng)的Solo智能。

如果這個(gè)猜測正確的話,那么OpenAI在dota 2中通過1v1方式擊敗頂級(jí)職業(yè)選手這事情,遠(yuǎn)遠(yuǎn)沒有alphago此前取得的成就來得困難。因?yàn)镺penAI在本次比賽中的表現(xiàn),充其量等于訓(xùn)練了一個(gè)類似alphago落子器那樣的應(yīng)用而已。

而真正的挑戰(zhàn),在于Dota 2的5V5對(duì)抗中。

展望

目前,OpenAI通過增強(qiáng)學(xué)習(xí),訓(xùn)練出了一個(gè)單挑solo能力非常強(qiáng)悍的算法,但是不得不說這個(gè)算法離Dota 2的5V5對(duì)抗中取勝還有非常大的距離。

在Dota 2的5V5對(duì)抗中,每方的5名玩家需要在英雄類型的合理搭配上、進(jìn)攻策略上(如是速攻還是拖后期)、資源分配上(游戲中獲得的金幣根據(jù)局面購買何種物品)、局部戰(zhàn)術(shù)等諸多因素上均保持順暢溝通、并緊密配合才能取得對(duì)抗的勝利,每場比賽通常要大約進(jìn)行30分鐘以上,其過程的隨機(jī)性非常強(qiáng)。

因此可見,OpenAI要在5v5中取得對(duì)人類的勝利,遠(yuǎn)遠(yuǎn)不是用1v1算法控制5個(gè)角色這么簡單,5個(gè)在區(qū)域戰(zhàn)場上單挑無敵的勇夫,并不意味著最終的勝利,接下來OpenAI的任務(wù),就是讓他們不要成為彼此“豬一樣的隊(duì)友”,而團(tuán)隊(duì)合作、對(duì)局面的宏觀決策才是真正具有挑戰(zhàn)意義的地方,同時(shí)也是人工智能從alphago這種機(jī)械性很強(qiáng)的專用智能,逐漸邁向通用智能的嘗試。而OpenAI團(tuán)隊(duì)目前已經(jīng)表示,他們正在準(zhǔn)備向dota 2 5v5中全面擊敗最強(qiáng)人類玩家戰(zhàn)隊(duì)的目標(biāo)進(jìn)發(fā),并計(jì)劃在明年接受這個(gè)挑戰(zhàn)。

今天Dota 2 1v1的一小步,明年5v5的一大步,讓我們密切期待!

極客網(wǎng)企業(yè)會(huì)員

免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。

2017-08-14
馬斯克的OpenAI 究竟是如何在dota2中擊敗頂級(jí)人類選手的?
在8月12日,埃隆·馬斯克旗下旨在研究通用人工智能解決方案的公司OpenAI,所訓(xùn)練的一款人工智能算法在著名的電子競技游戲Dota2國際邀請賽The Inter

長按掃碼 閱讀全文