国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

五分鐘教你在Go-Bigger中設計自己的游戲AI智能體

發布時間:2021-10-28 16:00    發布者:錄余

多智能體對抗作為決策AI中重要的部分,也是強化學習領域的難題之一。為豐富多智能體對抗環境,OpenDILab(開源決策智能平臺)開源了一款多智能體對抗競技游戲環境——Go-Bigger。同時,Go-Bigger還可作為強化學習環境協助多智能體決策AI研究。

與風靡全球的agar.io、球球大作戰等游戲類似,在Go-Bigger中,玩家(AI)控制地圖中的一個或多個圓形球,通過吃食物球和其他比玩家球小的單位來盡可能獲得更多重量,并需避免被更大的球吃掉。每個玩家開始僅有一個球,當球達到足夠大時,玩家可使其分裂、吐孢子或融合,和同伴完美配合來輸出博弈策略,并通過AI技術來操控智能體由小到大地進化,憑借對團隊中多智能體的策略控制來吃掉盡可能多的敵人,從而讓己方變得更強大并獲得最終勝利。

四類小球,挑戰不同決策路徑

Go-Bigger采用Free For All(FFA)模式來進行比賽。比賽開始時,每個玩家僅有一個初始球。通過移動該球,玩家可吃掉地圖上的其他單位來獲取更大的重量。每個隊伍都需和其他所有隊伍進行對抗,每局比賽持續十分鐘。比賽結束后,以每個隊伍最終獲得的重量來進行排名。

在一局比賽中共有分身球、孢子球、食物球、荊棘球四類球。分身球是玩家在游戲中控制移動或者技能釋放的球,可以通過覆蓋其他球的中心點來吃掉比自己小的球;孢子球由玩家的分身球發射產生,會留在地圖上且可被其他玩家吃掉;食物球是游戲中的中立資源,其數量會保持動態平衡。如玩家的分身球吃了一個食物球,食物球的重量將被傳遞到分身球;荊棘球也是游戲中的中立資源,其尺寸更大、數量更少。如玩家的分身球吃了一個荊棘球,荊棘球的大小將被傳遞到分身球,同時分身球會爆炸并分裂成多個分身。此外,荊棘球可通過吃掉孢子球而被玩家移動。

分身球

  

孢子球                          食物球

荊棘球(尖刺)

團隊緊密配合,實現合理重量傳遞

在Go-Bigger中,團隊內部的合作和外部的競技對于最終的成績至關重要。因此,Go-Bigger設計了一系列的規則來提高團隊所能帶來的收益。由于玩家的分身球重量越小,移動速度越快,更多的分身可以保證快速發育,但是會面臨被其他玩家吃掉的風險。同時,冷卻期的存在使得玩家無法靠自身擺脫這樣的風險。因此,同一隊伍中不同玩家的配合尤為關鍵。

為便于團隊內玩家的配合,Go-Bigger設置了玩家無法被同隊伍完全吃掉的規則。Go-Bigger還設置了單個分身球的重量上限和重量衰減,使得單一分身球無法保持過大重量,迫使其分裂以減少重量損失。在游戲后期,團隊內部的重量傳遞會顯得至關重要,合理的重量傳遞可以保證團隊在與其他隊伍對抗時獲得更大的優勢。

支持RL環境,提供三種交互模式

此外,為幫助用戶在強化學習領域的多智能體策略學習,Go-Bigger也提供了符合gym.Env標準的接口供其使用。在一局游戲中,Go-Bigger默認設置含有20個狀態幀和5個動作幀。每個狀態幀都會對當前地圖內所有單位進行仿真和狀態處理,而動作幀會在此基礎上,附加對單位的動作控制,即改變單位的速度、方向等屬性,或使單位啟用分裂、發射或停止等技能。

為了更方便地對環境進行探索,Go-Bigger還提供了必要的可視化工具。在與環境進行交互的時候,可以直接保存本局包含全局視角及各個玩家視角的錄像。此外,Go-Bigger提供了單人全局視野、雙人全局視野、單人局部視野三種人機交互模式,使得用戶可以快速了解環境規則。

三步走,快速搭建強化學習baseline

算法baseline的目的是驗證某個問題環境使用強化學習算法的初步效果,對各個環節的信息做簡單梳理和分析,熟悉之后便可輕松上手比賽,在環境、算法、算力上逐步增加復雜度,設計迭代效果更強的智能體。

