[Paper精讀 | 多智能體強化學習算法:QMIX]

2021-03-02 東秦小站

通過一段時間的論文閱讀,我覺得閱讀必須要有輸出,不然理解的很難深刻,本文借鑑「一文七問」的解讀角度,結合自己調整,將從以下7個角度解讀這篇多智能體領域的經典大作:QMIX(被引293):

背景動機、現有方法及問題、本文提出方法、實驗方法及結果、結論、創新點及相關工作

論文簡介標題

《QMIX: Monotonic Value Function Factorisation for Deep Multi-Agent Reinforcement Learning》

QMIX: 一種多智能體深度強化學習的 單調值函數分解方法

作者

Tabish Rashid 、 Mikayel Samvelyan 、 Christian Schroeder de Witt 、Gregory Farquhar 、Jakob Foerster 、Shimon Whiteson

相關下載

arxiv: QMIX(paper) (https://arxiv.org/abs/1803.11485)

github: Code (https://github.com/oxwhirl/pymarl)

導讀:

單智能體強化學習搭載上深度神經網絡在遊戲、自動駕駛等諸多場景取得了很多大的成功。但是現實生活中多智能體的場景是一個更加有趣的場合,團隊內協作、團隊間競爭的場景是現在很多研究人員關注的問題。

本文就是一篇,如何將強化學習應用到多智能體場景中的經典論文。方法類型是CTDE(集中訓練、分布執行)

在該應用背景下的一個難點就是如何評價agent個人對整體的貢獻,即不讓老實人吃虧,防止「濫竽充數」

本文提出的QMIX算法,就是將所有agent的Q值用一個神經網絡混合起來去表示全局整體的Q值(就是進行了一個非線性組合),同時將額外的狀態信息融合到了計算中。該團隊在StarCraft II平臺上進行了實驗驗證,實驗結果表明,效果和勝率都優於其前輩 -- 2017年deepmind發表的VDN算法(value-decomposition networks for cooperative multi-agent learning)

7個角度展開

1 研究背景(動機)

這篇文章就是想對VDN算法進行一個改進

因為VDN在將每個agent的價值Q混合成整體價值Q-total時,僅僅採用了簡單的累加,這種簡單的線性組合不足以反應出複雜的信息,故本文採用一個MIX混合網絡來近似其非線性關係,使其具有更強的關係表現能力。

2 現有方法及問題

在QMIX前主要是有VDN算法,還有一些其他對比的方法如下

independent Q-learning(IQL-1993) 極端分散思想:不用全局價值,僅使用單個agent的價值學習問題:無法明確表示agent之間的互動影響,也可能無法收斂,因為每個agent的學習環境都被他人的學習影響著,環境就不是靜態的了(DQN等單智能體算法都要求環境是靜態的)counterfactual multi-agent(COMA-2017/2018) 極端集中思想:僅學習和使用一個全局價值,用其去生成每個智能體的策略問題:需要on-policy學習,使得樣本變得低效。而且當智能體數量很少時,很難學習一個the fully centralised criticvalue decomposition networks (VDN-2017) 折中方案思想:每個agent訓練一個Q,並且用其訓練自己policy。再將所有的Q累加和作為整體Q-total,來表示全局的價值問題:VDN簡單的加和限制了全局價值可以表示的複雜度,並且忽略了訓練過程的額外狀態信息3 本文提出的方法

QMIX,和VDN類似也是一種居於IQL和COMA之間的以一種折中方案。

特點: 可以表示更多更複雜的全局值函數。

關鍵貢獻: 不需要對VDN進行完全分解就提取出分布式策略(滿足前提即可)

方法闡述:

基於前提:對全局價值提取最優策略等價於對單個智能體價值提取最優策略式(4),即保證下式(5)成立

QMIX組成:

圖(b),表示了整體結構,流程如下:

agent局部觀測和上一時刻動作 --> agent networks --產生單Q--> mixing network -->全局Q-total

agent networks:每個agent的評價網絡  [圖右(c)]mixing network:將所有agent價值混合起來的網絡  [圖左(a)]QMIX結構圖

QMIX結構詳解

總體就是兩層(與圖a一致) :看下代碼實現,也是非常簡潔(為了閱讀方便省略了調整size的代碼)

# First layer
'''
agent_qs:所有agent的Q值
self.hyper_w_1 = nn.Linear(self.state_dim, self.embed_dim * self.n_agents)
self.hyper_b_1 = nn.Linear(self.state_dim, self.embed_dim)
'''
w1 = th.abs(self.hyper_w_1(states))
b1 = self.hyper_b_1(states)
hidden = F.elu(th.bmm(agent_qs, w1) + b1)
# Second layer
'''
self.hyper_w_final = nn.Linear(self.state_dim, self.embed_dim)
# V(s) 代替最後一層的偏置
self.V = nn.Sequential(nn.Linear(self.state_dim, self.embed_dim),
                       nn.ReLU(),
                       nn.Linear(self.embed_dim, 1))
'''
w_final = th.abs(self.hyper_w_final(states))
v = self.V(states)
y = th.bmm(hidden, w_final) + v
q_tot = y.view(bs, -1, 1)

PS:網絡的參數w、b均由全連接網絡構成(hypernetwork),不是一個簡單變量

對比VDN,這部分僅僅是一個簡單的求和

訓練方法:中心化訓練網絡,降低loss 即可

4 實驗方法及結果小測試:two step game

說明:遊戲總共分兩步

第一步:agent_1選擇一個動作A或B,當選擇動作A時,進入State_2A的獎勵表格,反之進入State_2B,此時agent_2的動作對環境沒有影響

第二步:根據agent_1、agent_2的動作給出表格上的獎勵值

最佳策略:

第一步agent_1選擇動作B,第二步agent-1和agent_2都選擇動作B

實驗結果:

在第二步。QMIX對獎勵值的預測也更加精確(是QMIX能對複雜函數進行表示的一種證明)大測試:StarCraft II

星際爭霸Ⅱ平臺,本是一個即時策略遊戲,於2017年在《 StarCraft II: A New Challenge for Reinforcement Learning》一文中作為一種多智能體合作對抗平臺公布,並且開源在github,後繼成為一種流行的多智能體算法驗證平臺。平臺有很多的人物角色和遊戲場景。本文著重關注遊戲的分布式管理。

使用到的場景有:

單角色場景:3 Marines (3m), 5 Marines (5m), 8 Marines (8m),多角色場景:2 Stalkers and 3 Zealots (2s_3z)3 Stalkers and 5 Zealots (3s_5z)1 Colossus, 3 Stalkers and 5 Zealots (1c_3s_5z)

Marines:陸軍  | Stalkers:追蹤者 | Zealots:狂熱者 | Colossus:巨人

離散動作空間:

move[direction]:direction(東、西、南、北)attack[enemy id]:只能攻擊在輻射範圍內的敵人

評分:

每個時間步,agent收到的聯合價值等於對敵人造成的傷害總值。【殺一個敵人得10分,團滅得200】

每個agent的輸入:

視野範圍內的所有敵人和隊友的以下信息:【 distance, relative x, relative y and unit type】

對方與agent的距離、對方坐標(x,y)、對方的類型(在多角色場景才有)

全局狀態信息:

每個agent的狀態信息:【coordinate, health, shield ,cooldown,allied_last_action]

全局 坐標、生命值、護盾值、冷卻值、隊友們最近一次的動作

註:不同類型的agent的生命值和護盾值不同,所以要設置不同的場景

原算法測試

將QMIX網絡布置到各個訓練場景中訓練,得分為Table7(沒有其他的參照,沒啥用)

與其他的算法效果進行勝率比對,如figure_6,由圖可知

IQL VDN QMIX算法結果對比

 在單角色場景

1)隨著角色的種類和數量的增多,3中算法均有不同程度的性能損失(可見在更加複雜的場景中,算法還任重道遠)

