1. 程式人生 > 實用技巧 >RL論文閱讀12-mf-HER2017(更新)

RL論文閱讀12-mf-HER2017(更新)

文章目錄

1. Tittle

image-20200603095956714

source

2017

2. 標籤

  • model-free

3. 總結

針對的問題:

  • reward function的設計是很複雜的,不僅需要反映任務的本質 而且還有精心設計才能夠使策略最優化。

  • 稀疏獎勵或者二進位制獎勵很難訓練。

  • 提高reward是稀疏的或者是1/0的這種形式時的sample-efficiency,從而避免複雜的reward設計。

解決方法:

  • 提出了一個新的技術叫做Hindsight Experience Replay。 能夠針對所有的off-policy RL演算法進行使用。
  • 演算法的核心思想:輸入是當前狀態+目標狀態。在每個episode進行replay時,使用不同的agent想要達到的目標,而不是僅僅只使用一個目標。

paper中提到的一個例子:當打冰球的時候,如果偏向右側了,那麼想要得到的結論是:如果這個網再往右移一點(不同的目標),這一些列動作(episode)就能夠成功了。

3. 原理

Background

  • DQN
  • DDPG
  • UVFA:Universal Value Function Approximators
    • 是DQN對於多目標的拓展。希望能夠達到不止一個目標。Q-function擴充套件成為狀態status、行為action、目標goal 對。在每個時間步,agent得到動作與狀態status和目標goal相關。不同的目標有不同的獎勵函式。

HER原理

例子: n維度的0/1轉換。

  • 狀態空間KaTeX parse error: Undefined control sequence: \cal at position 1: \̲c̲a̲l̲ ̲S \it = \{0,1\}…

  • 動作空間KaTeX parse error: Undefined control sequence: \cal at position 1: \̲c̲a̲l̲ ̲A = \it \{0,1..… ,代表反轉哪一個維度的狀態。每個動作只轉換一個維度。

    每一個episode,統一取樣初始化狀態目標狀態。只要狀態和目標狀態不相同,就會得到-1的reward

對於這個問題,標準的RL演算法當n>40時,就會失敗。

image-20200603153640322

​ 問題不在於缺少狀態的多樣性,而是去探索這麼大的狀態空間(如n=40,狀態空間是 2 40 2^{40} 240)是不現實的。標準的解決辦法是使用含有更多資訊的shaped reward function去引導agent走向走向目標。例如 r g ( s , a ) = − ∣ ∣ s − g ∣ ∣ 2 r_g(s,a) = - ||s-g||^2 rg(s,a)=sg2

r g r_g rg是針對目標g的獎勵。

核心思想就是在replay時使用不同的目標,例如除了使用最終的target,還可以使用最後的狀態 s T s_T sT作為目標。這樣做就可以得到更多的資訊了。

下面表格為DDPG和DDPG-HER的對比:

DDPGDDPG-HER
Actor Net:InputStatestate||goal
Actor Net : Outputactionsactions
Critic Net:Inputstate||actionsstate||goal||actions
Critic Net:OutputQQ

顯然,HER把goal也作為一個產生動作評價價值的一個指標。

多目標RL

  • multi-goal RL比單一任務更容易訓練
  • goal可以是state的全部後者部分屬性

構造replay buffer

HER的關鍵在於構造replay的資料。以論文中的機械臂FetchReach-V1為例:

環境ENV返回的observations中包含了:(在gym中,observation就是我們公式討論時的state)

  • observation:當前的狀態

  • achieved_goal: 當前已經達到的目標(是個三維度的座標)

  • desired_goal: 最終目標(一旦設定後,在單次模擬中不會改變)

我們需要記錄一系列的軌跡,如設定env走50步為一個完整的序列,稱之為rollout,將這50步儲存起來。之所以要取連續的,是因為我們需要知道achieved_goal與observation的先後關係。因為我們一會要用achieved_goal替換掉部分的desired_goal

然後我們就可以開始構造HER版本的replay資料了,在每次sample replay的資料時,我們都有以下幾種方式進行構造:

  • final:只使用episode的最後一個狀態
  • future:從該episode中,選取k個state,然後用k個state之後達到的achieved_goal去替換他們當前的desired_goal(效果最好)
  • episode:從該episode中隨機選擇k個狀態
  • random:從所有的訓練資料中隨機選擇k個轉檯

future 例圖(圖中沒有畫reward):

image-20201016095301656

HRE演算法描述

在replay時,不僅僅使用原始的目標,還使用其他的目標。這些目標是受actions的影響。注意演算法描述中G的來源。

image-20200603161438506

4. 實驗

沒有標準的multi-goal RL演算法,所以作者建立了自己的環境,是機械臂抓取的一個模擬。最後應用到了實際的機器手臂上。

  • 實驗證明有HER的加入,提升了multi-goal訓練速度,對於某些任務能夠提升準確性。

image-20200603162634956

  • 對於單一目標的應用

image-20200603162610629

  • 不同版本的HER,future效果最好

    image-20200603163557211

    image-20200603163029371