日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

COMA(二):Counterfactual Multi-Agent Policy Gradients 论文讲解

發布時間:2023/12/4 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 COMA(二):Counterfactual Multi-Agent Policy Gradients 论文讲解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Counterfactual Multi-Agent Policy Gradients

論文鏈接:https://arxiv.org/pdf/1705.08926.pdf

1. 問題提出(解決了什么問題?)


在現實世界中,有非常多的問題需要多個單位之間的“合作”才能完成任務,這就需要學習一種非中心式策略的控制系統,即每個agent有著屬于自己的決策大腦,而非靠擁有全局信息的決策系統下達指令(畢竟有時候全局的信息量過于龐大,并且agent到中心網絡的通信不一定每時每刻都穩定,因此中心式的決策系統很難實現)。因此,該論文提出了一種方法用于學習非中心式的、部分可觀測的多智能體協同的控制策略。
COMA利用全局評價網絡(critic)來評價Q值,利用非全局行為網絡(actor)來決定agent的行為。由于在訓練時使用的是全局網絡進行評價,并且采用參數共享的方式,使得agent能夠在做行為選擇的時候參考其他agent的狀態再做決定,這就加入了“協同”的功能。


2. 介紹

該論文分為以下三個部分:

  • 提出傳統的RL算法在協同任務中不足