2)VDN和和IQL很難勝任多角色場景,但QMIX仍有比較好的表現

多角色場景

1)agent數量少時較少時(a,b),VDN表現效果不佳,大幅次於QMIX

2)agent數量少時較多時(c),VDN表現效果還好,略次於QMIX

3)IQL算法在多智能體合作場合,表現效果均不太好,可見合作類場景中,agent的相互交流非常有必要

Ablations:控制變量測試

目的:為研究QMIX網絡中 1)額外狀態信息、2)非線性擬合 的必要性,以下採用控制變量法,拿掉相關部分進行實驗來驗證其作用和效果

QMIX-NS:分析extra state information(額外狀態信息的重要性)

方法:拿掉hypernetwork,即權重不用神經網絡而是普通的變量

拿掉綠色框部分,W1,2直接用普通變量代替,所以紅框的額外狀態S也不用輸入到混合網絡中

QMIX-Lin:分析non-linear mixing (非線性混合的重要性)

方法:拿掉混合網絡的hidden layer(隱藏層)

就是去掉兩層mix網絡,用狀態S做一個權重將Q進行累加求和(相當於VDN的一個變式)

VDN-S:分析是狀態和mix網絡的影響誰佔主導地位

方法:直接給VDN累加求和後再加一個和狀態相關的量

