0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

有了OpenAI Five,它已經(jīng)可以在比賽中擊敗業(yè)余玩家

zhKF_jqr_AI ? 來源:未知 ? 作者:李倩 ? 2018-06-29 11:54 ? 次閱讀

編者按:關于OpenAI的那篇博客,相信很多玩家一早起來就已經(jīng)看過了。昨晚打完Dota2時,云玩家小編也在Reddit上看了相關視頻,還和隊友一起推測了會兒內(nèi)在機制。但不曾想,我這一睡就又錯過了頭條。本文會重新編譯原博內(nèi)容,并補上被大家忽視的一些關鍵點。

去年,OpenAI的強化學習bot在中路solo中擊敗職業(yè)選手Dendi,贏得眾人矚目,但Dota2是一個5人游戲,在那之后,我們目標是制作一個由神經(jīng)網(wǎng)絡構成的5人團隊,它能在8月份舉辦的Ti8國際邀請賽上,用有限的英雄擊敗職業(yè)隊。時至今日,我們有了OpenAI Five,它已經(jīng)可以在比賽中擊敗業(yè)余玩家。

OpenAI Five玩的是限制版的Dota2,它只會瘟疫法師、火槍、毒龍、冰女和巫妖5個英雄,因為鏡像訓練,它的對手也只能玩這5個。游戲的“限制性”主要體現(xiàn)在以下幾方面:

英雄受限(上述5個);

沒有假眼和真眼;

沒有肉山;

不能隱身(消耗品和相關物品,可以理解為沒有霧、微光、隱刀、大隱刀、隱身符等);

沒有召喚物和分身(沒有分身斧、分身符、支配頭盔等);

沒有圣劍、魔瓶、補刀斧、飛鞋、知識之書、凝魂之露(沒有骨灰?);

每隊五只無敵信使(和加速模式一樣);

不能掃描。

這些限制使OpenAI Five的游戲和正常游戲有一定區(qū)別,尤其是隊長模式,但總體而言,它和隨機征召等模式差別不大(對于冰女這樣的五號位,沒有眼完全沒法玩吧!)。

OpenAI Five每天玩的游戲量相當于人類玩家180年的積累,和圍棋AI一樣,它從自學中提取經(jīng)驗。訓練設備是256個GPU和128,000個CPU,使用的強化學習算法是近端策略優(yōu)化(PPO)。因為不同英雄間技能、出裝各異,這5個英雄使用的是5個獨立的LSTM,無人類數(shù)據(jù),由英雄從自己的數(shù)據(jù)中學習可識別策略。

實驗表明,在沒有根本性進展的前提下,強化學習可以利用LSTM進行大規(guī)模的、可實現(xiàn)的長期規(guī)劃,這出乎我們的意料。為了考察這個成果,7月28日,OpenAI Five會和頂級玩家進行比賽,屆時玩家可以在Twitch上觀看實況轉(zhuǎn)播。

OpenAI Five擊敗OpenAI員工隊伍

問題

如果一個AI能在像星際、Dota這樣復雜的游戲里超越人類水平,那它就是一個里程碑。相較于AI之前在國際象棋和圍棋里取得的成就,游戲能更好地捕捉現(xiàn)實世界中的混亂和連續(xù)性,這就意味著能解決游戲問題的AI系統(tǒng)具有更好的通用性。醉翁之意不在酒,它的目標也不僅僅是游戲。

Dota2是一款實時戰(zhàn)略游戲,一場比賽由2支隊伍構成,每支隊伍5人,在游戲中,每個玩家需要操控一個“英雄”單位。如果AI想玩Dota2,它必須掌握以下幾點:

時間較長。Dota2的運行幀數(shù)是30幀每秒,一場游戲平均45分鐘,也就是一場游戲要跑80,000幀左右。在游戲中,大多數(shù)動作(action,例如讓英雄移動到某一位置)產(chǎn)生的獨立影響相對較小,但一些獨立動作,比如TP,就可能會對游戲戰(zhàn)略產(chǎn)生重大影響。同時,游戲中也存在一些貫徹始終的戰(zhàn)略,比如推線、farm(刷錢)和gank(抓人)。OpenAI Five的觀察頻率是4幀一次,也就是場均20,000個動作,而國際象棋一般在40步以內(nèi)就能決出勝負,圍棋是150步。這些動作幾乎都具有戰(zhàn)略性意義。

