RL論文閱讀12-mf-HER2017(更新)
文章目錄
1. Tittle
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時,就會失敗。
問題不在於缺少狀態的多樣性,而是去探索這麼大的狀態空間(如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)=−∣∣s−g∣∣2
r g r_g rg是針對目標g的獎勵。
核心思想就是在replay時使用不同的目標,例如除了使用最終的target,還可以使用最後的狀態 s T s_T sT作為目標。這樣做就可以得到更多的資訊了。
下面表格為DDPG和DDPG-HER的對比:
DDPG | DDPG-HER | |
---|---|---|
Actor Net:Input | State | state||goal |
Actor Net : Output | actions | actions |
Critic Net:Input | state||actions | state||goal||actions |
Critic Net:Output | Q | Q |
顯然,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):
HRE演算法描述
在replay時,不僅僅使用原始的目標,還使用其他的目標。這些目標是受actions的影響。注意演算法描述中G的來源。
4. 實驗
沒有標準的multi-goal RL演算法,所以作者建立了自己的環境,是機械臂抓取的一個模擬。最後應用到了實際的機器手臂上。
- 實驗證明有HER的加入,提升了multi-goal訓練速度,對於某些任務能夠提升準確性。
- 對於單一目標的應用
-
不同版本的HER,future效果最好