若使用傳統的RL算法來解決多智能體的問題,則會存在以下三個不足之處:

  • 輸入的action space應該是所有agent的聯合動作空間(joint action space),這個空間會隨著agent數量增加而增加。
  • 此外,由于部分可觀測性(即單個agent在某一時刻只能觀測到部分環境的信息,無法獲得全局信息,比如一個小兵只能看到視野范圍內的地圖信息,視野外的地圖信息是無法觀測的),使得agent在做決策時只能依照自己當前的部分觀測信息(local observation),沒有與其他agent進行信息共享的能力。
  • 使用聯合動作空間獲得的reward是來自所有agent采取的所有action共同得到的reward,這就很難知道每一個agent的action應該得到的多少子回報,這就是原文中提到的 “Individual Reward Assignment”。
    • COMA中的主要思想

    COMA是一種基于actor-critic的變種方法,其中actor是依照critic評估出來的梯度值進行更新學習的。整個算法共有三個比較核心的思想:

  • 學習過程中會有一個中心式評價網絡, 這個網絡主要用于對actor選擇的決策進行好壞評價以此來教會actor如何做一個好的決策。為什么稱為中心式的網絡?這是因為該網絡可以獲取場景中的全局信息,包括所有agent在這一時刻采取的行為信息觀測信息。但是,單個agent在利用actor做行為選擇時只能依照自身的當前觀測信息和經歷過的歷史信息進行決策,做決策時是無法獲得全局信息的。這種方式被稱為“中心式評價,邊緣式決策”。
  • COMA引入了一個概念叫做 “反事實準則(counterfactual baseline)” ,這個概念是整篇論文的重點。為了解決 Individual Reward Assignment 的問題,反事實準則提出,每個agent應該擁有不同的reward,這樣才能知道在這一次的全局行為決策中單個agent的action貢獻是多少。而單個agent的reward通過兩個值計算得來:當前情況下的全局reward和將該agent行為替換為一個默認行為后的全局reward。可以這樣理解:該回報值其實計算的是Agent aaa采取行為 uuu 會比采取默認行為 cac_aca? 要更好(DaD^aDa > 0)還是更壞(DaD^aDa < 0)。這個特定agent特定動作reward就被稱為counterfactual baseline,COMA使得每一個agent的每一個action都有一個自身的counterfactual baseline。
  • 如上面所說,每一個agent的每一個動作都會有一個counterfactual baseline,如果要計算出所有動作的baseline,就需要把每一個行為替換成 ‘默認行為’ 并與環境互動得到一個reward。當agent數目很多且聯合動作空間很大的時候,這種方法顯然是不可取的。因此,COMA提出:使用中心critic網絡來estimate每一個動作的Q值,來代替與環境交互后得到的reward
    • 驗證場景及其結果分析


    3. 背景

    3.1 數學建模

    論文中將多智能體協同任務想象成一個隨機決策的游戲,這個游戲 GGG 包含以下幾個因素:
    G=<S,U,P,r,Z,O,n,γ>G = <S, U, P, r, Z, O, n, \gamma> G=<S,U,P,r,Z,O,n,γ>
    其中,

    • S→S \quad \rightarrow \quadS 環境狀態集: ?s∈S\forall s \in S?sS.

    • U→U \quad \rightarrow \quadU 所有動作樣本空間:在每一時刻,每個agent采取一個行為 uta∈Uu_t^a \in Uuta?U,并組成聯合動作空間 u∈U\textbf{u} \in UuU.

    • P→P \quad \rightarrow \quadP 狀態轉移函數:根據當前狀態sss和聯合動作空間u\textbf{u}u,計算一時刻狀態s′s'sP(s′∣s,u)P(s'|s, \textbf{u})P(ss,u).

    • r→r \quad \rightarrow \quadr 全局回報值:r(s,u)r(s, \textbf{u})r(s,u).

    • Z→Z \quad \rightarrow \quadZ 局部觀測集:單個agent在每一時刻有一個局部觀測 z∈Zz \in ZzZ.

    • O→O \quad \rightarrow \quadO 局部觀測函數:Agent aaa 的局部觀測 zzz 是根據全局環境信息 sss 通過 OOO 函數計算得來,z=O(s,a)z = O(s, a)z=O(s,a).

    • n→n \quad \rightarrow \quadn agent的個數,共有 nnn 個.

    • γ→\gamma \quad \rightarrow \quadγ 折扣因子,用于指定計算未來回報時的衰減強弱.

    此外,每個agent有一個 action-observation 的歷史記錄 τa\tau^aτa,actor在做決策的時候是基于歷史信息做的決策 πa(ua∣τa)\pi^a(u^a|\tau^a)πa(uaτa). 其實這里基于歷史記錄做決策可以理解為:之前在做update決策網絡參數的時候,是基于之前的歷史信息做的更新,所以用更新后的actor去做決策就可以看作是記住了歷史經驗后做的決策了。

    3.2 基本概念回顧

    這里在回顧一下DQN中的一些基本概念,后續內容會用的到:

    累計回報Rt=∑l=0∞γlrt+lR_t = \sum_{l=0}^\infty{\gamma^lr_{t+l}}Rt?=l=0?γlrt+l?,其中 γ\gammaγ 是折扣因子;
    評價函數分為兩個:對當前狀態的評價函數 Vπ(st)V^\pi(s_t)Vπ(st?),對當前狀態下當前聯合動作空間的評價函數 Qπ(st,ut)Q^\pi(s_t, u_t)Qπ(st?,ut?);
    Vπ(st)=E[Rt∣st]Qπ(st,ut)=E[Rt∣st,ut]V^\pi(s_t) = E[R_t|s_t] \qquad Q^\pi(s_t, \textbf{u}_t) = E[R_t|s_t, \textbf{u}_t] Vπ(st?)=E[Rt?st?]Qπ(st?,ut?)=E[Rt?st?,ut?]
    優勢函數Aπ(st,ut)=Qπ(st,ut)?Vπ(st)A^\pi(s_t, \textbf{u}_t) = Q^\pi(s_t, \textbf{u}_t) - V^\pi(s_t)Aπ(st?,ut?)=Qπ(st?,ut?)?Vπ(st?).

    Policy Gradient :Value-Based中主要使用的更新方法——梯度上升法,梯度 ggg 可以表示為:
    g=∑t=0TRt▽θπlogπ(ut∣st)g = \sum_{t=0}^TR_t\bigtriangledown_{\theta^\pi}log\pi(u_t|s_t) g=t=0T?Rt?θπ?logπ(ut?st?)

    關于Actor-Critic模型:

    AC模型中,actor是根據critic所求得的梯度來進行學習的。因為RtR_tRt?是一個期望值,無法求得精確的值,因此需要用其他的表達式來近似替代RtR_tRt?。替代RtR_tRt?一共有兩種方式:

  • 優勢函數法:使用 Q(st,ut)?b(st)Q(s_t, u_t) - b(s_t)Q(st?,ut?)?b(st?) 來代替 RtR_tRt?,其中 bbb 為一個基準值,用于保證所有action的Q值有正有負,通常可以用 V(st)V(s_t)V(st?) 來代替 bbb 值。也就是用 Qπ(st,ut)?Vπ(st)=A(st,ut)Q^\pi(s_t, u_t) - V^\pi(s_t) = A(s_t, u_t)Qπ(st?,ut?)?Vπ(st?)=A(st?,ut?) 來代替 RtR_tRt?
  • TD法:使用 rt+γV(st+1)?V(st)r_t + \gamma V(s_{t+1}) - V(s_t)rt?+γV(st+1?)?V(st?) 來代替 RtR_tRt?
  • 如何訓練中心評價網絡critic:

    在這篇論文中,作者訓練了一個中心評價網絡fc(?,θc)f^c(·, \theta^c)fc(?,θc),網絡參數為 θc\theta^cθc,使用一種稍微改變了下的TD法進行學習——TD(λ)TD(\lambda)TD(λ)nnn 步的reward值進行綜合來得到一個平均值 Gt(n)=∑l=1nγl?1rt+l+γnfc(?t+n,θc)G_t^{(n)} = \sum_{l=1}^n\gamma^{l-1}r_{t+l} + \gamma^nf^c(·_{t+n}, \theta^c)Gt(n)?=l=1n?γl?1rt+l?+γnfc(?t+n?,θc)。使用梯度下降的方法來更新網絡參數θc\theta^cθcLtL_tLt?表示ttt時刻的損失函數:
    Lt(θc)=(y(λ)?fc(?t,θc))2L_t(\theta^c) = (y^{(\lambda)} - f^c(_{·t}, \theta^c)) ^ 2 Lt?(θc)=(y(λ)?fc(?t?,θc))2
    其中:

    y(λ)=(1?λ)∑n=1∞λn?1Gt(n)Gt(n)=∑l=1nγl?1rt+l+γnfc(?t+n,θc)y^{(\lambda)} = (1-\lambda)\sum_{n=1}^\infty \lambda^{n-1}G_t^{(n)} \\ G_t^{(n)} = \sum_{l=1}^n\gamma^{l-1}r_{t+l} + \gamma^nf^c(·_{t+n}, \theta^c) y(λ)=(1?λ)n=1?λn?1Gt(n)?Gt(n)?=l=1n?γl?1rt+l?+γnfc(?t+n?,θc)

    因此,整個公式也可以表示為:

    Lt(θc)=((1?λ)∑n=1∞λn?1(∑l=1nγl?1rt+l+γnfc(?t+n,θc))?fc(?t,θc))2L_t(\theta^c) = ((1-\lambda)\sum_{n=1}^\infty \lambda^{n-1}(\sum_{l=1}^n\gamma^{l-1}r_{t+l} + \gamma^n {\color{red}f^c(·_{t+n}, \theta^c)}) - f^c(·_{t}, \theta^c)) ^ 2 Lt?(θc)=((1?λ)n=1?λn?1(l=1n?γl?1rt+l?+γnfc(?t+n?,θc))?fc(?t?,θc))2

    Note:公式中一共有兩個 fc(?,θc)f^c(·, \theta^c)fc(?,θc) 網絡,但是前一個fc()f^c()fc()是estimate出來的目標值 y(λ)y^{(\lambda)}y(λ),為了加快模型的收斂速度,第一個的 fc()f^c()fc() 中的θc\theta^cθc 應該被fix住(式子中的紅色部分),若干個steps后再被update,這和target network的思路是一樣的。


    4. 算法分析

    4.1 Independent Actor-Critic

    IAC方法指每一個agent學習一個獨立的actor-critic,在這篇論文中采用參數共享的方法,使得所有agent共用一個actor和一個critic。在學習的時候,critic只能根據agent自身的local observation進行估計值,并且也只能估計該agent的單個動作uau^aua的效用,而不是聯合動作空間u\textbf{u}u的效用。
    論文中對傳統的IAC算法有兩處改變:

  • 在估計V值時,每個 agent 的 critic 估計的是V(τa)V(\tau^a)V(τa),估計的是這個agent歷史action-observation數據的效用值,而不是傳統的當前狀態的效用值V(st)V(s_t)V(st?)VVV評價網絡基于TD(λ)TD(\lambda)TD(λ)方法進行梯度更新,見上面。
  • 在估計Q值時,每個agent的critic估計的是Q(τa,ua)Q(\tau^a, u^a)Q(τa,ua), 也是基于action-observation的歷史數據對當前行為uau^aua進行效用估計。QQQ評價網絡是通過梯度下降優勢函數A(τa,ua)A(\tau^a, u^a)A(τa,ua)來進行學習的,其中優勢函數的定義為:單個動作產生的Q值減去所有動作產生的Q值,即 A(τa,ua)=Q(τa,ua)?V(τa)A(\tau^a, u^a) = Q(\tau^a, u^a) - V(\tau^a)A(τa,ua)=Q(τa,ua)?V(τa)。其中V(τa)V(\tau^a)V(τa)定義為:在已知"動作-觀測"歷史數據下,所有動作產生的效用總和,即V(τa)=∑uaπ(ua∣τa)Q(τa,ua)V(\tau^a) = \sum_{u^a}\pi(u^a|\tau^a)Q(\tau^a, u^a)V(τa)=ua?π(uaτa)Q(τa,ua)
  • IAC的缺陷在于,訓練時只能依據單個agent的局部觀測和單個action的效用評定,這樣很難學出一套好的協同策略。

    4.2 Counterfatual Multi-Agent Policy Gradient

    COMA的主要思想有三個:中心式評價網絡,使用反事實準為每一個行為分配不同的reward值,高效計算每一個不同的reward值,下面對每一個思想進行介紹講解。

    • Center critic

    在IAC算法中,訓練評價網絡時只用到了單個agent的history τa\tau^aτa。既然這個評價網絡只會在訓練的時候使用,那么我們完全可以把全局狀態 sss 輸入用于訓練,若全局觀測不可獲得,則將當前所有agent的"action-observation"的歷史記錄 τ\tauτ代替全局狀態 sss,如下圖所示:

    圖中,每一個Actor都會給出此刻的決策行為 utu_tut?,并且環境也會給出此時環境的全局信息 sts_tst? 以及此刻的回報值 rtr_trt?

    一種很簡單的方式是直接使用TD-Error來進化這個網絡:
    g=▽θπlogπ(u∣τta)(r+γV(st+1)?V(st))g = \bigtriangledown_{\theta_\pi}log\pi(u|\tau_t^a)(r+\gamma V(s_{t+1}) - V(s_t)) g=θπ??logπ(uτta?)(r+γV(st+1?)?V(st?))
    但是,這樣的方法不能解決 Individual Reward Assignment 的問題,因為TD算出來的Reward是一個全局Reward ,無法推算出每一個action的單獨Reward值。為此,論文提出了"反事實準則"。

    • Counterfatual baseline

    反事實準則(Conuterfatual Baseline)允許為不同的action獨立分配一個不同的獨立reward。這個獨立reward DaD^aDa 需要根據當前情況下的全局reward和將該agent行為替換為一個'默認行為'后的全局reward兩個值進行計算,
    Da=r(s,u)?r(s,(u?a,ca))D^a = r(s, \textbf{u}) - r(s, (\textbf{u}^{-a}, c_a)) Da=r(s,u)?r(s,(u?a,ca?))
    其中,u?a\textbf{u}^{-a}u?a 代表聯合動作空間除去當前Agent aaa 這一時刻采取的行為。(u?a,ca)(\textbf{u}^{-a}, c_a)(u?a,ca?) 代表當前Agent aaa 采取"默認行為" cac_aca? 后所有Agent的聯合動作空間。在學習過程中,agent會想辦法最大化回報值 DaD^aDa,這其實就是在想辦法最大化全局的reward r(s,u)r(s, \textbf{u})r(s,u),因為式子的后項跟agent當前采取什么行為是沒有關系的。關于DaD^aDa這個式子可以這樣理解:回報值DaD^aDa其實計算的是Agent aaa采取行為 uuu 會比采取默認行為 cac_aca? 要更好(DaD^aDa > 0)還是更壞(DaD^aDa < 0)
    這個想法是正確的,但是要想計算出每一個動作的DaD^aDa值,就需要將每個動作都替換成默認行為cac_aca?去與環境互動一次得到最終結果,這樣采樣次數會非常多;此外,默認行為的選取也是無法預測的,到底選擇哪一個行為當作默認行為才是最合適的也是比較難決定的。因此,文中提出使用"函數擬合"的方式來計算DaD^aDa

    前面提到,中心評價網絡可以評價一個聯合動作空間 u\textbf{u}u 在一個狀態 sss 下的 QQQ 值。由于默認行為很難定義,于是我們把采取 “默認行為” 得到的效用值近似為采取一個Agent “所有可能行為” 的效用值總和。因此,DaD^aDa 就可以用以下等式進行計算:
    Aa(s,u)=Q(s,u)?∑ua′πa(u′a∣τa)Q(s,(u?a,u′a))A^a(s, \textbf{u}) = Q(s, \textbf{u}) - \sum_{u_a'}\pi^a(u'^a|\tau^a)Q(s, (\textbf{u}^{-a}, u'^a)) Aa(s,u)=Q(s,u)?ua??πa(uaτa)Q(s,(u?a,ua))
    其中,Aa(s,u)A^a(s, \textbf{u})Aa(s,u) 就是 DaD^aDa 的等效近似。

    • Efficient evaluation of baseline

    盡管baseline的方式解決了獨立回報的問題,但是如果要建立一個網絡,接收s,us, \textbf{u}s,u兩個輸入,輸出為所有agent的所有action的話,那么輸出神經元的個數就等于 ∣U∣n|U|^nUn(n個agent有|U|個動作)。當agent數目很多或動作空間很大的時候就會造成輸出層無法實現。為此,COMA構造了一種網絡,該網絡接收 ut?a,st,ota,a,ut?1?a\textbf{u}^{-a}_t, s_t, o_t^a, a, \textbf{u}^{-a}_{t-1}ut?a?,st?,ota?,a,ut?1?a? 等參數,輸出為Agent aaa 每一個action的Q-value值,輸出維度由 ∣U∣n|U|^nUn 降到了 ∣U∣|U|U ,如下圖所示。

    5. 實驗

    5.1 實驗場景

    該論文使用星際爭霸游戲作為實驗場景,讓算法控制的小隊和游戲AI控制的小隊進行對戰,并計算勝率。算法小隊中,每一個作戰單位都由一個去中心式的controller進行控制。為了提升游戲難度,比賽加入了 “部分可觀測” 條件的限制,視野范圍等于攻擊范圍。這意味著當敵人沒有進入攻擊范圍內時,作戰單位是不知道敵人位置信息的,因此agent不僅要學會如何去探索敵方目標,還需要與隊友共享敵方目標的位置信息。為了證明加入 “部分可觀測” 限制后問題變得有多復雜,作者做了實驗對比:當不加入觀測限制時,普通的啟發式算法能夠到達98%的勝率;加入限制后,勝率降到了66%。

    5.2 動作空間及回報值

    每個agent都有著相同的動作空間:{ move[direction],attack[enemy_id],stop,noop }。
    一次Episode下的全局Reward為:對敵人造成的傷害 DeD_eDe? 減去我方受到的傷害 DuD_uDu? 除以2,此外,若擊毀一個敵方單位獲得10點的回報,即:

    R(t)=De?Du2+10nR(t) = D_e - \frac{D_u}{2} + 10n R(t)=De??2Du??+10n
    其中,nnn為摧毀敵方單位數。若有一方將敵方團滅,則獲得的回報值為全隊剩余血量+200。

    5.3 狀態特征

    算法一共有兩個網絡:actor 和 critic。其中actor接收agent的局部觀測信息;critic接收全局狀態信息。

    • 局部觀測信息

    由于作戰單位的視野范圍等于攻擊范圍,因此觀測到的視野是以該單位為中心的一個圓。局部觀測信息是指在視野圓圈內,每一個單位(包括敵方和友方)的以下幾個信息:distance,relative x,relative y,unit type,shield。其中 unit type 是指作戰單位是何種兵種,shield是為了模擬平A的冷卻(因為t切割的很小,每一時刻Agent都有可能選擇平A這個動作,所以在平A還沒有冷卻好的時候,敵方單位會套上一個無敵的盾來抵消這一次平A受到的傷害)。
    疑問:觀測范圍中的單位數量應該是隨時間變化而變化的,但網絡的輸入層神經元應該是固定的,怎么解決變長的問題?(未解決)

    • 全局觀測信息

    全局觀測信息包含了所有單位的relative x,relative y,unit type,shield,healthy point,cooldown信息,其中 relative 的坐標信息是相對據地圖中心的相對坐標,不再是針對于某一個特定目標的坐標。

  • 喂給獨立回報計算網絡(Q-function critic,用于計算單個動作獨立回報)的數據包括全局觀測信息 + 被評估agent此刻局部觀測信息
  • 喂給中心評價網絡(center critic,用于評估全局狀態V(st)V(s_t)V(st?))的數據包括全局觀測信息 + 全部agent此刻局部觀測信息
  • 5.4 實驗結果

    實驗結果如下圖所示,其中3m,5m分別指代一個作戰小隊中包含3個,5個marine(一種兵種);2d_3z指代一個作戰小隊中包含2條龍和3個狂熱者。

    總結

    以上是生活随笔為你收集整理的COMA(二):Counterfactual Multi-Agent Policy Gradients 论文讲解的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。