視野有限。在Dota2中,地圖本身是黑的,只能靠英雄和建筑提供一定視野(禁止插眼),這就意味著比賽要根據(jù)不完整的數(shù)據(jù)信息進行推斷,同時預測敵方英雄的發(fā)育進度。國際象棋和圍棋都是全知視角。

高維的、連續(xù)的動作空間。在比賽中,一個英雄可以采取的動作有數(shù)十個,其中有些是對英雄使用的,有些是點地面的。對于每個英雄,我們把這些連續(xù)的動作空間分割成170,000個可能的動作(有CD,不是每個都能用),除去其中的連續(xù)部分,平均每幀約有1000個動作可以選擇。而在國際象棋中,每個節(jié)點的分支因子只有35個,圍棋則是平均250個。

高維的、連續(xù)的觀察空間。Dota2的地圖相當豐富,比如一場比賽中有10個英雄、幾十個建筑、多個NPC單位,以及包括神符、樹木、圣壇(火鍋)等在內(nèi)的諸多要素。我們的模型通過V社的Bot API觀察游戲狀態(tài),用20,000個數(shù)據(jù)(大多數(shù)是浮點數(shù)據(jù))總結了整張地圖的所有信息。相較之下,國際象棋只有約70個(8×8棋盤),圍棋只有約400個(19×19棋盤)。

Dota2的游戲規(guī)則非常復雜——它已經(jīng)被積極開發(fā)了十幾年,游戲邏輯代碼也有數(shù)十萬行。對于AI來說,這個邏輯需要幾毫秒才能執(zhí)行,而國際象棋和圍棋只需幾納秒。目前,游戲還在以每兩周一次的頻率持續(xù)更新,不斷改變語義環(huán)境。

我們的方法

我們使用的算法是前陣子剛推出的PPO,這次用的是它的大規(guī)模版本。和去年的1v1機器人一樣,OpenAI Five也是從自學中總結游戲經(jīng)驗,它們從隨機參數(shù)開始訓練,不使用任何人類數(shù)據(jù)。

強化學習(RL)研究人員一般認為,如果想讓智能體在長時間游戲中表現(xiàn)出色,就難免需要一些根本上的新突破,比如hierarchical reinforcement learning(分層強化學習)。但實驗結果表明,我們應該給予已有算法更多信任,如果規(guī)模夠大、結構夠合理,它們也能表現(xiàn)出色。

智能體的訓練目標是最大化未來回報,這些回報被折扣因子γ加權。在OpenAI Five的近期訓練中,我們把因子γ從0.998提高到了0.9997,把評估未來獎勵的半衰期從46秒延長到了五分鐘。為了體現(xiàn)這個進步的巨大,這里我們列幾個數(shù)據(jù):在PPO這篇論文中,最長半衰期是0.5秒;在Rainbow這篇論文中,最長半衰期是4.4秒;而在Observe and Look Further這篇論文中,最長半衰期是46秒。

盡管當前版本的OpenAI Five在“補刀”上表現(xiàn)不佳(大約是Dota玩家的中位數(shù)),但它對于經(jīng)驗、金錢的的優(yōu)先級匹配策略和專業(yè)選手基本一致。為了獲得長期回報,犧牲短期回報是很正常的,就好比隊友抱團推塔時,玩家不該自己在線上補刀刷錢。這是個振奮人心的發(fā)現(xiàn),因為我們的AI系統(tǒng)真的在進行長期優(yōu)化。

模型結構

看不清圖請向論智君索取