模仿QMIX-Lin,將狀態輸入hypernetwork產生一個量,將這個量加和到原來的累加和中去

       結果圖如下,可見1. QMIX的兩種消融(拿掉部分功能)的方案表現均遜於原QMIX,證明了原方案結構的必要性2. 其中QMIX-Lin、VDN-S表現雖然不如QMIX,但是也是有著不錯的效果,可見將額外狀態信息納入考慮是非常有必要的5 結論

QMIX可以使用分解式表示來表示複雜的集中式值函數,該表示式可以很好地縮放代理的數量,並允許使用argmax操作在線性時間內提取分散式策略。

在絕對性能和學習速度方面,QMIX均優於IQL和VDN,特別的,該方法在使用異構代理(heterogeneous agents)的任務上顯示出可觀的性能提升。同時消融實驗也證明了狀態信息條件和Q值混合的必要性。

6 創新點

就是將VDN簡單Q值的相加和改成了用一個MIX網絡,這個網絡有兩個特點

神經網絡的參數由與額外狀態做輸入的hypernetwork生成7 相關工作

多智能體的一個核心問題就是智能體間的通訊,這裡列出一些相關的研究

CommNet:(Sukhbaatar et al., 2016) 使用一種中心化的網絡結構在智能體之間交換信息

BicNet:(Peng et al., 2017) 在AC(actor-critic)架構中,採用bidirectional RNNs在智能體之間傳遞信息

其中經典論文:《Learning multiagent communication with backpropagation》(nips 2016)

上文提及的在完全中心化的工作:

COMA (Foerster et al., 2018) 使用中心的critic去訓練分布式的actors,給每個agent評估一個優勢函數去解決多智能體的credit分配Gupta et al. (2017)對每個agent評價都用一個AC架構單元,可以解決智能體數量太多不易訓練的問題,但同時中心化訓練的優勢也會減少Lowe et al. (2017)給每個智能體都學習一個中心化的critic,並將其成功應用於連續動作空間的多智能體競爭場景上

以上工作均是要用on-policy 的方式實現,這樣可能會導致樣本使用效率低和算法陷入局部最優的問題發生

StarCraftⅡ平臺已經成為一種多智能體算法驗證的基準平臺,以下是已有的相關研究

Usunier et al. (2017) 展示了一種中心化的貪心MDP和一介優化方法Foerster et al. (2017、2018):評估 IQL 在戰鬥場景中的重播穩定方法,最多配備 5 個agent

