Decoupling Exploration and Exploitation for Meta-Reinforcement Learning without Sacrifices


發表時間:2021(ICML 2021)
文章要點:這篇文章想說,通常強化學習算法exploration和exploitation都是混在一起的,既探索環境的dynamics,同時也利用探索到的信息來提升策略。但是要想更好的更新策略,就需要好的探索來收集任務相關的信息;要想得到更好的探索策略,就需要基於當前學到的策略還指導探索。所以這就有一個chicken-and-egg problem,也就是漢語裏面常說的雞生蛋,蛋生雞的問題。作者提出DREAM(Decoupling exploration and ExploitAtion in Meta-RL)算法,將exploration和exploitation兩個過程分開考慮。首先定義exploration policy \(π^{exp}\),exploitation policy \(π^{task}\),然後exploration policy就在探索的episodes用,exploitation policy就在利用的episodes用。具體做法就是,先用exploration policy執行一個episode得到一條探索軌跡

然後接下來的N個episodes就用exploitation policy,基於這個探索軌跡,來最大化return

注意這裏的\(\mu\)是任務ID,相當於不同的任務都會有一個不同的ID來識別。
接下來的問題就是怎麼去學這兩個策略。首先學exploitation policy的時候,作者先搞了一個encoder

這個encoder的作用,作者說是爲了從任務ID \(\mu\)裏提取出和任務相關的信息,扔掉任務無關的信息。這裏作者又扯了一下information bottleneck,其實不用管。更新的目標爲

這裏的I就是作者說的information bottleneck,其實在用的時候就是一個l2的正則項

下面subject to的式子就是讓return在這個情況下達到optimal。真正優化的時候其實是優化

這個式子用來更新encoder和exploitation policy。然後exploration policy的更新,就去最大化任務ID和exploration policy採的軌跡的互信息

這裏的z就是任務ID \(\mu\)經過encoder得到的。作者就想說,這個時候z包含的信息就是任務相關的了,那我的exploration policy要乾的事情就是探索和這個任務相關的軌跡,所以目標函數就是最大化這兩的互信息。具體更新的時候就是式子(4)裏那個,最大化variational lower bound。然後兩個policy最大化的目標都有了,剩下的就是用RL去做這個事情。文章裏用的double DQN去更新。算法僞代碼如下

總結:文章主要想說把exploration和exploitation拆開,然後做meta-RL的訓練。整個過程感覺有點道理,但是又沒明白爲啥可以。沒看懂。
疑問:這個強行說這個是meta-RL,感覺和meta關係不大啊,頂多算是考慮了一下RL的泛化性以及few-shot learning?
感覺exploitation policy那裏,information bottleneck到底怎麼保留任務相關信息的,還是不清楚啊。如果只是當成一個正則化項還好理解點,說成discard task-irrelevant information,不明白是怎麼做到的。
Exploration policy那裏,推到最後好像就是去比一下到時間t的軌跡相較於到時間t-1的軌跡,是不是更有可能得到encoder z,但是q又是隨便初始化的一個,和encoder又不一樣,這裏不知道是啥意思。然後作者的解釋是測試的時候,得不到問題ID \(\mu\),所以用這個q去生成z然後代替encoder生成的z。但是問題是q是基於探索策略的軌跡的,探索策略又是基於z去訓練的,繞了一圈又繞回去了呀好像。感覺這中間的邏輯還是沒捋清楚啊。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章