每個OpenAI Five神經(jīng)網(wǎng)絡都包含一個單層的LSTM(左下淡紫),其中有1024個神經(jīng)元。輸入當前的游戲狀態(tài)(從Valve的Bot API中提?。┖?,它會單獨計算各個action head(輸出動作標簽),如圖中下方亮藍色方框中的X坐標、Y坐標、目標單位等,再把所有action head合并成一系列動作。

下圖是OpenAI Five使用的觀察空間和動作空間的交互式演示。它把整張地圖看做一個有20,000個數(shù)據(jù)的列表,并通過8個列舉值的列表來采取行動。這個場景是夜魘上天輝高地,我們選中冰女,可以發(fā)現(xiàn),冰女腳下的9×9小方格表示她可以前進位置,其中白色目標方塊的坐標是(-300,0)。大方框表示可以放Nova地方,目標分別是投石車、小兵、毒龍、巫妖、瘟疫法師和另一個冰女。

OpenAI Five可以就自己觀察到的內(nèi)容對缺失信息做出反應。例如火槍的一技能是榴霰彈,這是一個范圍傷害,雖然除了星際玩家以外的正常玩家都看得到這個區(qū)域,但它并不屬于OpenAI Five的觀察范圍。即便“看不到”,每當AI走進霰彈區(qū)時,它們還是會急著走出來,因為那時它們的血量在不斷下降。

探索

既然AI可以學會“深謀遠慮”,那接下來的問題就是環(huán)境探索。前文提到了,OpenAI Five玩的是限制版Dota2,即便少了很多復雜內(nèi)容,它還有上百種道具、數(shù)十種建筑物、法術、單位類型和游戲機制要學習——其中某些內(nèi)容的組合還會產(chǎn)生更強大的東西。對于智能體來說,有效探索這個組合廣闊的空間并不容易。

OpenAI Five的學習方法是自我訓練(從隨機參數(shù)開始),這就為探索環(huán)境提供了初級經(jīng)驗。為了避免“戰(zhàn)略崩潰”,我們把自我訓練分成兩部分,其中80%是AI和自己對戰(zhàn),剩下20%則是AI和上一版AI對戰(zhàn)。經(jīng)過幾個小時的訓練,帶線、刷錢、中期抓人等戰(zhàn)略陸續(xù)出現(xiàn)了。幾天后,它們已經(jīng)學會了基礎的人類戰(zhàn)略:搶對面的賞金神符,走到己方外塔附近補刀刷錢,不停把英雄送去占線擴大優(yōu)勢。在這個基礎上,我們做了進一步訓練,這時,OpenAI Five就已經(jīng)能熟練掌握5人推塔這樣的高級策略了,

2017年3月,我們的第一個智能體擊敗了機器人,卻對人類玩家手足無措。為了強制在戰(zhàn)略空間進行探索,在訓練期間(并且只在訓練期間),我們隨機化了它的各項屬性(血量、移速、開始等級等),之后它開始能戰(zhàn)勝一些玩家。后來,它又在另一名測試玩家身上屢戰(zhàn)屢敗,我們就又增加了隨機訓練,AI變強了,那名玩家也開始輸了。

OpenAI Five使用了我們之前為1v1智能體編寫的隨機數(shù)據(jù),它也啟用了一種新的“分路”方法。在每次訓練比賽開始時,我們隨機地將每個英雄“分配”給一些線路子集,并對其進行懲罰以避開這幾路。

上述探索自然離不開回報的指引。我們?yōu)镈ota2設計的回報機制基于人類玩家對行為的具體評判:團隊作用、技能施放、死亡次數(shù)、助攻次數(shù)和擊殺次數(shù)等。為了防止智能體鉆漏洞,我們的方法是計算另一隊的平均表現(xiàn),然后用本隊英雄表現(xiàn)減去這個值來具體評判。

英雄的技能點法、裝備和信使管理都從腳本導入。

團隊合作

Dota2是個團隊合作游戲,但OpenAI Five的5名英雄間不存在神經(jīng)網(wǎng)絡上的明確溝通渠道。他們的團隊合作由一個名為“team spirit”的超參數(shù)控制,范圍是0到1,由它給每個英雄的加權,讓它們知道這時是團隊利益更重要還是個人刷錢更重要。

Rapid

這個AI是在我們的強化學習訓練系統(tǒng)Rapid上實現(xiàn)的,后者可以應用于Gym環(huán)境庫。我們已經(jīng)用Rapid解決了OpenAI的許多其他問題,比如Competitive Self-Play。

