您好,登錄后才能下訂單哦!
近日,OpenAI開發了一套“OpenAI Five”算法,他們的五種神經網絡算法已經可以在Dota 2游戲中進行團隊協作擊敗業余人員隊伍。
OpenAI表示,雖然今天的游戲中仍有限制,但他們的目標是在8月份的國際比賽中擊敗一批頂尖的專業人士,當然只限于一些有限的“英雄”角色。
然而,Dota 2是世界上最流行和最復雜的電子競技游戲之一。
OpenAI Five每天都會玩180年的游戲,通過自我對抗來學習。 它使用在256個GPU和128,000個CPU內核上運行的擴展版Proximal策略優化進行訓練 - 這是為他們去年發布的游戲更簡單的單人版本而設置的更大規模版本的系統。 在游戲中,會對每個英雄使用單獨的LSTM并且不使用人類數據的情況下學習到可識別的策略。
這場比賽OpenAI Five與OpenAI員工團隊進行對戰,由專業評論員Blitz和OpenAI Dota團隊成員Christy Dennison進行了解說,不少的社區人員也相繼圍觀。
問題
人工智能的一個里程碑是在像星際爭霸或Dota這樣復雜的視頻游戲中超越人類的能力。相對于以前的AI里程碑,如國際象棋或圍棋,復雜的視頻游戲開始反映現實世界的混亂和連續性的本質。能夠解決復雜視頻游戲的系統具有很高的通用性,其應用程序不在游戲中。
人工智能領域的一個里程碑是在像星際爭霸或Dota這樣的復雜電子游戲中超越人類的能力。相對于以前的人工智能里程碑,比如國際象棋或圍棋,人們可能更為關注的是解決復雜電子游戲的系統將是高度通用的,而不僅僅是在游戲領域有應用。
Dota 2是一款實時戰略游戲,由兩名玩家組成,每個玩家控制一個稱為“英雄”的角色。玩Dota的AI必須掌握以下幾點:
Dota規則也非常復雜。該游戲已經被積極開發了十多年,游戲邏輯在數十萬行代碼中實現。這一邏輯執行的時間是幾毫秒,而對于國際象棋或圍棋則只需要幾納秒。游戲每兩周更新一次,不斷改變環境語義。
方法
OpenAI Five的系統使用Proximal Policy Optimization的大規模版本進行學習。 OpenAI Five和早期的1v1機器人都完全依靠自我學習進行。他們從隨機參數開始,不使用來自人類的數據。
強化學習的研究人員(包括我們自己)一般認為,長時間視野需要從根本上取得新的進展,如層級強化學習。結果表明,我們并沒有給今天的算法足夠的信用,至少是當它們以足夠的規模和合理的探索方式運行時。
代理人經過訓練,可以最大化未來獎勵的指數衰減總和,并由稱為γ的指數衰減因子加權。在最新的OpenAI Five訓練中,從0.998(評估未來獎勵的半衰期為46秒)到0.9997(評估未來獎勵的半衰期為五分鐘)退化γ。為進行比較,近端策略優化(PPO)論文中最長的平面是0.5秒的半衰期,Rainbow 論文中最長的半衰期為4.4秒,觀察和進一步觀察紙張的半衰期為46秒。
盡管當前版本的OpenAI Five在最后一擊時表現不佳(觀察我們的測試比賽,專業Dota評論員Blitz估計它大約是Dota玩家的中位數附近),但其客觀的優先級匹配一個常見的專業策略。獲得戰略地圖控制等長期回報往往需要犧牲短期回報,因為組建攻擊塔需要時間。這一觀察增強了OpenAI 的信念,即系統真正在長期的優化。
模型架構
每個OpenAI Five的網絡都包含一個單層1024單元的LSTM,它可以查看當前的游戲狀態(從Valve的Bot API中提取),并通過幾個可能的動作發出對應動作。 每個動作都具有語義含義,例如延遲此動作的刻度數量,要選擇的動作數量,單位周圍網格中此動作的X或Y坐標等。
交互式演示OpenAI Five使用的觀察空間和動作空間。 OpenAI Five將“世界”視為20,000個數字的列表,并通過發布8個列舉值的列表來采取行動。 選擇不同的操作和目標以了解OpenAI Five如何編碼每個動作,以及它如何觀察。以下圖像顯示的是我們看到的景象。
OpenAI Five可以對丟失的相關的狀態片段做出反應。 例如,直到最近OpenAI Five的觀測并沒有包括彈片區域(彈丸落在敵人身上的區域),只是人類在屏幕上看到了這些區域。 然而,我們觀察到OpenAI Five學習走出(雖然不能避免進入)活動的彈片區域,因為它可以看到它的“健康狀況”在下降
勘探
鑒于能夠處理長期視野的學習算法,我們仍然需要探索環境。即使有我們的限制,也有數百種物品,數十種建筑物、法術和單位類型,以及需要了解的大量游戲機制,其中許多產生了強大的組合。要有效地探索這個組合廣闊的空間并不容易。
OpenAI Five從自我對抗開始(從隨機權重開始)學習,這為探索環境提供了一個自然的課程。為了避免“戰略崩潰”,代理商訓練80%的游戲與自己對抗,另外20%與過去的自己對抗。在第一場比賽中,英雄們漫無目的地在地圖上漫步。經過幾個小時的訓練后,出現了諸如農業或中期戰斗等概念。幾天后,他們一直采用基本的人類戰略:試圖從對手手中奪取賞金符文,步行到他們的一級塔去種田,并在地圖上旋轉英雄以獲得通道優勢。并且通過進一步的訓練,他們就能夠熟練掌握一些高級戰略。
2017年3月, OpenAI 的第一個產品擊敗了機器人,但卻對人類無能為力。為了強制在戰略空間進行探索,在訓練期間(并且只在訓練期間),我們隨機化了單位的屬性(包括健康,速度,開始水平等),讓它與人類對戰。后來,當一名測試玩家不停擊敗1v1機器人時,增加了隨機訓練,這時候,測試玩家開始失敗。(我們的機器人團隊同時將相似的隨機化技術應用于物理機器人,以便從仿真轉移到現實世界。)
OpenAI Five使用為1v1機器人編寫的隨機數據。它也使用一個新的“車道分配”(lane assignment)。在每次訓練比賽開始時,隨機地將每個英雄“分配”給一些子集,并對其進行懲罰以避開這些車道。
可以發現,探索得到了很好的回報。獎勵主要包括衡量人們如何在游戲中做出的決定:凈值、殺戮、死亡、助攻、最后的命中等等。我們通過減去其他團隊的平均獎勵后處理每一個智能體的獎勵,以防止它找到積極情況。
協調
團隊合作由稱為“團隊精神”的超參數控制。團隊精神從0到1,對OpenAI Five的每個英雄都應該關心其個人獎勵功能與團隊獎勵功能的平均值有多重要。我們在訓練中將其值從0調至1。
Rapid
系統被實施為通用RL訓練系統Rapid,可應用于任何環境。我們已經使用Rapid解決了OpenAI的其他問題,包括競爭性的自我對抗。
訓練系統分為運行游戲副本和代理收集體驗的部署工作人員,以及優化器節點,這些節點在整個GPU隊列中執行同步梯度下降。部署工作人員通過Redis將他們的體驗同步到優化器。每個實驗還包含評估經過訓練的代理商與參考代理商的工作人員,以及監控軟件,如TensorBoard、Sentry和Grafana。
在同步梯度下降過程中,每個GPU計算批次部分的梯度,然后對梯度進行全局平均。我們最初使用MPI的allreduce進行平均,但現在使用NCCL2來并行GPU計算和網絡數據傳輸。
右側顯示了不同數量的GPU同步58MB數據(OpenAI Five參數的大小)的延遲。延遲低到足以被GPU并行運行的GPU計算所掩蓋。
OpenAI為Rapid實施了Kubernetes、Azure和GCP后端。
游戲
到目前為止,OpenAI Five已經在各種限制下,與球隊進行了比賽:
最好的OpenAI員工團隊:2.5k MMR(第46百分位)
觀看OpenAI員工比賽的最佳觀眾玩家(包括評論第一場OpenAI員工比賽的Blitz):4-6k MMR(90-99th百分點),盡管他們從來沒有作為一個團隊參賽
公司員工團隊:2.5-4k MMR(第46-90百分位)
業余隊:4.2k MMR(第93百分位),訓練為一支隊伍
半職業隊:5.5k MMR(第99百分位),團隊訓練
4月23日的OpenAI Five版本是第一個擊敗腳本基線的。 OpenAI Five的5月15日版本與第一隊平分秋色,贏得了一場比賽并輸掉了另一場。 6月6日的OpenAI Five版本決定性地贏得了所有的比賽。與第四和第五隊建立了非正式的比賽,預計結果不會太好,但是OpenAI Five在前三場比賽中贏得了兩場比賽。
我們觀察到OpenAI Five有以下表現:
為了換取控制敵人的安全車道,反復犧牲了自己的安全車道(可怕的頂部車道;輻射的底部車道),迫使對手向更難防御的一邊走近。這種策略在過去幾年中出現在專業領域,現在被認為是盛行的策略。
比對手更快的完成從比賽初期到賽季中期的轉場。它是這樣做的:(1)建立成功的ganks(當玩家在地圖上移動以埋伏敵方英雄 - 參見動畫),當玩家在他們的車道中過度擴張時;(2)在對手組織起來之前,進行組隊推塔。
與當前的游戲風格不同的是,在一些方面,比如給予英雄(通常不優先考慮資源)大量的早期經驗和黃金支持。OpenAI Five的優先級使得它的傷害更早達到頂峰,并使它的優勢更加強大,贏得團隊戰斗并利用錯誤來確保快速的勝利。
與人類的差異
OpenAI Five可以訪問與人類相同的信息,可以立即看到諸如位置、健康狀況和物品清單等數據,這些數據是人類必須手動檢查的。我們的方法與觀察狀態沒有本質的聯系,但是僅僅從游戲中渲染像素就需要數千個gpu。
OpenAI Five的平均動作速度約為每分鐘150-170個動作(理論上最大動作速度為450個,因為每隔4幀就觀察一次)。盡管對于熟練的玩家來說,框架完美的時機選擇是可能的,但對于OpenAI Five來說是微不足道的。OpenAI Five的平均反應時間為80ms,比人類快。
這些差異在1v1中最為重要(我們的機器人的反應時間為67ms),但由于我們看到人類從機器人身上學習并適應機器人,所以競爭環境相對公平。在去年的TI測試后的幾個月里,數十名專業人士使用了我們的1v1機器人進行訓練。根據Blitz的說法,1v1機器人已經改變了人們對1v1的看法(這個機器人采用了快節奏的游戲風格,現在每個人都已經適應了)。
令人驚訝的發現
稀疏與密集的獎勵學習曲線,顯示密集達到同等水平的性能更快。二值獎勵能帶來好的表現。我們的1v1模型有一個形狀的獎勵,包括對最后命中目標的獎勵、殺戮等等。他們做了一個實驗,只獎勵那些成功或失敗的人,它訓練了一個數量級更慢,并且在中間有一些停滯,這與我們通常看到的平滑的學習曲線形成了對比。這個實驗運行在4500個核心和16k80個gpu上,訓練到半專業級(70個TrueSkill),而不是最好的1v1機器人的90個TrueSkill。
可以從頭學習卡兵。對于1v1,學習了使用傳統RL的卡兵,并得到了一個獎勵。團隊的一個成員在休假時離開了2v2的模型訓練,想看看還需要多久的訓練才能提高性能。令他驚訝的是,這個模型已經學會了在沒有任何特殊指導或獎勵的情況下卡兵。
比較bug修復前后的學習曲線,顯示修復bug如何提高學習速度。該圖表顯示了擊敗業余玩家的代碼的訓練運行情況,與此相比,只是修復了一些bug,比如在訓練中偶爾發生的崩潰,或者一個bug,如果達到了25級,就會得到很大的負面獎勵。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。