---
# System prepended metadata

title: 多智能體強化學習

---

# 2.3 多智能體強化學習

**前導：**
網路智能管控的很多應用場景已經超出了單智能體的學習範圍, 因此考慮多智能體來學習這些場景.

但由於智能體可以同時和環境和其他智能體互動, 所以整個學習過程會比較複雜. 若在多智能體的系統中, 使用單智能體的算法, 稱之為***去中心化學習者方法***. 這個方法會使馬爾可夫屬性無效, 因為環境因為多個智能體的策略同時進行變得不穩定. 但為了可伸縮性, 在實踐中仍常常使用去中心化學習者方法.
![image](https://hackmd.io/_uploads/r1seZOS2T.png)

接著會以主要4個點去做討論
1. **獨立強化學習及其湧現行為分析**
    其研究重點在於如何使獨立個體之間產生協作共贏的策略.
2. **學習通訊**
    只能體可以通訊某種通信協議共享各自的資訊. 智能體間學習如何交流從某種億相當於智能體之間自發地產生一種語言.
3. **學習合作**
    智能體需要在純合作或混和場景中進行交互, 通過不同的回報值設計或新網路結構進行輔助設計來解決特定問題
4. **智能體建模**
    對智能體進行建模不僅有助於合作, 還有助於推斷目標, 並考慮其他智能體的學習行為
    
#### 2.3.1 獨立強化學習和其湧現行為分析
***湧現***意指複雜系統在自我組織過程中, 所產生的各種新奇且清晰的結構、圖案和特性.

而在多智能體強化學習領域中, ***湧現行為***是指互相之間存在相互作用的簡單智能體, 自發地產生複雜的合作行為.

在智能網路管控場景中, 獨立的DRL智能體將基於最大化個人的累積獎勵以進行學習, 但受限於人為的獎勵設置局限性, 可能導致***智能體獎勵***最大化與***網路表現***最大化之間的兩難困境.

文獻[**[22]**](https://proceedings.neurips.cc/paper/2018/hash/7fea637fd6d02b8f0adf6f7dc36aed93-Abstract.html)介紹了引入人類社會中的不公平厭惡偏好, 以解決社會困境的方法, 公式如下
![image](https://hackmd.io/_uploads/HkkLg6S2a.png)

其中, U_i代表智能體 i 的偏好收益, N為智能體個數, α 和 β 為不平等厭惡偏好超參數, 接著在時遇上擴展後得
![image](https://hackmd.io/_uploads/HJT676H3p.png)
e 為時域平滑回報函數, ![image](https://hackmd.io/_uploads/SJYxVaBna.png)

α 能透過提供時間上正確的內在獎勵解決某些時域連續的社會難題, 不需要特定的回報函數. β 的行為通過設計將回報函數引入多智能體輔助通信系統中, 並在基於多智能體方法的路徑規劃問題中得到當前最優結果.

此外, 還有兩種方法可以解決多智能體問題

1. ***密集的探索性獎勵***
    也就是在智能體學習初期會更多的探索, 隨時間探索的獎勵會減少, 而競爭性環境的獎勵會變多, 這樣在多智能體場景中, 可以幫助智能體產生正獎勵的隨機動作出現的可能性.
2. ***對競爭者採樣***
    所有智能體策略都和競爭者同時演化, 因此在訓練過程中, 可能會遇到競爭力較弱的一方輕易的被打敗, 這樣會使較弱的一方無法學到相同的熟練策略. 所以可以在訓練期間對智能體的對手採樣舊參數, 從而訓練出更穩定和強大的策略. 
    
#### 2.3.2 多智能體通信
為了最大化智能體間的共享效用, 需要利用通信協議共享解決任務所需的信息. 

可區分主體間學習算法(Dierentiable Inter-Agent Learning, DIAL)基於DRQN框架, 是一種集中學習分佈式執行算法. 除了動作空間中每個對應的 Q 值, 還輸出通信信息, 改信息和環境狀態在下一時間步中將作為其他智能體的 Q 網路輸入
![image](https://hackmd.io/_uploads/rJ31B0Snp.png)
o_t 是智能體在t時刻對狀態的觀察, u_t 是智能體的動作

離散/正則化單元(Discretise/Regularise Unit, DRU)為 DIAL 算法提供通信反饋機制, 發送端不僅能與接受端進行通信, 還能收到接收端的反饋.

在集中學習過程中, Q 網路輸出連續信息m_1, DRU 將其正則化, DRU(m_1) = Logistic(N(m_1, σ)), 其中 σ 為噪音.

在分散式執行時, DRU 將信息離散化, DRU(m_1)=I{m_1>0}. 其中 I 為指示函數.

若是面對完全/部分合作問題, 設計通信神經網路(Communication Neural Net, CommNet)使智能體在訓練時同時學習策略並進行通信, 來提升智能體間的合作.
![image](https://hackmd.io/_uploads/SJJ_DRHhT.png)
CommNet 在通信神經網路內部設立廣播通信信到來互相傳遞內部信息. 

上圖右邊中間兩層的通信過程, 1. 將錢一時刻的隱藏狀態 h_j^i 作為輸入傳輸到下一個處理模塊中; 2.在廣播通信信道中, 先蒐集前一時刻得到的h_j^i, 通過信道傳輸到每一個智能體的信息為 c_j^i=sum_(j'!=j)h_j'^j/(N-1).

#### 2.3.3 多智能體合作機制

這裡引入新的神經網路結構, 更好的擬合群體的長期累積收益函數

1. ***經驗回放池改進***
![image](https://hackmd.io/_uploads/Hku1AlL2a.png)

以上是標準的DAN體系結構和經驗回放池(Experience Replay Memory, ERM). 通常要使ERM正常工作, 訓練數據需要遵循某些假設(數據獨立同分布). 但由於環境的多智能體性質, 隨著訓練策略的演進, ERM中保存的生成數據難以反映當前策略的性質, 也就是經驗過時了.

以下有兩種實現穩定經驗回放的方法：1.**重要性抽樣**, 將多智能體的聯合動作概率納入採樣過程, 可自然地減弱數據過時的影響; 2. **指紋標記**, 使用可以標示每個智能體樣本新舊程度的價值函數. 

以下為寬大深度 Q 網路(Lenient-DQN, LDQN)應用在多智能體的架構, 用於解決智能體並行更新策略所導致的數據過時的問題. 
![image](https://hackmd.io/_uploads/BkajlbIn6.png)

該算法將每個"狀態-動作"對映射到一個衰減的溫度值, 該溫度值控制負面策略更新寬大處理量. 在抽樣時, 溫度值用於確定寬大處理條件, 如果不滿足則忽略這個樣本.

2. ***集中訓練分佈執行***

Gupta等人提出了基於參數服務器的參數共享練方式, 作為同類多智能體環境中改善學習的一種方式. 文獻[33]採取中心是的訓練方式和分布式執行框架, 促使各個智能體之間共享神經網路參數. 

在多智能體環境中使用標準策略梯度方法會產生較大的誤差, 原因是所有智能體的回報都取決於其他智能體的行為, 這使得回報與狀態動作之間的關聯性的誤差進一步增加. 

因此作者提出了 MADDPG 算法, 集中式訓練智能體的評價網路(critic), 藉由critic感知所有智能體的策略, 消除多智能體併發學習導致的環境非平穩. 該方法中, 所有actor只能獲取本地信息, 但經驗池紀錄所有智能體的經驗. 實驗表明, MADDPG優於分佈式DQN, DDPG, TRPO.

基於策略梯度的另一種方法式***反事實多智能體***(Counterfactual Multi-Agent, COMA)策略梯度. 該算法可以指導如何在僅具有全局獎勵的情況下, 推斷每個智能體的貢獻. 其想法是計算單一智能體選擇動作時, 其他智能體的動作固定. 然後比較當前Q值和反事實基準, 計算出優勢函數. 
這個算法不會受到非平穩性的困擾, 但擴展性會受到限制. 

***Q值混和***(QMIX)基於因式分解的思想, 假定多智能體的集體Q函數不是單個智能體的Q函數的加總, 而是以非線性方式組合局部值的混和網路, 該網路可以表示單調作用的值函數. 即使已經有良好的實驗結果, 仍然存在如何使用因式分解來很好的處理複雜的協調問題, 以及如何學習這些因式分解過程. 

#### 2.3.4 多智能體建模與策略推斷

智能體能通過對智能體本身建模, 來進一步推理其他智能體的行為. 深層增強對手網路(Deep Reinforement Opponent Network, DRON)使用了深層神經網路對智能體建模. 
![image](https://hackmd.io/_uploads/BysdMGU26.png)

其中一個神經網路用於估計 Q 值, 第二個則是用於學習對手策略的表徵, 兩個神經網路聯合起來可以得到對對手策略π^0估計下的 Q 函數![image](https://hackmd.io/_uploads/S1-k4M82a.png), 用來預測狀態s_t, 動作a_t時的Q值. DRON 由多個專家模塊組成, 每個專家模塊可以輸出一個當前狀態下可以獲得的 Q 值的預測值 Q_k, 對應地捕獲一種類型的對手策略, 而預設模塊可以根據對手隱含狀態地估計, 輸出一組權重用以組合多個專家模塊的結果. 
在多任務模式下, 還可以引如額外監督信息來幫助估計對手策略.
![image](https://hackmd.io/_uploads/ByznNfI36.png)

***深層策略推斷 Q 網路***(Deep Policy Inference Q-Network, DPIQN)和其循環版本(Deep Policy Inference Recurrent Q-Network, DPIRQN)直接從其他智能體的原始觀察中學習策略特徵. 

通過輔助任務提供地額外學習目標幫助策略特徵地學習. 輔助任務會在損失函數中加一個輔助損失函數. 即, 推斷對手策略與真實對手策略的交叉熵, 如果當前智能體的 Q 函數取決於對手的策略特徵, 可以減少環境的不穩定性. 

輔助損失函數的優點是, 智能體可以對競爭者和合作隊友的策略進行建模.

以上方法都是通過觀察來學習對手的策略, 但環境的部分可觀測性所導致的信息不完全性為智能體對對手策略的學習帶來新的挑戰. 

所以這裡提出了一種通過觀察自己的策略行為來預測其他人的策略. ***Self Other-Modeling***, SOM使用兩個網路, 一個是自己的策略網路, 另一個是推斷對手的目標(獎勵函數). 假定這些網路具有相同類型的輸入參數, 但具體的輸入不同. SOM 專注估計對手的優化目標, 以得到更為魯棒的策略. 

但以上都沒有明確考慮其他智能體的預期學習, ***學習具有對手學習意識***(Learning with Opponent-Learning Awareness, LOLA)的目標. 對手更新策略, LOLA 會優化預期收益, 也就會直接影響其他智能體的策略更新, 以最大化其自身的報酬. 
![image](https://hackmd.io/_uploads/BkXAYGIhT.png)

θ^1為當前智能體的策略參數, θ^2為對手的策略參數, V^1為當前智能體的值函數, V^2為對手的, δ 和 η 分別為一階, 二階梯度的更新不常, i 代表迭代次數, ![image](https://hackmd.io/_uploads/r1RPcMU2T.png) 是當前智能體的LOLA更新規則.

LOLA 的假設之一是可以方問對手的策略參數, 通過預測對手的策略參數更新, 以學習最佳響應, 最終目的是預測對手的下一步.