Modeling Others using Oneself in Multi-Agent Reinforcement Learning

ICML-18的文章,前幾天我自己想的方法,就是對敵方和己方分別應用一個goal目標,只是我一直在考慮怎麼從state中抽離出兩個goal,而這篇文章思路的確很新奇,但是也有很明顯的侷限性。

老習慣,先上環境:

文章一共給了三個環境,第一個是coin,第二個是recipe,第三個是door

我先一個一個介紹環境設置,第一個環境是一個合作性質的環境

reward的設置:

有兩個agent a1和a2,他們會分別在環境中手機不同顏色的硬幣,每個agent收集一種顏色的硬幣,環境中一共有三種顏色的硬幣,每個agent會隨機給定一種顏色的硬幣,當agent收集到不屬於他們中任何一個人所需要的硬幣時,將會受到懲罰。

8*8的格子,每局最多走20步。

這個環境想要最大化reward,就要同時收集自己的和隊友的,也就是說需要agent能夠推斷出隊友需要的顏色。

第二個環境是一個競爭性質的遊戲,給定配方需要的東西,然後分別去收集(配方由三種原料構成)

原料中有兩種是相同的,而環境中這種原料最多有兩個,也就是說其中一個人收集到了,另一個人就收集不到,我們需要根據對方的行動推測出對方的配方組成。

第三個是一個合作性質的環境,只有當其中一個agent站在閥門上,環境纔會打開門,讓另一個agent進入從而獲得reward,每行動一次會有一個懲罰。

算法:

整體算法如上,我們每次採取行動的的時候,都需要首先給自己一個goal,這個goal是基本固定的,其中self和other使用的是同一個網絡,爲的是能讓自己站在對方的角度,看到自己當前的狀態和goal怎麼做出決策。

之前我看的文章,都是從一個state-action pair去推斷z,然後這個z能夠引導state在此時做出正確的決策a。也就是forward的

,而本文是將z當做輸入,隨機初始化一個(均勻分佈)然後反向優化這個z,也就是說這個z是一個優化的目標,每次自己做完決策後,然後進入推斷階段,推斷階段整體參數不優化,只優化z other,這裏面應該是描述錯誤,那個loss應該是和其他智能體真正的動作作監督學習,我找了半天在其中一個版本中有詳細的描述,好幾個版本描述模糊。所以這個算法其實是這個樣子的,他每次先讓別人採取一個動作,然後再反向推斷,如下文描述。

缺陷:

一:優化的z other的時候,整體的參數是不變的,但是問題就出在這個觀察其他人先動,在很多時候,其實是沒有這個條件的,就是先看別人做動作是做不到的,拿上一次的動作和state應該更科學一些。從這個地方出發,對比階段,其他算法也並沒有獲得其他agent的動作,而該算法獲得了。對比實驗上不充分。

二:需要明確規定goal,這本身在很多遊戲中就是不可能的,也就是說限制了應用環境。

三:goal有點弱,也就是goal是一定的,我的目標是收集紅色,那麼輸入可能就是[1,0,0],但是事實上,agent的goal應該是不斷變化的,當前狀態下想要到達的狀態。

四:耗時,推斷階段十分的耗時。

看一下結果:

TRUE-OTHER-GOAL (TOG): 該算法,提供了正確的goal,不用去估計goal了,我每次都給你

NO-OTHER-MODEL (NOM):本文算法,去掉推斷z other的階段,砍掉z other

INTEGRATED-POLICY-PREDICTOR (IPP),該算法,從NOM出發,但是多一個輸出層,也就是預測其他agent的action

SEPARATE-POLICY-PREDICTOR (SPP),該算法主要是對下面的式子進行延伸,也就是說我們當前的策略應該是基於對手策略

這是DQN,所以這個是決策模型,也是value模型

原文有多重結構,說兩個,第一個很明顯,輸入自己的state和對手的state,第二個,用一些 Mixture-of-Experts,可以理解是,對(可能)不同對手預先學好的若干個expert Q functions,然後同樣地,抽對手的特徵來學一個權重,用這個權重,結合expert functions來得到最終的Q function。

在本文主要是把DQN的原算法應用到AC中,把policy 和 opponent model拆開,對手模型部隊根據交叉熵建模,輸入state和自己的goal(注意是自己的,不是對手真實的goal,因爲不知道對手的goal),輸出下一步採取的action,同時輸出循環神經網絡的hidden state 作爲policy net的輸入用於決策自己agent的action。(個人感覺沒必要加入那個自己的goal,沒啥用,甚至是個干擾)

Coin上的結果,第一個設計的比較有意思,看看agent能不能讀懂goal的意思。

TOG是效果最好的,紅色和藍色分別代表合作的agent應該收集的coin,綠色是不應該收集的。

TOG的優化目標就是收集儘可能多的自己需要的顏色,這個upper bound。個人認爲是兩個模型同時在競爭,因此在後面的幾個算法中才會出現一個競爭不過另一個,而本文的算法可以逐步理解自己應該收集的正確顏色,通過不斷的推斷目標的goal,和自己的goal,來明確goal的含義

第二個遊戲的對比更簡單粗暴,直接競爭,看看誰強,一目瞭然。

最後還有一個door,好像所有算法都work,我沒注意看細節,之後用到在看。本文算法只是收斂快一點

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章