OpenAI昨日發布研究成果,宣布Dota2 5v5在限定條件下(英雄陣容固定,部分道具和功能禁用)戰勝人類半職業選手。本文主要對其模型技術架構做一些分析總結。
一、 模型輸入與輸出
模型的輸入是使用RAM(內存信息),如位置坐標,技能血量數值狀態等,而不是圖像像素信息。
模型輸入主要分為兩個部分:
直接觀測的信息:場面其他英雄的絕對位置,相對距離,相對角度,血量,狀態等。
人工定義抽象的信息:是否被攻擊以及正在被誰攻擊,炮彈距離命中的時間,朝向的cos與sin,最近12幀內的英雄的血量變化等。
模型的輸出即是指AI所選擇的動作,包括移動,攻擊釋放技能等。OpenAI將連續的動作,離散化對應到網格,并對各種技能定制化釋放動作,以減少動作空間的大小。以下圖為例,AI要釋放一個攻擊技能,需要選取這個技能,并選擇一個目標單位周圍網格內的一個位置:
值得注意的是,在Dota2游戲內還有其他動作,例如操控信使,購買裝備,技能升級與天賦等,這些都是人工定義好,而不需AI決策的。而操控幻象分身,召喚物等涉及更復雜的多單位操作,則未在OpenAI當前版本的考慮范圍內。
二、 網絡架構與訓練方式
網絡架構架構局部如下圖:
模型大圖下載鏈接:https://d4mucfpksywv.cloudfront.net/research-covers/openai-five/network-architecture.pdf
總的來看,大量信息通過連接(concatenate)與全連接層(dense)層進行綜合,作為1024維的LSTM的輸入。LSTM綜合時序信息,并輸出決策向量,再用決策向量解構出詳細動作。
訓練方式:
純自我對弈訓練。
隨機化訓練:隨機初始狀態(血量速度移動等)的訓練,以增強泛化能力。
使用很高的γ=0.9997。γ為獎勵衰減值,一般在其他環境中設置為0.98,0.998。
大量計算:128,000CPU+256GPU,能做到每天模擬玩180年的游戲。
獎勵(reward)設計:
總體獎勵:當前局面評估(塔的情況等),KDA(個人戰績),補兵表現等。
合作獎勵:全隊的表現作為自己獎勵的一部分。
分路對線的獎勵與懲罰:最開始分配一條路,前期發育時如果偏離就會懲罰。
三、 總結
用強化學習玩Dota2需要面對4個挑戰:狀態空間大,局面不完全可見(有視野限制),動作空間大,時間尺度大。
近期論文中提出的解決方案,大致有以下幾個方向:
狀態空間大:解決方法如先用World Models抽象,再進行決策。
局面不完全可見:一般認為需要進行一定的搜索,如AlphaGo的MCTS(蒙特卡洛樹搜索)。
動作空間大:可以使用模仿學習(Imitation Learning),或者與層次強化學習結合的方法。
時間尺度大:一般認為需要時間維度上的層次強化學習(Hierarchical Reinforcement Leanring)來解決這個問題。
而神奇的是,OpenAI沒有使用上述任一方法,而僅僅使用高γ值的PPO基礎算法,就解決了這些問題。這說明憑借非常大量的計算,強化學習的基礎算法也能突破這些挑戰。
OpenAI沒有使用的WorldModels,MCTS,IL,HRL等方法,既是學術界研究的重點方向,也是OpenAI-Five潛在的提升空間。這些更高效的方法若被合理應用,可以加快模型的學習速度,增強模型的遷移能力,并幫助模型突破當前的限制。
-
AI
+關注
關注
87文章
30745瀏覽量
268896 -
模型
+關注
關注
1文章
3229瀏覽量
48809
原文標題:技術架構分析:攻克Dota2的OpenAI-Five
文章出處:【微信號:AItists,微信公眾號:人工智能學家】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論