整個訓練系統(tǒng)被分為rollout workers和optimizer兩部分,其中前者運行一個游戲副本,并用一個智能體收集經(jīng)驗,后者則在一系列GPU中執(zhí)行同步梯度下降。rollout workers通過Redis跟optimizer同步經(jīng)驗。如上圖所示,每個實驗還包括一個Eval workers的過程,它的作用是評估經(jīng)過訓練的智能體和參考智能體。除此之外還有一些監(jiān)控軟件,如TensorBoard、Sentry和Grafana。

在同步梯度下降過程中,每個GPU在各自batch計算梯度,然后再對梯度進行全局平均。我們最初使用MPI的allreduce進行平均,但現(xiàn)在用我們自己的NCCL2封裝來并行GPU計算和網(wǎng)絡數(shù)據(jù)傳輸。

上圖顯示了不同數(shù)量的GPU同步58MB數(shù)據(jù)(OpenAI Five參數(shù))的延遲,幾乎可以被并行運行的GPU計算所掩蓋。

我們還為Rapid開發(fā)了Kubernetes、Azure和GCP后端。

游戲

到目前為止,OpenAI Five已經(jīng)在限制版Dota2中獲得了非常輝煌的戰(zhàn)績:

頂級OpenAI員工隊伍:天梯分2500+(前46%玩家)

觀看比賽的最強觀眾隊(包括解說Blitz):天梯分4000-6000(前90-99%玩家)——非開黑

V社員工隊伍:天梯分2500-4000(前46-90%玩家)

業(yè)余選手隊伍:天梯分4200(前93%玩家)——開黑隊

半職業(yè)隊:天梯分5500(前99%玩家)——開黑隊

4月23日,OpenAI Five首次擊敗機器人腳本;5月15日,它在和OpenAI員工隊的較量中1勝1負,首次戰(zhàn)勝人類玩家;6月6日,它突破OpenAI隊、觀眾隊和V社隊的封鎖,決定性地贏得了所有的比賽。之后我們又和業(yè)余隊、半職業(yè)隊進行了非正式比賽,OpenAI Five沒有像預想中那樣一敗涂地,而是在和兩個隊的前三場比賽中都贏了兩場。

這些AI機器人的團隊合作幾乎是壓倒性的,它們就像5個無私的玩家,知道最好的總體戰(zhàn)略?!狟litz

我們也從OpenAI Five的比賽中觀察到了一些東西:

它們會為了搶奪敵方優(yōu)勢路舍棄自家優(yōu)勢路(天輝的下路和夜魘的上路),使對方無力回防。這種戰(zhàn)略近幾年常出現(xiàn)在職業(yè)隊伍比賽中,解說Blitz也稱自己是從液體(李逵)那里得知這點的。

推動局勢轉(zhuǎn)變,比對面更快地把戰(zhàn)局從前期推進中期。這樣做的具體方法是:(1)如下圖所示,成功的gank;(2)在對面抱團后,及時反制。

它們在少數(shù)領域背離了目前的游戲風格,比如AI前期會給輔助更多經(jīng)驗和錢,讓它們在強勢期打足傷害,擴大局面優(yōu)勢,打贏團戰(zhàn),然后抓住對方失誤快速致勝。

AI和人類的差別

OpenAI Five可以觀察的信息和人類玩家相同,游戲里有什么數(shù)據(jù),它就看到什么數(shù)據(jù)。比如玩家需要手動去檢查英雄位置、血量情況和身上的裝備。我們的方法并沒有從根本上與觀察狀態(tài)相關聯(lián),但僅從游戲渲染像素看,它就需要數(shù)千個GPU。

對于許多人關心的APM問題,OpenAI Five只有150-170(每4幀一次動作,理論上最高有450)。但需要注意的是,這150是有效操作,不是逛街和打字嘲諷,它的平均反應時間為80ms,比人類快。