Go-Bigger環境的強化學習算法baseline主要分為環境瘦身、基礎算法選擇、定制訓練流程三部分。其中,環境瘦身即將原始游戲環境簡化成適用于強化學習的標準環境格式;基礎算法選擇指根據環境的基本信息選擇合理的基礎RL算法;定制訓練流程指根據環境的特殊特征定制訓練流程。

1.環境瘦身

A.人類視角的Go-Bigger(左)V.S. 翻譯成游戲引擎中的結構化信息(右):

這些人理解起來很簡單的數據表示,對計算機和神經網絡卻非常不友好,因此需要專門對這些信息做一定的加工,并根據強化學習的特性設置成標準的強化學習環境觀察空間。

(1)特征工程:

▪ 原始的游戲數據需要表達游戲內容,其數值范圍波動便會較大(比如從幾十到幾萬的球體大小),直接將這樣的信息輸入給神經網絡會造成訓練的不穩定,所以需要根據信息的具體特征進行一定的處理(比如歸一化,離散化,取對數坐標等等)。

▪ 對于類別信息等特征,不能直接用原始的數值作為輸入,常見的做法是將這樣的信息進行獨熱編碼,映射到一個兩兩之間距離相等的表示空間。

▪ 對于坐標等信息,使用絕對坐標會帶來一些映射關系的不一致問題,相對坐標通常是更好的解決方式。

(2)從RGB圖像到特征圖像層

直接將原始的RGB 2D圖像信息輸入神經網絡,盡管結果尚可,但需要更多的數據、更長的訓練時間,以及更復雜的訓練技巧。更為簡明并有效的方式是進行“升維”,即將耦合在一起的圖像信息離解成多個分離的特征圖像層。最終根據游戲內容定義出具體的特征圖像層,并區分各個玩家的局部視野,拼接后構成總體的特征圖像層。下圖為一玩家視野中食物球的特征圖像層:

(3)可變維度

Go-Bigger環境中存在很多可變維度的地方,為了簡化,baseline環境中強行截斷了單位數量,用統一的方式來規避可變維度問題。

B.設計動作空間

Go-Bigger對于人類來說操作起來十分簡單,包括上下左右QWE,這些基本的按鍵組合起來便可以誕生出許多有趣的操作,如十面埋伏、大快朵頤等。但是,游戲引擎中實際的動作空間是這樣的(動作類型 + 動作參數):

游戲引擎的這種形式在強化學習中被稱作混合動作空間,也有相應的算法來處理該問題。但基于baseline一切從簡這一核心,通過使用比較簡單粗暴的離散化處理,將連續的動作參數(x,y坐標)離散化為上下左右四個方向。針對動作類型和動作參數的組合,也簡單使用二者的笛卡爾積來表示,最終將環境定義為一個16維的離散動作空間。

C.設計獎勵函數

獎勵函數定義了強化學習優化的目標方向。Go-Bigger是一項關于比誰的隊伍更大的對抗游戲,因此獎勵函數的定義也非常簡單,即相鄰兩幀整個隊伍的大小之差。

如下圖所示兩張表示相鄰兩個動作幀,右側計分板顯示各個隊伍實時的大小數值,將當前幀的大小減去上一幀的大小,就定義得到了獎勵值。而對于整場比賽,則使用每一步獎勵的累加和作為最終的評價值。評價值最大的隊伍,將贏得本局比賽。此外,在訓練時,還通過縮放和截斷等手段將獎勵值限制在[-1, 1]范圍內。

2.基礎算法選擇

在完成對RL環境的魔改之后,會呈現如下基本信息:

▪ 多模態觀察空間:圖像信息 + 單位屬性信息 + 全局信息

▪ 離散動作空間:16維離散動作

▪ 獎勵函數:稠密的獎勵函數,且取值已經處理到[-1, 1]

▪ 終止狀態:并無真正意義上的終止狀態,僅限制比賽的最長時間

對于這樣的環境,可用最經典的DQN算法 + 多模態編碼器神經網絡來實現。對于各種模態的觀察信息,使用數據對應的經典神經網絡架構即可。例如,對于圖像信息,選擇一個帶降采樣的卷積神經網絡將2D圖像編碼為特征向量;對于單位屬性信息,需要建模各個單位之間的聯系,獲得最終的單位特征向量;對于全局信息,則使用由全連接層構成的多層感知機。在各部分編碼完成之后,將三部分的特征拼接在一起,將構成時間步的觀察特征向量,以復用最經典的Dueling DQN結構。以特征向量為輸入,輸出這一步選擇16個動作的Q值,并使用N-step TD損失函數即可完成相應訓練的優化。完整的神經網絡結構如下圖所示。

