上下求索---Relational Deep Reinforcement Learning筆記
來自專欄 DRL滄海拾遺
核心問題
- 研究問題:如何在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 分解成query ,key , value vector 。然後對於query用全部的key來計算unnormalized saliencies ,然後通過softmax轉化成權重 ,然後通過 作為attention。寫成矩陣形式即為:
其中d為dimensionality of the key vectors used as a scaling factor。
如果我們能夠假設entity是二維的一塊區域,所以就是利用這塊區別去發現別的key區域和高度交互的區域。如圖所示:
這樣的假設能夠比較直接地使用在圖片這類非結構的輸入中,並沒有對於內容做特定的假設,所以如果別的數據也可以寫成一個類似圖片等表示,那麼直觀上可以直接使用。我們將上述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
環境中,暗灰色的方格是agent,agent可以在這個世界中上,下,左,右走。 單獨存在的方格(即除了agent,上下左右均沒有其他的方格的方格)是agent可以撿起來鑰匙,通過這個鑰匙可以開啟一次同種顏色盒子,獲得其中的鑰匙(即為兩個相鄰方格表示,右邊為需要的鑰匙顏色,左邊為開啟這個箱子後可以獲得鑰匙的顏色),最終的目的是為了獲鑽石(白色方塊表示)
這個問題中,鑰匙只能用一次,同時鑰匙,箱子,agent為隨機出現。所以agent必須學習出一條能夠通往鑽石的開箱子的順序,同時必須要能夠將pixel抽象成一個個entity來幫助分析。對於env難度刻畫為:到鑽石的過程中需要開幾個箱子,與這個過程中獲得鑰匙後有幾個備選可以打開的箱子(一開錯可能就不能通往最終鑽石了)。實際training時設置:需要開箱子的數目可能為:1到4,分叉可能為:0到4。 雖然這個環境小:12x12的pixel room,但是由於遊戲設置的複雜性,所以完成任務需要對於env中entity reasoning和planning。
我們在上面具體的兩個環境中做實驗,發現用了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 到 );接variable number個relational module;接feature-wise max-pooling across space,把 k 個 feature reduce 到 k 維向量;然後接一個小的 MLP 到 policy logits 和
此外,為了能夠了解具體上每一個row在observation space中關注那一部分。因為我們加了坐標,所以可以通過attention來觀測。這邊就只觀察了在通往鑽石路上的每個entity對應的row的attention,其中一個head關注的是這個鎖卡能夠開啟的下一個鎖,另外一個head關注的是agent與這個entity的pair。如圖所示:
進一步為了避免grb空間的影響,這邊替換成one-hot來表示。實際上結論差不多:key關注能夠開的箱子,箱子關注能夠開他的鑰匙,所有entity都關注agent/gem
此外,這邊是為了檢測是否是真的學習到了relational的關係與abstract。如果真的學到了,那麼可以面對新顏色的鑰匙和箱子,應該能夠做推斷來開箱子,同時也可以做更長的規劃。
推薦閱讀:
※緩解cold start--Deep Q-learning from Demonstrations筆記
※【一文打盡 ICLR 2018】9大演講,DeepMind、谷歌最新乾貨搶鮮看
※再說深度學習是黑匣子,就把這篇文章糊 Ta 臉上
TAG:強化學習ReinforcementLearning | 深度學習DeepLearning | DeepMind |