參考文章:萬字長文:詳解多智能體強化學習的基礎和應用 、多智能體強化學習入門(一)——基礎知識與博弈
推薦文章:多智能體強化學習路線圖 (MARL Roadmap)
推薦綜述論文:An Overview of Multi-Agent Reinforcement Learning from Game Theoretical Perspective
參考書籍:《深度強化學習學科前沿與實戰應用》
多智能體強化學習(Multi-agent RL簡稱MARL),是由RL和多智能體系統結合而成的新領域,多智能體系統起源于分布式人工智能,分布式人工智能的研究目標是創建描述自然和社會系統的精確概念模型,研究內容是分布式問題求解(Distributed Problem Solving,DPS)和多智能體系統,核心是把系統分成若干智能,自治的子系統,它們在物理和地理上可以分散,可以獨立執行任務,同時又可以相互通信,相互協調,共同完成任務,因此,和傳統的人工智能研究相比,多智能體系統不僅考慮個體的智能程度,更多的是整個系統的自主性,社會性等,多智能體環境下具有代表性的演算法是OpenAI研究團隊提出的MADDPG,在后面會有專門的講解,
目前的作業主要關注以下兩方面的研究:
- 穩定性,要求系統能收斂到均衡態,因此所有的智能體策略都要收斂到協調平衡的狀態,最常用的是Nash均衡,
- 適應性,要求當其它智能體改變策略是,系統的表現保持不變或者更加優異,在一般情況下適應性由定義的目標最優、兼容性或者安全性等形式表達,
簡介
MARL是指一組具有自我控制能力、能夠相互作用的智能體,在同一環境下通過感知器、執行器操作,進而形成完全合作性、完全競爭性或者混合型別的多智能體系統,每個多智能體的獎勵都會受到其他智能體動作的影響,因此,如何學習一種策略使得系統達到均衡穩態是該多智能體系統的目標,
納什均衡
在矩陣博弈中,如果聯結策略
(
π
1
?
,
.
.
.
,
π
n
?
)
(\pi_1^*,...,\pi_n^*)
(π1??,...,πn??)滿足
V
i
(
π
1
?
,
.
.
.
,
π
i
?
,
π
n
?
)
≥
V
i
(
π
1
,
.
.
.
,
π
i
,
π
n
)
,
?
π
i
∈
Π
i
,
i
=
1
,
.
.
.
,
n
V_i(\pi_1^*,...,\pi_i^*,\pi_n^*) \geq V_i(\pi_1,...,\pi_i,\pi_n) , \forall \pi_i \in \Pi_i,i = 1,...,n
Vi?(π1??,...,πi??,πn??)≥Vi?(π1?,...,πi?,πn?),?πi?∈Πi?,i=1,...,n
則為一個納什均衡,總體來說,納什均衡就是一個所有智能體的聯結策略,在納什均衡處,對于所有智能體而言都不能在僅改變自身策略的情況下,來獲得更大的獎勵,
完全合作型
完全合作性的MARL系統中,認為系統的最大獎勵需要智能體的相互協調才能獲得,但當每個智能體都不清楚其他人選擇的動作的情況下,得到的獎勵都存在不確定性,會造成整個系統的收斂困難和隨機性,相反在已知其他智能體的選擇的前提下 ,智能體很容易就能學習到最高的獎勵,
完全競爭型
完全競爭型的MARL中,一般采用最大最小化原則,即無論對方采取任何行動,智能體本身總是采取使自己受益最大的動作,最優策略就是無論對手如何選擇,雙方都應選擇競爭,這樣雙方獲得的獎勵加起來才能實作最大化,
混合型別
這種型別的RL一般針對靜態任務,直接對每個智能體應用單智能體的RL演算法,不需要了解其他智能體的動作,所以各自更新獨立的Q函式,如果甲乙需要處理AB兩個檔案,顯然同時處理不同的檔案能夠節省時間,當甲乙做各自的更新表時,雙方同時處理一個檔案的獎勵為0,但處理在各自的Q值表中,自己處理B檔案自己得到的獎勵是最高的,

