# Learning Heterogeneous Agent Cooperation via Multiagent League Training ## Introduction * 動機 * MARL(多智能鞏固學習)中的異構多智能鞏固學習(HMARL)是一個重要但尚未被廣泛研究的問題。 * HMARL環境問題 * 現實世界的多樣性:真實世界中存在許多不同類型的智能體,它們需要協作完成各種任務。 * 性能優化:在一個異構系統中,不同類型的智能體可能具有不同的能力和特點。 * 現有研究主要集中在同質環境,而真實世界中許多情況需要多種類型的智能體進行合作學習。 * 目的: * 提出一個通用的異構強化學習算法,用於多類型、多智能鞏固學習團隊的合作學習。 * 解決現有MARL研究中對於異構智能體合作問題的隱含解決方法的不足。 * 方法: * 介紹了異構MARL任務的描述,包括智能體、動作、環境狀態等概念。 * 引入了聯盟訓練方法,作為解決異構智能體合作問題的一種策略,並且以AlphaStar為例進行了解釋。 * 結果: * 提出了Heterogeneous League Training (HLT)作為一個通用的異構MARL算法,用於解決多智能鞏固學習中的合作問題。 * 展示了HLT在解決策略版本迭代問題方面的優越性能和有效性。 ## Related works * Calvo和Dusparic [2018] 以及 Fard和Selmic [2022] 的研究,這些研究探討了異構MARL在特定領域中的應用,如交通控制、醫療信息處理和控制系統。 * 作者提到了一些旨在解決異構智能體合作問題的 MARL 方法,如 Rashid等人 [2018, 2020] 的研究。這些方法隱含地解決了異構智能體合作問題,但沒有專門區分它們與同質問題。 * 介紹了 AlphaStar 中的聯盟訓練方法,這是一種先使用監督式學習從人類專家的數據中訓練智能體,然後利用強化學習來進一步優化智能體的方法。這種方法使得智能體能夠學習適應和強大的策略,以應對不斷發展的對手策略。 ## Preliminaries ### Heterogeneous MARL 以下為 heterogeneous MARL 任務的基本元素 ![image](https://hackmd.io/_uploads/S1s0rPeCp.png) A 為 agent 的集合 N = |A| U 所有 agent 可以執行的動作集合 S 為環境狀態的集合 P_t 是 transition function r 是 team reward γ 是 discount factor Δ = {δ_1, ... , δ_n_j}是 agent type 的集合 n_j = |Δ| 所有的 agent a_i 都會屬於一種type中, Type(a_i) = δ_j, n_j << N ### League Training in AlphaStar 此外,作者還介紹了 AlphaStar 中的聯盟訓練方法。該方法通過監督式學習從人類專家的數據中訓練智能體,然後利用強化學習進一步優化智能體的策略。這種方法使得智能體能夠學習適應和強大的策略,以應對不斷發展的對手策略。 ## Heterogeneous League Training **1. Motivation and Features** HLT 有兩個目標 * 利用異質系統的特點,促進協作。 * 解決現實世界自動化系統的策略版本迭代問題。 *Motivation* 在異構團隊中,不同類型的智能體數量可能會有相當大的差異。 由RL算法收集的情節樣本可以為具有大量智能體的類型(T+)提供低變異的經驗。另一方面,一些具有相對較少智能體的類型(T-)接受高變異的經驗。當T-智能體無法跟上T+智能體的步伐時,學習過程變得不穩定。 此外,T+智能體傾向於放棄依賴T-智能體,而是發展出排除T-智能體協助的非合作策略。 * 方法 合作聯盟訓練技術可以通過鼓勵智能體根據其隊友的獨特特點採取不同的合作策略來解決學習不穩定性問題。 合作聯盟訓練提供了一個環境,智能體在其中被訓練與具有不同合作偏好的異構隊友合作。 *Distinctive features of HLT* 我們提出了一種合作聯盟訓練算法,旨在促進異構智能體之間的合作。作為對比,AlphaStar是一個對抗性多智能鞏固聯盟訓練算法的例子,其中智能體被訓練來競爭。 AlphaStar聯盟模型需要分佈式伺服器和TPU來執行並行比賽。但是我們的算法只需要一台單機和一個單獨的GPU來執行整個訓練過程。為了實現這一點,我們基於異構系統的特點重新設計了聯盟訓練的流程。 **2. Overall Framework of HLT** HLT 使用 *Actors and Critic* 架構和 *Centralized-Training-Decentralized-Execution (CTDE)* * ***先決條件*** 假設 Heterogeneous 團隊中的所有 agent 都事先了解其隊友的類型身分。 同個 type 的 actor 的參數是共享的, 然而, **不同 type 的 agent 可以自由選擇使用參數共享或 independent networks** 作者使用 Policy group 表示所有heterogeneous team 的策略 ![image](https://hackmd.io/_uploads/B1dtuWWAa.png) 每一個 agent type 表示為 δ_1, ... , δ_n_j 為了減少訓練時的運算成本, 作者初始化和優化一個動態學習策略組, 策略組 π_f 稱之為 ***frontier policy group***, 或 ***frontier***. HLT model使用一個名為 League L 的策略池存取歷史策略. ![image](https://hackmd.io/_uploads/ByQuAZbAT.png) 上圖所示, 在訓練過程中, 一系列過去的策略會間歇性的離開 frontier, 並加入 league. 進到 league 後, 該策略的網路參數就會被凍結. |L|表示 league 中策略組總數. ![image](https://hackmd.io/_uploads/Ska71M-Ap.png) 雖然 HLT中有不同組的策略網路, 但在整個訓練過程中只有一個 critic 網路. 如圖1所示, HLT 算法首先初始化 random frontier policies π_f 和一個 empty league. 每當完成一個策略優化迭代後, frontier就會經由 league filiter 做評估, 確定是否有納入 league. **3. Training with Mired Policy Groups** ![image](https://hackmd.io/_uploads/Bk45ifZCa.png) 如圖 2 所示, frontier 策略組不只可以與自身合作, 也可以在學習過程中訪問 league 策略進行合作. 在訓練過程中, heterogeneous team 使用混和策略群組 π_mix, 它是 frontier 和 league 策略的混和, 在每個 training episode 會有兩個 samplers 用於生成π_mix. 首先, league sampler 會隨機的生成一個 policy combination C_sel. 這個 combination 要麼是 frontier-past C_sel = (π_f, π_(p,l)), 要麼是 frontier-frontier C_sel = (π_f, π_f). 這兩中之間的平衡由 參數 p_f ∈ [0, 1) 調整: ![image](https://hackmd.io/_uploads/B1_KNFZRT.png) where |L| > 0 and p_f < 1. 當 league 為空(|L| = 0), 則 league sampler 只會輸出 C_sel = (π_f, π_f). 當 p_f = 0, sampler 會避免 pure frontier combinations, 而總是採樣一個 league 中的策略到 C_sel. 當 p_f ≈ 1, sampler 請向排除 league 中的策略. 接著, C_sel 會被 combination sampler 接受, 以確定最終每個 agnet 要執行的策略. 如圖 2 所示, 每種 type 的 策略被選到的機率相同: ![image](https://hackmd.io/_uploads/SyUbjY-0p.png) 最後, 令 δ_t combination sampler 選擇的agent type. 所以團隊執行的混和策略 π_mix 表示為 ![image](https://hackmd.io/_uploads/SyXI-cZCT.png) ![image](https://hackmd.io/_uploads/HJ8T-9bCT.png) 這個混和策略只對一個 episode 有效, 然後 league sampler 和 commbination sampler 可以產生一 batch 不同 π_mix 並行運行. 重複這個過程來蒐集一批用於 frontier 策略優化的事件. 使用這些事件去計算策略梯度, 優化每種 agnet type 的 frontier 策略. **4. League Member Management**