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的效果要好