馬爾科夫博弈
在單智能體中RL可以用MDP來描述,而MARL需要馬爾科夫博弈來描述,又稱隨機博弈(stochastic game),包含兩個概念,首先是多智能體系統的狀態符合馬爾科夫性,即下一個狀態只與向前時刻有關,與前面的時刻無關,第二,博弈描述的是多智能體之間的關系,
馬爾科夫博弈描述了多智能體系統,這里定義一個元組:
(
N
,
S
,
a
1
,
a
2
,
.
.
.
,
a
N
,
T
,
γ
,
r
1
,
.
.
.
,
r
N
)
(N,S,a_1,a_2,...,a_N,T,\gamma,r_1,...,r_N)
(N,S,a1?,a2?,...,aN?,T,γ,r1?,...,rN?)
其中N是智能體個數,S是系統狀態,一般是多智能體的聯合狀態,例如合一是所有智能體的坐標,
a
1
,
a
2
,
.
.
.
,
a
N
a_1,a_2,...,a_N
a1?,a2?,...,aN?為智能體的動作集合,T為狀態轉移函式,
T
:
S
?
a
1
?
.
.
.
?
a
N
?
S
T:S * a_1*... * a_N * S
T:S?a1??...?aN??S,
r i ( s , a 1 , . . . , a N , s ′ ) r_i(s,a_1,...,a_N,s') ri?(s,a1?,...,aN?,s′)表示智能體在s狀態時執行聯合動作后再狀態s’得到的獎勵 r i r_i ri?,當每個智能體獎勵函式一致時,智能體之間是合作關系,獎勵函式相反時,智能體之間是競爭關系,獎勵函式介于兩者直接是混合關系,
優勢與挑戰
多智能體學習的優勢是可以通過不同智能體之間共享經驗,從而更快、更好地完成任務,當一個智能體出現故障時,其他智能體可以代替執行任務,提高系統的魯棒性,當系統需要提高擴展性時,可以隨時引入新的智能體,
同時MARL面臨的挑戰是隨著狀態、動作和智能體數目的增加,系統的計算復雜度也指數增長,并且難以定義學習目標,無法做到單獨最大化某個智能體的獎勵,其次,系統難以收斂到一個最優解,所有的智能體都是在一個不斷變化的環節中同時學習,最后的策略會隨著其他智能體策略的改變而改變,最后導致探索程序更加復雜,因此探索程序不能只滿足獲取環境資訊,還需要其他智能體的資訊,以此相互適應,但有不能過度探索,否則會打破整個系統的平衡,影響其他智能體的策略學習,
部分可見馬爾科夫決策程序(POMDP)
在馬爾科夫決策程序(簡稱MDP)中,一個重要前提是智能體對環境的觀察是完整的,而現實中的智能體往往只能觀察到部分資訊,比如很多情況下難以獲取系統的精確狀態,另外就是智能體的傳感器只能覆寫整個環境的一小部分,針對上述問題,部分可見馬爾科夫決策程序(簡稱POMDP)這個更接近現實世界的模型被提出,這可以看作MDP的擴展,
通常,我們采用一個七元組 ( S , A , T , R , O , Z , γ ) (S,A,T,R,O,Z,\gamma) (S,A,T,R,O,Z,γ)來描述POMDP,其中S、A、T、R、γ和MDP的定義一致,另外有:
O:一組觀察結果集,比如機器人傳感器獲得的環境資訊,在MDP中由于完全了解系統狀態,O=S,在POMDP中觀察僅在概率上取決于潛在的環境資訊,因為在不同的環境狀態中可以得到相同的觀察,因此確定智能體所處的狀態變得困難,
Z:
S
?
A
→
Δ
(
O
)
S * A \rightarrow \Delta (O)
S?A→Δ(O)是一個觀察函式,表明系統狀態和觀察值之間的關系,具體是在智能體在執行動作a進入環境狀態s’后得到觀察者的概率,
Z
(
s
′
,
a
,
o
′
)
=
P
r
(
O
t
+
1
=
o
′
∣
S
t
+
1
=
s
′
,
A
t
=
a
)
Z(s',a,o') = P_r(O^{t+1} = o'|S^{t+1}=s',A^t = a)
Z(s′,a,o′)=Pr?(Ot+1=o′∣St+1=s′,At=a)
現在整體一下流程:在時刻t,環境處于狀態s,智能體采取動作a,根據狀態轉移方程
T
(
s
′
∣
s
,
a
)
T(s'|s,a)
T(s′∣s,a)進入環境狀態s’,同時智能體獲得觀察值o,這取決于概率$Z(o’|s’,a)
,
最
后
智
能
體
得
到
獎
勵
,最后智能體得到獎勵
,最后智能體得到獎勵r = r(s,a)$,目標是使智能體在每個時間步選擇的動作能夠最大化未來的折扣獎勵,
在POMDP中,智能體不能確信自己所處的狀態,因此決策的基礎是當前所處狀態的概率,智能體需要得到觀測值來更新自己對當前所處狀態的可信度,“資訊收集”的動作可以讓智能體先運動到鄰近的位置,這個位置收集的資訊可能加大智能體對自己所處狀態的可信度,雖然無法得知狀態,但是可以通過觀察和動作的歷史來決策,t時刻的觀察和動作的歷史定義為:
h
t
=
(
a
0
,
o
1
,
.
.
.
,
o
t
?
1
,
a
t
?
1
,
o
t
)
h_t = (a_0,o_1,...,o_{t-1},a_{t-1},o_t)
ht?=(a0?,o1?,...,ot?1?,at?1?,ot?)
為了采用較短的歷史代替所有的觀察和行為,引入了信念狀態
b
(
s
)
b(s)
b(s)的概念,表示對當前所處狀態的可信度,
b
t
(
s
)
=
P
r
(
s
∣
h
t
)
b_t(s) = P_r(s|h_t)
bt?(s)=Pr?(s∣ht?)
Sondik證明
b
t
(
s
)
b_t(s)
bt?(s)是對歷史
h
t
h_t
ht?的充分估計,在所有狀態上維護一個概率分布與維護一個完整歷史提供同樣的資訊,這樣就能轉化為基于信念空間狀態的馬爾科夫鏈來求解,因此POMDP問題的求解轉化為求解信念狀態函式和策略問題,
- 信念狀態函式 B ( s ) : O ? A ? B ( s ) → B ( s ) B(s) :O * A * B(s) \rightarrow B(s) B(s):O?A?B(s)→B(s)
- 策略π: B ( s ) → A B(s) \rightarrow A B(s)→A
隨著信念空間的引入,POMDP問題就可以看成是Belief MDP問題,尋求一種最優策略將當前信念狀態隱射到智能體的動作上,根據當前信念狀態和行為就可以決定下一周期的信念狀態和行為,Belief MDP通常被描述為四元組 < B , A , T b , r b > <B,A,T^b,r^b> <B,A,Tb,rb>,具體如下:
- B : B = Δ ( S ) B:B = \Delta (S) B:B=Δ(S)是一系列連續的狀態空間
- A:動作空間,和POMDP的定義一致,
- T b : B ? A → B T_b:B * A \rightarrow B Tb?:B?A→B,狀態轉移函式,推導如下:
T b ( b , a , b ′ ) = P r ( b ′ ∣ b , a ) = ∑ o ∈ O P r ( b ′ ∣ a , b , o ) P r ( o ∣ a , b ) = ∑ o ∈ O P r ( b ′ ∣ a , b , o ) ∑ s ′ ∈ S Z ( s ′ , a , o ) ∑ s ∈ S T ( s , a , s ′ ) b ( s ) T_b (b,a,b') = P_r (b'|b,a) = \sum_{o \in O} P_r (b'|a,b,o) P_r(o|a,b) \\ = \sum_{o \in O} P_r (b'|a,b,o) \sum_{s' \in S} Z(s',a,o) \sum_{s \in S} T(s,a,s') b(s) Tb?(b,a,b′)=Pr?(b′∣b,a)=o∈O∑?Pr?(b′∣a,b,o)Pr?(o∣a,b)=o∈O∑?Pr?(b′∣a,b,o)s′∈S∑?Z(s′,a,o)s∈S∑?T(s,a,s′)b(s)
P r ( b ′ ∣ a , b , o ) = { 1 , b o a = b ′ 0 , b o a ≠ b ′ (1) P_r (b'|a,b,o)= \begin{cases} 1,\quad b_o^a = b'\\ 0, \quad b_o^a \neq b' \end{cases} \tag{1} Pr?(b′∣a,b,o)={1,boa?=b′0,boa??=b′?(1)
信念度的更新可以表示為:
b
o
a
(
s
′
)
=
Z
(
s
′
,
a
,
o
)
∑
s
∈
S
T
(
s
,
a
,
s
′
)
b
(
s
)
P
r
(
o
∣
a
,
b
)
b_o^a (s') = \frac{Z(s',a,o) \sum_{s \in S} T(s,a,s')b(s)}{P_r(o|a,b)}
boa?(s′)=Pr?(o∣a,b)Z(s′,a,o)∑s∈S?T(s,a,s′)b(s)?
之后POMDP的最優策略的選擇和值函式的構建可以類似普通的MDP決策進行,在Belief MDP下,一般定義值函式為
V
t
+
1
(
b
)
=
max
?
a
∈
A
[
r
b
(
b
,
a
)
+
γ
∑
b
′
∈
B
T
b
(
b
,
a
,
b
′
)
V
t
(
b
′
)
]
V_{t+1}(b) = \max_{a \in A} [r^b(b,a) + \gamma \sum_{b' \in B} T^b(b,a,b')V_t(b')]
Vt+1?(b)=a∈Amax?[rb(b,a)+γb′∈B∑?Tb(b,a,b′)Vt?(b′)]
根據原始POMDP,有:
V
t
+
1
(
b
)
=
max
?
a
∈
A
[
∑
s
∈
S
b
(
s
)
r
(
s
,
a
)
+
γ
∑
o
∈
O
P
r
(
o
∣
a
,
b
)
V
t
(
b
o
a
)
]
V_{t+1}(b) = \max_{a \in A} [\sum_{s \in S}b(s) r(s,a) + \gamma \sum_{o \in O} P_r(o|a,b)V_t(b_o^a)]
Vt+1?(b)=a∈Amax?[s∈S∑?b(s)r(s,a)+γo∈O∑?Pr?(o∣a,b)Vt?(boa?)]
P r ( o ∣ a , b ) = ∑ s ′ ∈ S Z ( s ′ , a , o ) ∑ s ∈ S T ( s ′ ∣ s , a ) b ( s ) P_r(o|a,b) = \sum_{s' \in S} Z(s',a,o) \sum_{s \in S} T(s'|s,a)b(s) Pr?(o∣a,b)=s′∈S∑?Z(s′,a,o)s∈S∑?T(s′∣s,a)b(s)
π t + 1 ( b ) = a r g m a x a ∈ A [ ∑ s ∈ S b ( s ) r ( s , a ) + γ ∑ o ∈ O P r ( o ∣ a , b ) V t ( b o a ) ] \pi_{t+1}(b) = argmax_{a \in A} [\sum_{s \in S} b(s) r(s,a) + \gamma \sum_{o \in O} P_r(o|a,b) V_t(b_o^a)] πt+1?(b)=argmaxa∈A?[s∈S∑?b(s)r(s,a)+γo∈O∑?Pr?(o∣a,b)Vt?(boa?)]
目前對POMDP演算法的研究主要分為精確演算法和近似演算法,兩者都使用了基于信念狀態的模型,表示系統實際處于每個狀態的概率,
由于POMDP模型可以更加真實反映客觀世界的模型,對環境,動作和觀察的不確定性有進行良好的建模,POMDP被應用到機器人路徑規劃、機器人導航、用戶興趣獲取、對話系統等領域,這些領域要求盡量避免人體直接接觸,需要依靠機器人進行操作,而在放射性廢物回收,深海探礦、管道網路的檢修和維護也非常符合POMDP模型,
在智能體面臨行動產生結果的不確定性和實際狀態的不確定性是,可以使用POMDP,例如最小化機器使用費用,最大化生產能力,道路檢測管理,電網出現故障需要快速找到故障并排除,還可以應用到醫療診斷的問題上,通過病人的病癥確定治療方案,在軍事領域,應用有移動目標的查找、跟蹤、拯救,目標的辨認、武器的使用和分配等,
基于值函式的多智能體強化學習
1. 基于DQN
在多智能體協作的問題和研究中,相對主流的方法是2016年提出的CommNet和DLAL(RIAL),基于兩者發展出的最新方法是2017年提出的BiCNet,它在個體行為上使用了DDPG代替DQN,群體鏈接中采用了雙向回圈網路取代單向網路,
2.增強智能體間學習
增強智能體間學習(Reinforced Inter-Agent Learning,RIAL)首先提出一組需要通信的多智能體,然后為這些智能體指定環境引數和學習演算法,最后分析智能體如何學習通信協議,所有智能體有共同目標,雖然沒有智能體可以觀察底層的馬爾科夫狀態,但是每個智能體都接收到于該狀態相關的觀察,因此RIAL所考慮的任務是完全合作的,部分可觀察的,順序的多智能體決策問題,因此必須學習通信協議,學習時帶寬不受限制,在執行程序中,智能體只能通過有限帶寬的通道進行通信,
RIAL使用的是DRQN(Deep Recurrent Q-Network)解區域分可觀測問題,它不是用前饋網路近似 Q ( s , a ) Q(s,a) Q(s,a),而是使用一個遞回神經網路近似 Q ( o , a ) Q(o,a) Q(o,a),這樣可以保持內部的狀態并隨時間累積觀測值,,可以添加一個額外的輸入 h t ? 1 h_{t-1} ht?1?代表網路的隱藏狀態,產生 Q ( o t , h t ? 1 , a ) Q(o_t,h_{t-1},a) Q(ot?,ht?1?,a),
當多個智能體和部分可觀察性共存時,智能體就有了交流的動機,在沒有預先給出協議的情況下,智能體必須開發并同意這樣的協議解決問題,協議是從行為觀察歷史到訊息序列的映射,智能體還需要協調資訊的發送和解釋,這是非常困難的,
我們定義在RLAL中,每個智能體的Q網路表示為
Q
i
(
o
t
i
,
v
t
?
1
i
′
,
h
t
?
1
i
,
a
i
)
Q^i (o_t^i,v_{t-1}^{i'},h_{t-1}^i,a^i)
Qi(oti?,vt?1i′?,ht?1i?,ai)
h
t
?
1
i
h_{t-1}^i
ht?1i?和
o
t
i
o_t^i
oti?是每個智能體的個體隱藏狀態和換成,i是智能體的索引,
RIAL將網路分成 Q a i Q_a^i Qai?和 Q m i Q_m^i Qmi?分別是環境動作和通信動作的Q值,動作選擇器使用ε-greedy策略分別從動作網路中選擇 a t i a_t^i ati?和 m t i m_t^i mti?,因此網路有|U|+|M|種輸出,
Q a i Q_a^i Qai?和 Q m i Q_m^i Qmi?都使用DQN進行訓練,但不使用經驗復用池,以解釋多個智能體并發學習時出現的額非平穩性,應為它會使經驗過時并具有誤導性,為了考慮部分可觀測性,將智能體采取的動作a和m作為下一個時間步的輸入,
如果智能體之間共享引數,變可以拓展RIAL為集中學習的網路,此變體只學習一個網路,所有智能體都使用這個網路,但智能體仍然可以表現不同,因為它們接收不同的觀察結果,從而演變出不同的隱藏狀態,此外每個智能體都接收自己的索引a作為輸入從而進行個體化,引數共享大大減少了需要學習的引數量,從而加快了學習速度,在引數共享下,智能體學習兩個Q函式 Q a ( o t i , m t ? 1 i ′ , h t ? 1 t ′ , a t ? 1 i , m t ? 1 i , i , a t i ) Q_a(o_t^i,m_{t-1}^{i'},h_{t-1}^{t'},a_{t-1}^i,m_{t-1}^i,i,a_t^i) Qa?(oti?,mt?1i′?,ht?1t′?,at?1i?,mt?1i?,i,ati?)和 Q m ( . ) Q_m(.) Qm?(.),對應動作a和資訊m, a t ? 1 i a_{t-1}^i at?1i?和 m t ? 1 i m_{t-1}^i mt?1i?是上一個動作的輸入, m t ? 1 t ′ m_{t-1}^{t'} mt?1t′?是其他智能體的資訊,


在不考慮引數共享的情況下,每個智能體包含一個RNN,RIAL將其為T時間步長張開,包括一個內部狀態h、一個用于產生任務輸出z的輸入網路,以及一個用于Q值的輸出網路和資訊m,智能體i的輸入被定義為 ( o t i , m t ? 1 i ′ , a t ? 1 i , i ) (o_t^i,m_{t-1}^{i'},a_{t-1}^i,i) (oti?,mt?1i′?,at?1i?,i)的元組,輸入i和 a t ? 1 i a_{t-1}^i at?1i?通過表傳遞, m t ? 1 i ′ m_{t-1}^{i'} mt?1i′?通過一個一層MLP,兩者都產生大小為128的輸出, o t i o_t^i oti?通過任務特定網路處理,產生相同大小的附加輸出,通過這些元素求和產生狀態輸出,具體如下:
z t i = ( T a s k M L P ( o t i ) + M L P [ ∣ M ∣ , 128 ] ( m t ? 1 ) + L o o k u p ( a t ? 1 i ) + L o o k u p ( i ) ) z_t^i = (TaskMLP(o_t^i) + MLP[|M|,128] (m_{t-1})+ Lookup(a_{t-1}^i) + Lookup(i)) zti?=(TaskMLP(oti?)+MLP[∣M∣,128](mt?1?)+Lookup(at?1i?)+Lookup(i))
同時一個BN層用于預處理 m t ? 1 m_{t-1} mt?1?時,網路性能和穩定性可以處理更好,通過具有GRU的2層RNN處理 z t i z_t^i zti?, h 1 , t i = G R U [ 128 , 128 ] ( z t i , h 1 , t ? 1 i ) h_{1,t}^i = GRU[128,128] (z_t^i,h_{1,t-1}^i) h1,ti?=GRU[128,128](zti?,h1,t?1i?),其用于近似智能體的動作觀察歷史,最后頂部GRU層的輸出 h 2 , t i h_{2,t}^i h2,ti?,是通過2層MLP Q t i Q_t^i Qti?, m t i = M L P [ 128 , 128 , ( ∣ U ∣ + ∣ M ∣ ) ] ( h 2 , t i ) m_t^i = MLP[128,128,(|U| + |M|)] (h_{2,t}^i) mti?=MLP[128,128,(∣U∣+∣M∣)](h2,ti?),
class SeitchCNet(nn.Module):
def __init__(self,opt):
self.opt = opt
dropout_rate = opt.model_rnn_dropout_rate or 0
self.rnn = nn.GRU(input_size = opt.model_rnn_size,
hidden_size = opt.model_rnn_size,
num_layers = opt.model_rnn_layers,
dropout = dropout_rate,
batch_first = True)
self.outputs = nn.Sequential()
if dropout_rate > 0:
self.outputs.add_module('dropout1',nn.Dropout(dropout_rate))
self.outputs.add_module('linear1',nn.Linear(opt.model_rnn_size,opt.model_rnn_size))
if opt.model_bn:
self.outputs.add_module('batchnorml',nn.BatchNormld(opt.model_rnn_size))
self.outputs.add_module('relu1',nn.ReLU(inplace = True))
self.outputs.add_module('linear2',nn.Linear(opt.model_rnn_size,opt.game_action_space_total))
def forward(self,o_t,messages,hidden,prev_action,agent_index):
opt = self.opt
o_t = Variable(o_t)
hidden = Variable(o_t)
prev_message = None
if opt.model_dial:
if opt.model_action_aware:
prev_action = Variable(prev_action)
else:
if opt.model_action_aware:
prev_action , prev_message = prev_action
prev_action = Variable(prev_message)
prev_message = Variable(prev_message)
messages = Variable(messages)
agent_index = Variable(agent_index)
z_a, z_o, z_u, z_m = [0] * 4
z_a = self.agent_lookup(agent_index)
z_o = self.state_lookup(o_t)
if opt.model_action_aware:
z_u = self.prev_action_lookup(prev_action)
if prev_message is not None:
z_u += self.prev_message_lookup(prev_message)
z_m = self.messages_mlp(messages.view(-1,self.comm_size))
z = z_a + z_o + z_u + z_m
z = z.unsqueeze(1)
rnn_out, h_out = self.rnn(z,hidden)
outputs = self.outputs(rnn_out[:,-1,:].squeeze())
return h_out, outputs
3.協同多智能體學習的價值分解網路
論文:Value-Decomposition Networks For Cooperative Multi-Agent Learning
協同多智能體學習的價值分解網路(Value-Decomposition Networks,VDN),目的是從團隊獎勵中學習一個最優的線性價值分解,通過代表單個分量價值函式的深度神經網路對總Q梯度進行反向傳播,這種附加價值分解是為了避免獨立智能體出現虛假獎勵,每個智能體學習的隱式值函式值依賴于區域的觀察,因此更容易學習,

在原先的DQN多智能體基礎上,VDN添加了增強功能,左圖顯示了隨著時間的推移,本地觀察如何進入兩個智能體的網路(如圖中所示的三個步驟),通過低線性層進回圈層,然后產生單獨的Q值,右圖的網路說明了價值分解的主要貢獻,VDN產生單獨的“值”,它們相加到用于訓練的聯合Q函式,而動作則獨立于各個輸出而產生,
VDN假設聯合價值函式可以分解為智能體的價值函式:
Q
(
(
h
1
,
h
2
,
.
.
.
,
h
N
)
,
(
a
1
,
a
2
,
.
.
.
a
N
)
)
≈
∑
i
=
1
N
Q
~
(
h
i
,
a
i
)
Q((h^1,h^2,...,h^N),(a^1,a^2,...a^N)) \approx \sum_{i = 1}^N \tilde Q(h^i,a^i)
Q((h1,h2,...,hN),(a1,a2,...aN))≈i=1∑N?Q~?(hi,ai)
其中
Q
~
\tilde Q
Q~?只依賴于每個智能體的本地觀察,通過求和從Q-learning規則中使用聯合獎勵反向傳播來學習
Q
~
\tilde Q
Q~?,即它是隱式學習的,而不是特定于智能體i的任何獎勵中學習的,并且不強制
Q
~
\tilde Q
Q~?是任何特定獎勵的行為價值函式,定義:
Q
π
(
s
,
a
)
=
E
[
∑
t
?
1
∞
γ
t
?
1
r
(
s
t
,
a
t
)
∣
s
t
=
s
,
a
1
=
a
;
π
]
=
E
[
∑
t
?
1
∞
γ
t
?
1
r
1
(
o
t
1
,
a
t
1
)
∣
s
t
=
s
,
a
1
=
a
;
π
]
+
E
[
∑
t
?
1
∞
γ
t
?
1
r
2
(
o
t
2
,
a
t
2
)
∣
s
t
=
s
,
a
1
=
a
;
π
]
=
Q
ˉ
1
π
(
s
,
a
)
+
Q
ˉ
1
π
(
s
,
a
)
Q^{\pi}(s,a) = E[\sum_{t-1}^{\infty} \gamma^{t-1} r(s_t,a_t) | s_t = s,a_1 = a;\pi] \\ = E[\sum_{t-1}^{\infty} \gamma^{t-1} r_1(o_t^1,a_t^1) | s_t = s,a_1 = a;\pi] + E[\sum_{t-1}^{\infty} \gamma^{t-1} r_2(o_t^2,a_t^2) | s_t = s,a_1 = a;\pi] \\ = \bar Q_1^{\pi} (s,a) + \bar Q_1^{\pi} (s,a)
Qπ(s,a)=E[t?1∑∞?γt?1r(st?,at?)∣st?=s,a1?=a;π]=E[t?1∑∞?γt?1r1?(ot1?,at1?)∣st?=s,a1?=a;π]+E[t?1∑∞?γt?1r2?(ot2?,at2?)∣st?=s,a1?=a;π]=Qˉ?1π?(s,a)+Qˉ?1π?(s,a)
如果
(
o
1
,
a
1
)
(o^1,a^1)
(o1,a1)不足以完全建模
Q
ˉ
1
π
(
s
,
a
)
\bar Q_1^{\pi} (s,a)
Qˉ?1π?(s,a),則智能體1可以將來自歷史觀察的資訊儲存在LSTM中,或者從通信信道中的智能體2接收資訊,VDN可以做出預測:
Q
π
(
s
,
a
)
=
Q
ˉ
1
π
(
s
,
a
)
+
Q
ˉ
2
π
(
s
,
a
)
=
Q
~
1
π
(
h
1
,
a
1
)
+
Q
~
2
π
(
h
2
,
a
2
)
Q^{\pi} (s,a) =\bar Q_1^{\pi} (s,a) + \bar Q_2^{\pi} (s,a) = \tilde Q_1^{\pi} (h^1,a^1) + \tilde Q_2^{\pi} (h^2,a^2)
Qπ(s,a)=Qˉ?1π?(s,a)+Qˉ?2π?(s,a)=Q~?1π?(h1,a1)+Q~?2π?(h2,a2)
可能的或VDN結構鼓勵將此分解成更簡單的功能,
VDN是將復雜的學習問題自動分解為更容易學習的區域子問題的一個步驟,此方法可以與權重共享和資訊通道很好地結合在一起,從而是智能體能夠始終最優地解決新的測驗挑戰,在再來的作業中,VDN有希望繼續探討基于非線性值聚合的價值分解研究,
4.多智能體強化學習的穩定經驗復用池
論文原文:Stabilising Experience Replay for Deep Multi-Agent Reinforcement Learning
如何協調經驗復用池于IQL的關系正在成為將深度MARL擴展到更復雜任務的關鍵障礙,MARL穩定經驗復用池包含兩種方法:一是將復用池中的經驗定義為非環境資料,通過使用該元組中的聯合動作的概率來增強復用池中的每條經驗,根據當時使用的策略,稍后元組被采樣用于訓練時,可以計算采樣權重校正,舊資料傾向于較低的重要性權重,因此該方法會自然衰減資料,二是通過讓每個智能體學習一種策略來避免IQL的非穩定性,受hyper Q-learning的啟發,該策略根據觀察其行為推斷出的其他智,能體策略的估計,具體是每個智能體值需要滿足一個低維指紋的條件,該指紋足以消除復用池中采樣經驗原則位置的歧義,
5. 單調值函式分解(QMIX)
QMIX: Monotonic Value Function Factorisation for Deep Multi-Agent Reinforcement Learning
MARL中如何表示和使用動作價值函式使得系統達到一個均衡穩態是多智能體系統的目標,
IQL讓每個智能體單獨定義一個函式 Q a Q_a Qa?,這種方法不能明確表示智能體之間的相互作用,并且可能不會收斂,因為每個智能體的學習都被其他智能體的探索和學習混淆,
另一種是學習一個完全集中式的動作價值函式,即反事實多智能體(counterfactual Multi-Agent COMA),用它來指導actor-critic框架中的分布策略的優化,但需要on-policy學習,導致樣本效率低下,并且存在多個智能體是,訓練完全集中的critic是不切實際的,
因此這里采用了QMIX,和VDN一樣采用集中式分解Q的方法,處于IQL和COMA之間,但可以表示更豐富的動作價值函式,由于VDN的完全因子分解對于獲得分散策略并不是必須的,相反,QMIX只需要確保在Q上執行的全域argmax與在每個Q上執行的一組單獨的argmax引數產生相同的結果,因此,只需要求對
Q
π
Q^{\pi}
Qπ于每個
Q
a
Q_a
Qa?之間存在單調約束,即:
δ
Q
π
δ
Q
a
≥
0
\frac{\delta Q^{\pi}}{\delta Q_a} \geq 0
δQa?δQπ?≥0
不同于VDN簡單的總和,QMIX有代表每個
Q
a
Q_a
Qa?的智能體網路和將它們組合到
Q
π
Q^{\pi}
Qπ中的混合網路組成,以復雜的非線性方式確保集中式和分散式策略之間的一致性,同時,它通過限制混合網路具有正權重來強制執行上式的約束,因此QMIX可以表示復雜的集中式動作價值函式,可以很好擴展智能體數量,并允許通過線性時間的argmax操作輕松得到分散策略,

6.深度強化學習中的對立智能體建模(DRON)
論文原文:Opponent Modeling in Deep Reinforcement Learning
在一些協作或競爭的任務環境中作業的智能體,需要預測其他智能體行為并快速做出決策,對立智能體建模(DRON)的目標是在RL環境中建立一個通用的對手建模框架,是智能體能夠利用各種對手的特質,
DRON在對手的策略中模擬不確定性,而不是將其分類為一組固定組合,DRON根據過去的觀察來學習對手的隱藏表示,并使用隱藏表示來計算自適應回應,此外DRON還提出兩種體系結構,一種使用簡單級聯來組合這兩種模塊,另一種使用基于混合專家網路(mixture-of-expert network)的體系結構,雖然DRON隱含地對對手進行建模,但可以通過多任務處理增加額外的監督,例如采取動作或策略,
7.平均場多智能體強化學習
均值場理論論文:Phase transitions and critical phenomena
平均場Q學習論文:Mean Field Multi-Agent Reinforcement Learning
當大量智能體共存時會由于維度的增大和智能體的互動的指數增長,學習變得困難,聯合學習也會帶來Nash均衡問題,
現在考慮每個智能體都能于一組其他智能體進行互動,通過一系列直接互動,任何一對智能體對在全域范圍內相互聯系,可以使用均質場理論(mean field theory)來解決可擴展性,即智能體群中的相互作用近似于使用來自某個整體智能體的平均效應和單個智能體的相互作用,所以,學習是在兩個物體之間而不是許多物體直接相互增強:單個智能體的最優策略的學習基于智能體的數目動態,同時根據個體策略更新動態數目,基于這樣的想法,提出平均場Q學習(mean field Q-learning)和平均場actor-critic演算法,該演算法分析了解決方案對Nash均衡的收斂性,并且在資源分配、伊辛模型估計(Ising model estimation)和戰斗游戲方面的實驗證明了平均場方法的學習效果,
基于策略的多智能體強化學習
1.基于自身策略的其他智能體行為預測(SOM)
論文:Modeling Others using Oneself in Multi-Agent Reinforcement Learning
2.雙重平均方案(PD-DistlAG)
論文:Multi-Agent Reinforcement Learning via Double Averaging Primal-Dual Optimization
3.多智能體深度強化學習的統一博弈論方法(PRSO)
論文: A Unified Game-Theoretic Approach to Multi-agent Reinforcement Learning
基于AC框架的多智能體強化學習
1. 多智能體深度確定性策略梯度(MADDPG)
論文:Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments
2.多智能體集中規劃的價值函式策略梯度(Dec-POMDP)
論文:Policy Gradient With Value Function Approximation For Collective Multiagent Planning
3.多智能體系統的策略表示學習
論文:Learning Policy Representations in Multiagent Systems
4.部分可觀察環境下的多智能體策略優化
論文:Actor-Critic Policy Optimization in Partially Observable Multiagent Environments
5. 基于聯網智能體的完全去中心化MARL
論文:Fully Decentralized Multi-Agent Reinforcement Learning with Networked Agents
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/336154.html
標籤:AI
上一篇:1024-開啟人工智能學習之旅
