NEVER GIVE UP: LEARNING DIRECTED EXPLORATION STRATEGIES


發表時間:2020(ICLR 2020)
文章要點:這篇文章的思路是運用distributed RL的形式,基於intrinsic reward,並行多個agent,將exploration策略和exploitation策略分開單獨訓練,這樣可以設置一族探索程度不同的exploration策略,從而提高探索效率。這裏的intrinsic reward分爲per-episode和life-long。Episodic novelty就是鼓勵agent在一個episode裏訪問新的狀態,而lifelong novelty鼓勵agent訪問整個訓練過程中遇到的新狀態。這裏的意思相當於說,如果在episode 1,agent訪問過某個狀態了,對於episode 2來說,episodic novelty還是會認爲這個狀態是個新狀態,依然會鼓勵agent訪問這個狀態。而lifelong novelty會認爲這個狀態之前已經來過了,就沒有那麼新了,這個novelty就會相應衰減(Episodic novelty encourages an agent to periodically revisit familiar (but potentially not fully explored) states over several episodes, but not within the same episode. Life-long novelty gradually down-modulates states that become progressively more familiar across many episodes.)。這樣就相當於說這個intrinsic reward的設計結合了短期的novelty和長期的novelty。這裏的episodic novelty通過把一個episode的狀態存下來,然後比較相似度的方式實現的,lifelong novelty 就用的RND(Random Network Distillation)做的。
具體的,有一個episodic memory用來存每個episode的狀態,這個episodic memory每次新的episode開始的時候都會清空,相當於只會存當前episode的狀態。然後每次有新的狀態進來,都會和已經存了的狀態來算個距離比較大小,然後計算一個reward,距離越大,reward就越大。具體計算方式爲

這裏f是一個embedding network,把狀態x映射成一個p維向量,n就是計算這個狀態被訪問了多少次,這裏是通過K-nearest neighbors的方式來算的pseudo-counts,函數K定義爲

這裏d就是歐氏距離,\(d_m\)是之前算出來的距離的滑動平均,相當於歸一化一下。
有了episodic novelty,剩下的就是lifelong novelty,文章直接用的RND。RND的主要思路就是隨機初始化一個網絡作爲target network,然後訓練一個predictor network來預測狀態轉移,使得predictor network的預測接近target network

然後lifelong novelty就定義爲

這裏\(\mu,\sigma\)分別是誤差的均值和標準差。最後episodic 和lifelong乘起來作爲最終的intrinsic reward

這裏L=5是一個截斷的閾值。最終給到agent的reward就是extrinsic和intrinsic reward加權

因爲作者是用並行的方式來增加探索,所以Q網絡的輸入還加入了加權的參數

通過設計一族不同的\(\beta\)來進行不同程度探索的reward的計算。\(\beta=0\)就表示沒有探索reward。
總結:主要思路就是用多個不同的探索策略還進行探索,用並行的方式執行。最後文章說跑了35 billion frames,這簡直太誇張了,一般實驗室沒法做。從實驗結果看,對\(\beta\)的選擇很敏感。和R2D2比的時候,好像有的效果還變差了,作者解釋原因可能是intrinsic reward可能影響了representation的學習,從而影響了exploitation策略的提升。
疑問:感覺調參不容易啊,reward的量級,探索的權重設置等等。裏面其實還有一些參數,感覺真搞起來不是那麼容易設的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章