這兩個差異在1v1中最為重要,但在比賽中,我們發(fā)現(xiàn)人類玩家可以輕松適跟上AI的節(jié)奏,所以雙方競技還是比較公平的。事實上去年Ti7期間,一些職業(yè)玩家也和我們的1v1 AI做了多次訓練,根據(jù)Blitz的說法,1v1 AI改變了人們對1v1的看法(AI采用了快節(jié)奏的游戲風格,現(xiàn)在每個人都適應了)。

令人驚訝的發(fā)現(xiàn)

二元回報能夠提供良好的表現(xiàn)。1v1模型的回報是多尺度的,包括擊殺英雄、連續(xù)擊殺等。我們做了一個實驗,讓智能體只能從輸贏中獲得回報。如上圖所示,和常見的平滑曲線(黃線)相比,雖然它(紫線)在訓練中期出現(xiàn)了一個較慢并且稍微平穩(wěn)的階段,但它的訓練結果和黃線很接近。這個實驗用了4,500個CPU和16個k80 GPU,模型性能達到半專業(yè)級(70個TrueSkill),而我們的1v1模型是90個TrueSkill。

可以自學卡兵。在去年的1v1模型中,我們獨立訓練模型卡兵,并附加一個“卡兵塊”獎勵。我們團隊的一名員工在訓練2v2模型時,因為要休假,于是建議他(現(xiàn)在的)妻子看看要花多久才能提高性能。令人驚訝的是,這個模型居然在沒有任何特殊指引和回報激勵的情況下得出了卡兵會產(chǎn)生優(yōu)勢的結論。

我們?nèi)栽谛迯湾e誤。上圖中的黃線模型已經(jīng)可以擊敗業(yè)余玩家,但修復了一些Bug后,它的提升非常明顯。這給我們帶來的啟示是即便已經(jīng)擊敗更強的人類玩家,我們的模型還是可能隱藏著嚴重錯誤。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 神經(jīng)網(wǎng)絡

    關注

    42

    文章

    4726

    瀏覽量

    100311
  • AI
    AI
    +關注

    關注

    87

    文章

    29382

    瀏覽量

    267664
  • 強化學習
    +關注

    關注

    4

    文章

    264

    瀏覽量

    11182

原文標題:一文解析OpenAI Five,一個會打團戰(zhàn)的Dota2 AI

