主頁 >  其他 > 多智能體強化學習入門

多智能體強化學習入門

2021-10-26 07:15:16 其他

參考文章:萬字長文:詳解多智能體強化學習的基礎和應用 、多智能體強化學習入門(一)——基礎知識與博弈

推薦文章:多智能體強化學習路線圖 (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 TS?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=oSt+1=s,At=a)
現在整體一下流程:在時刻t,環境處于狀態s,智能體采取動作a,根據狀態轉移方程 T ( s ′ ∣ s , a ) T(s'|s,a) T(ss,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?(sht?)
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) BB=Δ(S)是一系列連續的狀態空間
  • A:動作空間,和POMDP的定義一致,
  • T b : B ? A → B T_b:B * A \rightarrow B Tb?B?AB,狀態轉移函式,推導如下:

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?(bb,a)=oO?Pr?(ba,b,o)Pr?(oa,b)=oO?Pr?(ba,b,o)sS?Z(s,a,o)sS?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?(ba,b,o)={1,boa?=b0,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?(oa,b)Z(s,a,o)sS?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)=aAmax?[rb(b,a)+γbB?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)=aAmax?[sS?b(s)r(s,a)+γoO?Pr?(oa,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?(oa,b)=sS?Z(s,a,o)sS?T(ss,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)=argmaxaA?[sS?b(s)r(s,a)+γoO?Pr?(oa,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=1N?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-開啟人工智能學習之旅

下一篇:plt.savefig()的用法以及保存路徑

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more