核心問題

研究問題:如何在DRL中引入relational,abstract來提升DRL效果,處理複雜任務,做planning

假設條件:可以將環境編碼成一個二維的輸入,每個區域代表一個entity

主要想法:將relational的關係轉化成attention,利用attention來代表兩個entity的關係。隱式地將relational引入NN結構中

解決方案:將問題編碼成一個二維輸入,然後對於輸入做變換,成為N個entity,對於這N個entity採用multi-head dot-product attention (MHDPA)來表示entity間可能存在的relational,希望透過這個步驟,NN能學出對於實際問題輸入中的entity概念,同時能夠學習出entity間的relational

動機

當前DRL在很多工上都取得很好的效果,通常認為一個原因是:透過NN來learn出一個很好的internal representations來進行policy的表示。但是很多時候訓練DRL需要比較高的成本,比如由於data efficiency的問題,需要比較大量的資料。此外DRL的policy體現出對於環境的overfit的傾向,比如說對於env稍微的修改,整個policy效果衰減嚴重,即可以理解為policy可能並沒有學習出一個對於要解決的問題/env的比較好的抽象刻畫。

既然覺得當前DRL存在上述等一些列問題,那麼是否可以透過讓agent能夠做更高維度的抽象,和學習這些抽象的relational,來加速DRL的學習過程,同時讓policy具有更好泛化性呢?直觀上,邏輯推理能夠比較好的處理抽象entity的關係,其中RL與邏輯推理的結合:Relational RL(RRL)結合了邏輯推理與RL的能力,既然DRL沒有抽象的能力,那麼能不能利用RRL來提升DRL的效果?所以我們可以借用了RRL的insights,希望能夠借鑑RRL中inductive logic programming的效果,學習與重用entity與關係來隱式低做reason和relational representation。

RRL在學習的早期學習出一些實體的概念,比如goal,同時明確state,action的影響,相當於學習這個環境的表示或者資訊,然後利用logical facts/rules relevant來加速學習/解決問題。同時在這個過程中inductive bias能夠限定policy的需求過程,將policy限定在一個好的範圍內,來讓我們獲得一個比較好的policy的表示。所以如果將inductive biases與DRL相結合,透過操作一系列的entity,那麼理論上DRL也可以獲得相應的relational能力。即透過引入inductive biases的結構,希望能夠learning/computing relations的能力。

思路

假設我們能夠把一個entity集合表示成一個二維的形式(類似矩陣),那麼如果我們直接對於這個矩陣做一次卷積計算,可以理解成透過這個卷積來計算相鄰entity(即在二維表示上相近的entity,矩陣中相鄰的元素)的relational(卷積代表了relational的計算方法)。實際上這種形式的relational存在一系列conv的NN中,但是這種形式的relational只考慮了空間上相近的entity,沒有考慮遠的entity。同時在抽象思考時,我們更多是考慮做一件事中entity中前後關係,而不是空間中的關係。所以本質上我們應該計算entity相互之間relational,然後再利用這個資訊來幫助做推理等等。

對於這樣形式的relational,我們可以將其寫成常見的attention的形式。假設已經有計算的entity set,在這個set中可以使用multi-head dot-product attention (MHDPA)來計算interaction。如圖所示:把state vector

 e_i

分解成query

q_i

,key

k_i

, value vector

v_i

。然後對於query用全部的key來計算unnormalized saliencies

s_i

,然後透過softmax轉化成權重

w_i

,然後透過

a_i = \sum_{j=1:N}w_{i,j}v_j

作為attention。寫成矩陣形式即為:

 A = softmax(\frac{QK^T}{\sqrt{d}})V

其中d為dimensionality of the key vectors used as a scaling factor。

如果我們能夠假設entity是二維的一塊區域,所以就是利用這塊區別去發現別的key區域和高度互動的區域。如圖所示:

上下求索---Relational Deep Reinforcement Learning筆記

這樣的假設能夠比較直接地使用在圖片這類非結構的輸入中,並沒有對於內容做特定的假設,所以如果別的資料也可以寫成一個類似圖片等表示,那麼直觀上可以直接使用。我們將上述attention部分稱為attention block,所以採用了一個attention block來計算non-local pairwise relational。如果採用多個blocks(shared或者unshared)相當於計算higher order relations。採用non-local computations與相同的function來在entity空間中計算entity間的關係,相比只考慮local關係,比如conv,那麼能夠獲得更多關於entity的關係。這部分的計算可以很容易的並行化。

Box-World

上下求索---Relational Deep Reinforcement Learning筆記

環境中,暗灰色的方格是agent,agent可以在這個世界中上,下,左,右走。 單獨存在的方格(即除了agent,上下左右均沒有其他的方格的方格)是agent可以撿起來鑰匙,透過這個鑰匙可以開啟一次同種顏色盒子,獲得其中的鑰匙(即為兩個相鄰方格表示,右邊為需要的鑰匙顏色,左邊為開啟這個箱子後可以獲得鑰匙的顏色),最終的目的是為了獲鑽石(白色方塊表示)

這個問題中,鑰匙只能用一次,同時鑰匙,箱子,agent為隨機出現。所以agent必須學習出一條能夠通往鑽石的開箱子的順序,同時必須要能夠將pixel抽象成一個個entity來幫助分析。對於env難度刻畫為:到鑽石的過程中需要開幾個箱子,與這個過程中獲得鑰匙後有幾個備選可以開啟的箱子(一開錯可能就不能通往最終鑽石了)。實際training時設定:需要開箱子的數目可能為:1到4,分叉可能為:0到4。 雖然這個環境小:12x12的pixel room,但是由於遊戲設定的複雜性,所以完成任務需要對於env中entity reasoning和planning。

上下求索---Relational Deep Reinforcement Learning筆記

我們在上面具體的兩個環境中做實驗,發現用了relational都比baseline好,同時更復雜的環境,需要更多次對於relatiolal的迭代,即更多的attention block有更好的效果(4的效果大於2的效果)。

training用了IMPALA,100個actor收集資料,1個learn對這些資料進行學習(learner學習pi與v)

網路結構為:12個2x2的conv kernel,stride為1,relu;24個2x2的conv kernel,stride為1,relu;然後額外拼接上兩個維度:分別是這個cell的x,y(x,y reduce 到

 [-1, 1]

);接variable number個relational module;接feature-wise max-pooling across space,把 k 個 feature reduce 到 k 維向量;然後接一個小的 MLP 到 policy logits 和

V

此外,為了能夠了解具體上每一個row在observation space中關注那一部分。因為我們加了座標,所以可以透過attention來觀測。這邊就只觀察了在通往鑽石路上的每個entity對應的row的attention,其中一個head關注的是這個鎖卡能夠開啟的下一個鎖,另外一個head關注的是agent與這個entity的pair。如圖所示:

上下求索---Relational Deep Reinforcement Learning筆記

進一步為了避免grb空間的影響,這邊替換成one-hot來表示。實際上結論差不多:key關注能夠開的箱子,箱子關注能夠開他的鑰匙,所有entity都關注agent/gem

此外,這邊是為了檢測是否是真的學習到了relational的關係與abstract。如果真的學到了,那麼可以面對新顏色的鑰匙和箱子,應該能夠做推斷來開箱子,同時也可以做更長的規劃。

上下求索---Relational Deep Reinforcement Learning筆記