【3 分層強化學習】DIAYN
DIAYN的全稱是Diversity is All You Need,這篇屬於基於互資訊的skill discovery,是目前比較火的研究方向,這類skill discovery的思路一般是基於某些互資訊的目標函式學到skill的dynamic,或者說是skill與state的分佈,這是在沒有外界reward參與的條件下實現的,然後將這些學好的skill用到其他應用中,比如作為hierarchical RL的下層policy,這篇文章也是這個思路。
思想
本文主要提出了三個觀點:
(1)有用的skill可以用來控制agent訪問到某些state,即透過skill可以推斷出相應的state,並且不同的skill導向的state不同,使得skill具有可分辨性;
(2)透過state,而不是action,來分辨區分skill,因為不影響環境的action是無法被外界觀察到的,舉例來說,一個機械臂抓著一個杯子,把對杯子施加的力作為action的話,如果杯子不移動的話,那我們從外界是看不到這個力作用的影響的,即無法透過這個action推斷skill,但無論如何是可以通過當前抓杯子這個state推斷出這是一個抓杯子的skill;
(3)鼓勵探索以保證skill具有足夠的多樣性,使得不同的skill之間具有可分辨性。
目標函式構造
鑑於上述觀點,目標函式也基於此進行構建,首先最大化第一項
,即最大化skill和state的互資訊,目的是加強skill和state的聯絡,使得透過agent訪問到的state能夠推斷出相應的skill,對應第(1)點;最大化
目的是增加策略的多樣性,對應第(3)點;最小化
以保證是用state而不是action來區分skill,對應第(2)點。
由於
很難求,所以將上式轉化成變分下界的形式,
項透過SAC策略訓練時最大化動作的熵解決了,後面那項直接作為強化問題的pseudo-reward去最佳化policy,這樣agent會在訪問到更容易被區分的state時得到獎勵,同時更新discriminator,使它能更好地透過訪問的state推斷skill。
將目標函式變形為變分下界,再將最佳化原目標變為最佳化下界,同時引入偽reward用於最佳化policy,最終學到skill和state的推斷關係,這是基於互資訊的skill discovery的常用做法。
演算法流程
效果
透過導航類任務結果可以看出,本方法可以學習到具有分辨性的skill,每個skill都和狀態空間中不同方向上的state有對應關係,透過特定的state可以推斷出對應的skill。學好的skill可以直接應用於分層強化和模仿學習。
上一篇:三角區側腦室腦膜瘤手術記