1. 程式人生 > >Deep Reinforcement Learning Variants ofMulti-Agent Learning Algorithms

Deep Reinforcement Learning Variants ofMulti-Agent Learning Algorithms

這是一個80頁的論文,有效內容70頁,10頁reference。

本篇論文主要介紹了兩個演算法,這篇論文寫自2016年,也就是DQN發表一年後,所以這一年結合深度網路寫rl的文章很多。

下面我們就介紹一下本篇論文。我會摘取一些有用沒用的大家都知道的以前的知識做鋪墊。

這篇文章主要講述了兩種演算法,DRUQN(deep repeated update Q-network )和DLCQN(Deep loosely Coupled Q-Network)

首先 DRUQN是為了解決Q-learning中頻繁更新某些特定的動作-值對導致的效能下降。

        DLCQN嘗試將每次狀態分解為 獨立動作 與  需要與其他Agent協調的動作

本文使用的是乒乓球的環境。首先介紹一下什麼是No-stationarity的環境,多個agent不斷地改變環境,不像再單agent中,agent只需要觀察自己動作的影響,在MARL中,agents需要在相同的環境下相互影響和共同學習的。一個agent不僅要與自己的action管理也要與觀察到的其他agent的動作關聯,同時其他的agent也要開始調整自己的動作,可能造成過去學到的東西現在不在被保留。因此在No-staionarity的環境下,某個動作的潛在效益可能會過時。

在這裡說一下non-stationarity的環境:我的個人理解

比如環境本身是變化的,如reward-function會隨著時間的變化而變化。

一般在單agent中都是stationarity的(reward與轉移都穩定,不在發生變化),而在多agent中則多為non-stationarity(多agent中其他agent的策略發生改變,或者環境發生改變,都可以理解為造成non-stationarity的原因,可以理解為e-greedy策略造成的,也可以理解為在不採用e-greedy的策略的時候,網路的更新造成的,只要有網路的更新,就會對最後的策略造成影響。又比如在AC中,actor採取動作的時候就是根據一個網路,而沒有e-greedy,當他更新這個網路的時候,我們就說從另一個agent的角度,這個agent的策略在發生變化)

Markov Decision Processes

MDP是memoryless和history indepentent的,也就未來的狀態只與當前狀態有關,而與過去發生的所有狀態無關。

當前的狀態被假設足夠用以預測未來的狀態

從一個狀態s轉移到一個新的狀態s‘的概率是

標註每個狀態的reward可以寫為:

為了解決MDP過程,引入了一個狀態值函式,在策略pai的情況下:

最優的v則表示為:

下面就是早期的根據dp發展出來的策略迭代演算法與值迭代演算法:

Partially Observable Markov Decision Processes

MDP假設完全可觀測,也就是說在當前狀態中,可以獲取全部的狀態資訊,用於進行決策。

但是在現實世界中,大部分情況下是不可觀測全部資訊的,因此就有了POMDP

它是MDP的一個擴充套件,

此時決策不能但由當前的state決定,需要包含所有歷史(包括action,reward,obeservation),

因此構建了一個belief state b(s)

這個belief state將會作為滿足MDP屬性的充足的資訊。此時:

這裡很多情況下都需要擬合這個b(s)

Decentralized Markov Decision Processes

Dec-MDP是一個POMDP的擴充套件,在這個framework中,agent可以協調合作等級。利用這個框架,一個agent可以獨立獲取資訊,也可以協作獲取資訊更新,這取決於他們之間需要協作的程度

下面就說到了強化學習了

提到了Q-learning以及Approximating Action value Functions

隨後DQN:

MARL

一個policy是最優的和固定的,當它是最好的政策並且隨著時間,不會發生改變。

在多agent環境中,顯然是不固定的。

Repeated Update Q-learning

我在讀完這個演算法之後,覺得這個演算法不是為了解決多agent下的合作問題的,而是單獨為了解決Overestimation

導致Overestimation的原因是:

或者可以,單純的理解每次都是用max,導致最後的估計會變高。

RUQL的靈感來自於policy bias,因為在Q-learning中只有被多次選中的action-value才會更新

也就是可以說這個值的有效率可以近似於這個state選中這個action的概率。類似於UCB的confidence

這也就強化了某些狀態的傾向。而在Non-stationarity的環境下,這個問題會更加嚴重,因為以前的policy在這一次不一定還可以得到benefice

如果一個agent可以在時間並行執行所有的可能操作,那麼所有操作對應的資訊都可以被同時更新。

因此RUQL就提出了根據選中這一動作的概率來更新值。

早在2010年就有人提出了類似的思路,見演算法(Frequency Adjusted Q-learning)

同時2010年 double Q-learning提出:

2012年 Bias Corrected Q-learning 一個修正項 B被引入,

(其他這些之後不久都會補上文章的)

因此RUQL知識解決了non-statinarity環境中的一個問題,還未涉及到多agent

Loosely Coupled Learning

Agent indenpendence

是一個agent在狀態s採取動作的獨立性,越大,表示可以獨立,而不需要考慮其他的agent

Determining Independence Degree 

一個agent在一個給定state下采取動作的獨立性根據他所收到的負面結果進行調整。

在每個狀態會收到一個負面reward,用一個類高斯擴充套件函式表示上一個state的作用範圍:

衡量在獲得reward之後到達s*之後前一個狀態s的貢獻。

用來衡量state之間的相似性,當state之間相似性高的時候 f 的 值也會變大,這表示狀態s的大量參與導致了負面的影響

重要的是需要辨別哪個state狀態是屬於導致negative reward的狀態軌跡。

通過資格追蹤,信用可以被分給不同的受negative reward影響的州:

是agent  i 在state 的資格追蹤值

是折扣因子,是 delay引數,是狀態軌跡(表示與負面獎勵有關的一系列state)

然後,將擴散函式的結果和資格跟蹤結果組合起來,得到一個ψ基值,表示合作的必要性。

ψ與獨立度成反比,因此(歸一化函式)

獨立度調整演算法:

下面是Coordinated Learning:

當需要協作學習的時候就用到了Dec-MDP了,如果只有兩個agent,那麼

對於agent i 的寫作演算法:

js表示joint state,聯合學習需要用下買你的更新公式:

單個agent學習,用:

下面就是添加了Deep Network的這兩種演算法了

Deep Repeated Update Q-Learning

Deep Loosely Coupled Q-Learning:

最後還做了三個實驗對三種情況進行比較,其中DRUQN的效果總體上最好,DLCQN需要進一步研究(最好是能擬合獨立度)

說說第二個實驗和第三個實驗,第二個實驗室分別用各種方法打乒乓球,保持球不掉落,這裡DRUQN是最好的,而DLCQN最差

第三個實驗室,是分別VS,其中DRUQN和DLCQN都比DQN的效果要好