A Deep Bayesian Policy Reuse Approach Against Non-Stationary Agents

NIPS18的一篇文章,來分析一下。

首先這篇文章主要的思路:

 

我先介紹一下這個算法的實驗環境,實驗環境先行:

 

一共包括上面三個實驗環境,第一個是兩個agent合作分別達到自己的綠色區域G,當兩個agent發生碰撞就會被懲罰,其中agent 0相當於有若干個定死的策略,他會隨機採用這幾個策略來進行遊戲,agent o不會根據你的行動而改變自己的行爲。

第二個環境是兩個agent合作渠道相同的綠色區域G,agent設置同上

第三個環境是A需要組織O把球推入G內,理解爲足球,當處於一個格子內,球會互換。同樣agent是定死的,被搶了球對面agent也不會有什麼特殊的反應。

下面是算法:

 

介紹一下算法的具體流程,整體思想就是自己有一個策略池子,池子裏面有很多策略,這些策略都是針對固定的對手策略訓練好的。一開始池子裏面沒有策略。首先先訓練一個策略,給池子裏面加一個策略以及該策略對應的對手。

假設對面沒有更換策略,還是以往的策略,因爲是online的檢測,因此是需要打一會才能發現對手是不是使用了新的策略,我們用剛剛學到的唯一一個策略與該對手進行博弈(應該是根據B選,但是隻有一個策略,所以沒得選),然後得到一輪的獎勵,根據這一輪的co-action以及reward來更新下面這個

信念網絡,其中p是一個根據神經網絡擬合的網絡,這個網絡的損失函數定義爲:

其中P根據該網絡定義爲

可以理解爲一個rollout中每一步s通過該網絡輸出加起來取平均值

拿新的交互數據,訓練該網絡,並計算p,代表與之前的相似度,避免reward相同時,沒有區分度的問題。

不斷更新B,知道移動平均(需要設置滑動窗口)reward低於某個閾值,此時進入到學習新策略階段

在學習策略階段,首先使用策略蒸餾方法將策略池內的所有方法都進行蒸餾,然後取前幾層,後面的幾層隨機初始化,然後用

DQN的方式進行策略訓練,知道獲得一個效果很好的模型,然後更新策略池(包括對手,可以理解爲index,新對手序號+1),

同時更新P,這裏說一下我對P的理解:

第一種,每個對手池中的策略對應一個對手,同時對應一個對手網絡

每次遇到新對手的交互信息,都傳入各個網絡中,計算kl

第二種,每個對手池中的策略對應一個對手,同時對應一個對手策略的高維表徵

就一個網絡,見誰擬合誰,對手就存一個高維表徵。

具體哪一種我也不清楚。文章並沒有什麼細節。

 

這篇論文最大的問題,就是環境簡單,對比實驗感覺做的不充足,沒有和其他的對手建模的方法比,但是這個算法是on line的這一點倒是不大一樣,但是還是沒有對比,只是和BPR比了一下。再有就是實驗環境太簡單,對手可以認爲是固定的,raw pixel也比較牽強。總結來說是在BPR+上面增加了一個對手建模網絡,同時使用了策略蒸餾,一個三種方法融合起來的方法。

 

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