以上論文:

《Episodic Exploration for Deep Deterministic Policies: An Application to StarCraft Micromanagement Tasks》(ICLR 2017)
《Multiagent Bidirectionally-Coordinated Nets: Emergence of Human-level Coordination in Learning to Play StarCraft Combat Games. a》(arXiv 2017)
《Stabilising Experience Replay for Deep Multi-Agent Reinforcement Learning》(ICML 2017)
《 Counterfactual multi-agent policy gradients》(AAAI 2018)

其他還有在github上發布的已經復現了論文如:IQL 、Qtran(見最前面的code處)

關於hypernnetwork的工作

《HyperNetworks》(ICLR 2017)

相關焦點

  • IJTCS | 分論壇日程:多智能體強化學習
    大會共設7個分論壇,分別對算法博弈論、區塊鏈技術、多智能體強化學習、機器學習理論、量子計算、機器學習與形式化方法和算法與複雜性等領域進行深入探討。本期帶來「多智能體強化學習」分論壇精彩介紹。多智能體強化學習是近年來新興的研究領域,它結合博弈論與深度強化學習,致力於解決複雜狀態、動作空間下的群體智能決策問題,在遊戲AI、工業機器人、社會預測等方面具有廣泛的應用前景。
  • 【萬字總結】基於多智能體強化學習的《星際爭霸II》中大師級水平的技術研究
    我們選擇使用多智能體強化學習算法來解決《星際爭霸》中的挑戰,此算法使用不同聯盟中人類玩家和智能體對戰的遊戲數據建立深層神經網絡,不斷調整策略與對抗策略[5-6],原則上也適用於其他複雜領域。《星際爭霸》是一款實時戰略遊戲,玩家可以在成百上千的控制單位間使高水平經濟決策達到平衡。
  • AlphaGo原來是這樣運行的,一文詳解多智能體強化學習基礎和應用
    機器之心分析師網絡作者:楊旭韻編輯:Joni在這篇綜述性文章中,作者詳盡地介紹了多智能強化學習的理論基礎,並闡述了解決各類多智能問題的經典算法。然後,根據具體應用中智能體之間的關係,將多智能體問題分為完全合作式、完全競爭式、混合關係式三種類型,並簡要闡述解決各類多智能體問題的經典算法。最後,本文列舉深度強化學習在多智能體研究工作中提出的一些方法(multi-agent deep reinforcement learning)。1.
  • AlphaGo原來是這樣運行的,一文詳解多智能體強化學習的基礎和應用
    本文將首先簡要地介紹多智能體強化學習(multi-agent reinforcement learning, MARL)的相關理論基礎,包括問題的定義、問題的建模,以及涉及到的核心思想和概念等。然後,根據具體應用中智能體之間的關係,將多智能體問題分為完全合作式、完全競爭式、混合關係式三種類型,並簡要闡述解決各類多智能體問題的經典算法。
  • 北大NeurIPS19論文提出多智能體強化學習方法FEN
    機器之心報導機器之心編輯部近日,北京大學盧宗青團隊提出了一種新的多智能體強化學習方法 Fair-Efficient Network(FEN,「分」),用於多個智能體學習提升系統效率並同時保持公平。公平有助於人類社會的穩定和生產力的提高,同樣對於多智能體系統也十分重要。然而讓一組智能體學習提升系統效率並同時保持公平是一個複雜的、多目標的、聯合策略優化問題。目前主流的多智能體強化學習算法沒有考慮公平性的問題,一些針對特定情景公平性的方法又依賴專家知識,這對於一般性情景並不適用。
  • 深度強化學習算法與應用研究現狀綜述
    概述了基於值函數和策略梯度的兩類深度強化學習算法,詳細闡述了深度Q網絡、深度策略梯度及相關改進算法的原理,並綜述了深度強化學習在視頻遊戲、導航、多智能體協作以及推薦系統等領域的應用研究進展。最後,對深度強化學習的算法和應用進行展望,針對一些未來的研究方向和研究熱點給出了建議。
  • ICCV 2019 | 曠視研究院推出基於深度強化學習的繪畫智能體
    曠視研究院共有 11 篇接收論文,涵蓋通用物體檢測及數據集、文字檢測與識別、半監督學習、分割算法、視頻分析、影像處理、行人/車輛再識別、AutoML、度量學習、強化學習、元學習等眾多領域。在此之前,曠視研究院將每周介紹一篇 ICCV 2019 接收論文,助力計算機視覺技術的交流與落地。
  • 澳門大學講座教授陳俊龍:從深度強化學習到寬度強化學習:結構,算法...
    在越來越多的複雜現實場景任務中,需要利用深度學習、寬度學習來自動學習大規模輸入數據的抽象表徵,並以此表徵為依據進行自我激勵的強化學習,優化解決問題的策略。深度與寬度強化學習技術在遊戲、機器人控制、參數優化、機器視覺等領域中的成功應用,使其被認為是邁向通用人工智慧的重要途徑。
  • NeurIPS論文解讀|強化學習與自動機器學習(文末贈書)
    強化學習是近年來大放異彩的機器學習技術之一,基於這種技術開發的人工智慧模型已經在圍棋、撲克、視頻遊戲和機器人等領域取得了非常多的裡程碑式的進步。騰訊 AI Lab的 NeurIPS 2019 入選論文中有三篇與強化學習有關,這三篇論文針對不同方向的任務分別提出了兩種不同的新的算法以及一種新的多智能體學習策略。
  • 入門 | 從Q學習到DDPG,一文簡述多種強化學習算法
    強化學習(RL)指的是一種機器學習方法,其中智能體在下一個時間步中收到延遲的獎勵(對前一步動作的評估)。這種方法主要用於雅達利(Atari)、馬裡奧(Mario)等遊戲中,表現與人類相當,甚至超過人類。最近,隨著與神經網絡的結合,這種算法不斷發展,已經能夠解決更複雜的任務,比如鐘擺問題。
  • 多任務深度強化學習綜述
    類似的,多任務學習領域可能有很多方法在SL上適用,在RL上卻不大適用(由於基於梯度和基於動態規劃的部分不兼容性or etc.),這更體現了單拎出多任務強化學習進行更深入探討的必要性。摘要普通RL算法主要專注於學習單任務,這種做法比較data-inefficient,特別當智能體需要與更複雜和豐富的數據環境交互時,普通RL算法在同一環境中跨相關任務的許多場景中的適用性有限。
  • DeepMind 在多智能體強化學習方面又有了新進展,最新成果登上...
    然而,智能體如何在邊界開放、約束動態的環境下學習到知識,並且進行團隊協作仍然是極具挑戰的難題。DeepMind 近年來針對基於種群的多智能體強化學習進行了大量的研究,其最新研究成果近日發表在了國際權威雜誌「Science」上。DeepMind 發博客將這一成果進行了介紹,雷鋒網 AI 科技評論編譯如下。
  • 一文簡述多種強化學習算法,重要概念和術語一覽
    本文簡要介紹了強化學習及其重要概念和術語,並著重介紹了 Q-Learning 算法、SARSA、DQN 和 DDPG 算法。最近,隨著與神經網絡的結合,這種算法不斷發展,已經能夠解決更複雜的任務,比如鐘擺問題。雖然已經有大量的強化學習算法,但似乎並沒有什麼文章對它們進行全面比較。每次需要決定將哪些算法應用於特定的任務時,都讓我很糾結。本文旨在通過簡要討論強化學習的設置來解決這個問題,並簡要介紹一些眾所周知的算法。
  • 【講習班分享】澳門大學講座教授陳俊龍:從深度強化學習到寬度強化學習 - 結構,算法,機遇及挑戰
    陳教授用下圖簡單描述強化學習過程。他介紹道所謂強化學習就是智能體在完成某項任務時,通過動作 A 與環境(environment)進行交互, 在動作 A 和環境的作用下,智能體會產生新的狀態,同時環境會給出一個立即回報。如此循環下去, 經過數次迭代學習後,智能體能最終地學到完成相應任務的最優動作。提到強化學習就不得不提一下 Q-Learning。
  • 學界 | DeepMind提出元梯度強化學習算法,顯著提高大規模深度強化學習應用的性能
    強化學習(RL)的核心目標是優化智能體的回報(累積獎勵)。一般通過預測和控制相結合的方法來實現這一目標。預測的子任務是估計價值函數,即在任何給定狀態下的預期回報。理想情況下,這可以通過朝著真值函數(true value function)的方向不斷更新近似價值函數來實現。控制的子任務是優化智能體選擇動作的策略,以最大化價值函數。理想情況下,策略只會在使真值函數增加的方向上更新。
  • DeepMind提出SPIRAL:使用強化對抗學習,實現會用畫筆的智能體
    近日,DeepMind 發布博客,提出一種結合了對抗訓練和強化學習的智能體 SPIRAL。該智能體可與繪圖程序互動,在數位畫布上畫畫、改變筆觸的大小、用力和顏色,並像街頭藝人一樣畫畫。這與最近的研究《A Neural Representation of Sketch Drawings》恰恰相反,後者目前仍依賴於從人類演示中學習,是一個時間密集型的過程。DeepMind 設計了一種深度強化學習智能體,該智能體可與計算機繪圖程序(http://mypaint.org/)互動,在數位畫布上畫畫、改變筆觸的大小、用力和顏色。
  • 智能決策論壇系列解讀 | 深度強化學習理論和算法
    其中深度強化學習理論和算法是本次論壇的熱點話題之一,吸引了許多學者的關注。智能體在與環境的交互中根據獲得的獎勵或懲罰不斷學習新知識,進而更加適應環境。深度強化學習的範式非常類似於我們人類學習知識的過程,也正因此,深度強化學習被視為實現通用AI的重要途徑。深度強化學習將具有環境「感知」能力的深度學習和具有策略「決策」能力的強化學習融合,形成能夠直接處理高維複雜信息作為輸入的優化決策方法。
  • MADDPG:基於DDPG的多智能體深度強化學習算法
    DDPG:深度確定性策略梯度算法的多智能體強化學習框架。算法架構模型由多個DDPG網絡組成,每個網絡學習policy π (Actor) 和 action value Q (Critic);同時具有target network,用於Q-learning的off-policy
  • OpenAI實習生提出分層強化學習新算法
    OpenAI 開發了一個分層強化學習算法,它通過學習高級動作以完成一系列任務,比如快速完成需要數千時間步的任務。OpenAI 把算法應用到導航問題時,發現了一組向不同方向步行和爬行的高級動作,這能幫助智能體快速掌握導航任務。人類通過把複雜的挑戰分解為小的、可掌控的部分來解決問題。
  • 集合三大類無模型強化學習算法,BAIR開源RL代碼庫rlpyt
    選自BAIR作者:Adam Stooke機器之心編譯參與:魔王、張倩近日,BAIR 開源強化學習研究代碼庫 rlpyt,首次包含三大類無模型強化學習算法,並提出一種新型數據結構。2013 年有研究者提出使用深度強化學習玩遊戲,之後不久深度強化學習又被應用於模擬機器人控制,自此以後大量新算法層出不窮。其中大部分屬於無模型算法,共分為三類:深度 Q 學習(DQN)、策略梯度和 Q 值策略梯度(QPG)。由於它們依賴不同的學習機制、解決不同(但有重合)的控制問題、處理不同屬性的動作集(離散或連續),因此這三類算法沿著不同的研究路線發展。