文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    OpenAI 深夜拋出王炸 “ChatGPT- 4o”, “她” 來了

    當?shù)貢r間5月13日OpenAI推出ChatGPT-4o,代表人工智能向前邁出的一大步。GPT-4turbo的強大基礎上,這種迭代擁有顯著的改進。發(fā)布會的演示
    發(fā)表于 05-27 15:43

    iPhone據(jù)稱已經(jīng)在歐洲擊敗諾基亞

    InMobi廣告網(wǎng)絡是世界最大的廣告網(wǎng)絡,據(jù)InMobi最新報告顯示,歐洲移動廣告曝光次數(shù)上蘋果已經(jīng)擊敗諾基亞。
    發(fā)表于 07-19 09:08 ?687次閱讀

    AI簡化了的DOTA2擊敗前1%玩家,學習能力很出色

    不過雖然OpenAI Five能戰(zhàn)勝人類選手,但是這場比賽是建立一定限制條件下進行的。首先英雄的選擇上有限制,這是因為OpenAI并沒有完
    發(fā)表于 06-29 19:39 ?562次閱讀

    AI也能相互協(xié)作的玩游戲,玩Dota2戰(zhàn)勝了人類玩家

    據(jù)悉,OpenAI開發(fā)了出了一套名為“OpenAI Five”的算法,雖然單獨來看這種算法并沒有什么突破,只是針對玩Dota2的一種神經(jīng)網(wǎng)絡,并且此前也曾有AI算法1對1的Dota2
    發(fā)表于 06-27 05:29 ?603次閱讀

    電影《頭號玩家可感應穿戴裝備已經(jīng)在研究過程?

    最近大火的電影《頭號玩家》讓人分分鐘想跳入綠洲,那么綠洲具體多遠的未來呢? 相信近期上映的《頭號玩家已經(jīng)有很多人二刷三刷,簡直是讓人心
    發(fā)表于 04-09 10:45 ?3898次閱讀

    OpenAI的由5個神經(jīng)網(wǎng)絡組成的OpenAI Five,已經(jīng)開始擊敗Dota 2的業(yè)余玩家隊伍

    Dota游戲是一個典型的AI難題,綜合決策周期長,空間大而且敵我雙方是非完全信息下博弈。OpenAI繼去年解決1v1的問題后,1年內(nèi)能在5v5的更復雜情況下,完全依靠自我對抗學習
    的頭像 發(fā)表于 06-27 12:01 ?8728次閱讀

    AI首度電競游戲《DOTA 2》擊敗人類

    經(jīng)過又一年的努力,OpenAI表示,他們已經(jīng)成功制作一款能夠《DOTA 2》以「團體戰(zhàn)」形式,擊敗五名頂尖
    的頭像 發(fā)表于 06-29 15:16 ?3072次閱讀

    人工智能挑戰(zhàn)人類,OpenAI機器人打敗游戲玩家

    人工智能領域,打敗人類是過時的做法?,F(xiàn)在,頂尖的學者和科技公司想要想“人類”挑戰(zhàn)電子游戲。由Elon Musk和Sam Altman共同創(chuàng)立的研究實驗室OpenAI宣布其最新的里程碑:一個由人工智能代理商組成的團隊
    的頭像 發(fā)表于 07-27 10:43 ?4580次閱讀

    人工智能團隊彼此協(xié)作,視頻游戲Dota 2擊敗五名半職業(yè)人類玩家

    近日,一個人工智能團隊彼此協(xié)作,視頻游戲Dota 2的多玩家在線戰(zhàn)斗競技場(MOBA)成功擊敗五名半職業(yè)人類
    發(fā)表于 08-08 10:53 ?565次閱讀

    人工智能在有限規(guī)則的1V1比賽擊敗一些人類頂級玩家

    人工智能始終通過自我對抗訓練進行學習,每天如此,80% 的游戲是自己與自己對抗,20% 是與過去的自己對抗。并且 5V5 比賽,這五個機器人之間雖然沒有明確的溝通渠道,但是他們
    的頭像 發(fā)表于 08-09 11:22 ?4229次閱讀

    OpenAI FiveDota2國際競賽TI8進行首次對戰(zhàn)以失敗告終

    OpenAI Five是一個由5個人工神經(jīng)網(wǎng)絡組成的隊伍,可以把它想象成一個模擬的“大腦”,是專門為學習Dota而設計的。OpenAI Five
    的頭像 發(fā)表于 08-24 08:53 ?5144次閱讀

    OpenAI Five是如何訓練的、為什么選擇打Dota以及AI在打Dota的時候在想什么?

    總決賽讓OpenAI的科學家可以回答一個重要的研究問題:OpenAI Five多大程度、以何種方式能夠被確定的打???并且可能是有史以來最大
    的頭像 發(fā)表于 04-19 09:29 ?5372次閱讀

    人類目前只贏了40場比賽OpenAI Five的勝率高達99%!

    上周,OpenAI Five擊敗TI8冠軍OG。賽后評論,隊長NoTail預測他的團隊能夠
    的頭像 發(fā)表于 04-23 10:48 ?2817次閱讀

    人工智能戰(zhàn)隊OpenAI將戰(zhàn)Dota2人類最強戰(zhàn)隊的最終決戰(zhàn)

    人工智能戰(zhàn)隊OpenAI將戰(zhàn)Dota2人類最強戰(zhàn)隊,人工智能在圍棋上擊敗人類之后,很多技術人員就開始展望 AI 視頻游戲中的表現(xiàn)。2017 年的 Dota2 國際邀請賽 TI7 上
    發(fā)表于 07-04 11:09 ?1368次閱讀

    撲克牌是是AI首次超過兩個人的游戲中擊敗人類玩家

    也許你會認為AI能戰(zhàn)勝人類今天已經(jīng)是司空見慣的事。但這次具有突破性的是,這場對戰(zhàn)不再是一對一,對手是15名人類頂尖撲克玩家。這也是AI首次
    的頭像 發(fā)表于 07-19 15:06 ?3593次閱讀