3.定制訓練流程

DQN通常只用來解決單智能體的問題,而在Go-Bigger中一支隊伍會存在多個玩家,且一局比賽為多個隊伍混戰,因此會涉及多智能體之間合作和對抗等問題。在多智能體強化學習領域,針對該問題可展開諸多的研究方向,但為簡化設計Go-Bigger使用了Independent Q-Learning (IQL)+ 自我對戰(Self-Play)的方式來實現訓練流程。

例如,對于一個隊伍中的多個智能體,團隊的最終目標是讓整個隊伍(總體積/總體量/總重量)的大小最大,因此在baseline中可使用IQL算法來實現,以高度并行化地實現整個優化過程;對于實際一局比賽中存在多個智能體的情況,則可使用樸素的自我對戰(Self-Play)這一相當簡單且非常節省算力的方式來參與比賽。評測時,會將隨機機器人和基于規則的機器人作為比賽的對手,測試驗證目前智能體的性能。

Tips:

▪ 使用更高級的自我對戰(Self-Play)算法(比如保存智能體的中間歷史版本,或使用PFSP算法);

▪ 構建League Training流程,不同隊伍使用不同的策略,不斷進化博弈;

▪ 設計基于規則的輔助機器人參與到訓練中,幫助智能體發現弱點,學習新技能,可作為預訓練的標簽或League Training中的對手,也可構造蒸餾訓練方法的老師,請玩家盡情腦洞。

從零開始實現上述算法和訓練流程非常復雜,而通過決策智能框架DI-engine(https://github.com/opendilab/DI-engine)可大大簡化相應內容。其內部已經集成了支持多智能體的DQN算法實現和一系列相關訣竅,以及玩家自我對戰和對抗機器人的訓練組件,只需實現相應的環境封裝,神經網絡模型和訓練主函數即可(詳細代碼參考https://github.com/opendilab/GoBigger-Challenge-2021/tree/main/di_baseline)。

幾個有意思的發現

通過上述簡單基線算法訓練出來的初級AI在在發育階段會將球盡量分開,以增大接觸面加快發育;在面對潛在的危險時,會避開比自身大的球,并使用分裂技能加快移動速度,防止被吃掉。這些操作都是在人類玩家的游戲過程中經常用到的小技巧。

為了進一步推動決策智能相關領域的技術人才培養,打造全球領先的原創決策AI開源技術生態,OpenDILab(開源決策智能平臺)將發起首屆Go-Bigger多智能體決策AI挑戰賽(Go-Bigger: Multi-Agent Decision Intelligence Challenge)。本次比賽將于2021年11月正式啟動,使用由OpenDILab開源的Go-Bigger(https://github.com/opendilab/GoBigger)游戲環境。希望集結全球技術開發者和在校學生,共同探索多智能體博弈的研究。歡迎對AI技術抱有濃厚興趣的選手踴躍參加,和全球的頂尖高手一決勝負!



本文地址:http://m.qingdxww.cn/thread-777281-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 利用SAM E54 Xplained Pro評估工具包演示CAN轉USB橋接器以及基于CAN的主機和自舉程序應用程序
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产国语一级毛片在线视频 | 亚洲欧美日韩中文字幕在线 | 中文字幕一区2区3区 | 欧美午夜视频一区二区三区 | 在线观看高清免费理论片 | 亚洲欧洲日产v特级毛片 | 四色网站 | 99热在线精品观看 | 国产久| 天堂网www在线资源网 | 激性欧美激情在线播放16页 | 男女视频在线观看网站 | 永久免费看黄在线播放 | 2023av视频| 麻豆国产在线观看免费 | 亚洲一区精品视频在线 | 日韩欧美一区二区三区在线 | 国产精品日本 | 国产一级视频免费 | 成人va| 日韩免费视频 | 2017天天操 | 在线观看视频亚洲 | 国产老色批视频在线观看应用 | 日本高清不卡视频 | 欧美日韩一区在线观看 | 日本中文字幕在线视频 | 亚洲男女天堂 | 99热这里只有精品国产在热久久 | 久久天天躁夜夜躁狠狠躁2020 | 久久香蕉国产 | 日韩欧美视频二区 | 尤物久久99热国产综合 | 亚洲第一色在线 | 青青青视频精品中文字幕 | 神马我不卡影视 | 成视频年人黄网站免费视频 | 91综合国产 | 日日狠狠久久偷偷四色综合免费 | 久久高清免费视频 | 青青艹在线视频 |