深入理解Hindsight Experience Replay論文
- 2019 年 11 月 21 日
- 筆記
深度強化學習報道
文章作者:Keavnn(stepneverstop.github.io/)
編輯:DeepRL

https://arxiv.org/pdf/1707.01495.pdf
本文介紹了一個「事後諸葛亮」的經驗池機制,簡稱為HER,它可以很好地應用於稀疏獎勵和二分獎勵的問題中,不需要複雜的獎勵函數工程設計。強化學習問題中最棘手的問題之一就是稀疏獎勵。本文提出了一個新穎的技術:Hindsight Experience Replay (HER),可以從稀疏、二分的獎勵問題中高效取樣並進行學習,而且可以應用於所有的Off-Policy演算法中。

意為"事後",結合強化學習中序貫決策問題的特性,我們很容易就可以猜想到,「事後」要不然指的是在狀態s下執行動作a之後,要不然指的就是當一個episode結束之後。其實,文中對常規經驗池的改進也正是運用了這樣的含義。
" HER lets an agent learn from undesired outcomes and tackles the problem of sparse rewards in Reinforcement Learning (RL).——Zhao, R., & Tresp, V. (2018). Energy-Based Hindsight Experience Prioritization. CoRL."
使智慧體從沒達到的結果中去學習,解決了強化學習中稀疏獎勵的問題。
二分獎勵 binary reward
簡言之,完成目標為一個值,沒完成目標為另一個值。如:

獎勵 sparse reward
簡言之,完成目標的episode太少或者完成目標的步數太長,導致負獎勵的樣本數過多
文中精要
在機器人領域,要想使強化學習訓練它完美執行某任務,往往需要設計合理的獎勵函數,但是設計這樣的獎勵函數工程師不僅需要懂得強化學習的領域知識,也需要懂得機器人、運動學等領域的知識。而且,有這些知識也未必能設計出很好的獎勵函數供智慧體進行學習。因此,如果可以從簡單的獎勵函數(如二分獎勵)學習到可完成任務的模型,那就不需要費心設計複雜的獎勵函數了。
文中介紹了一個例子來引入HER:

當序列長度大於40時,傳統的強化學習演算法就算有各種探索機制的加持,也不能學會解決這個問題,因為這個問題完全不是缺乏探索,而是狀態太多,探索不完,導致獎勵極其稀疏,演算法根本不知道需要優化的目標在哪裡。
為了解決這個問題,作者指出了兩個思路:
- 使用shaped reward(簡言之,將reward設計成某些變數的函數,如

,即獎勵函數為當前狀態與目標狀態的歐氏距離的負數),將訓練的演算法逐步引導至獎勵函數增大的決策空間。但是這種方法可能很難應用於複雜的問題中。
- 使用HER——事後經驗池機制
HER
"The pivotal idea behind our approach is to re-examine this trajectory with a different goal — while this trajectory may not help us learn how to achieve the state g, it definitely tells us something about how to achieve the state ."
HER的主要思想就是:為什麼一定要考慮我們設定的目標呢?假設我們想讓一個智慧體學會移動到某個位置,它在一個episode中沒有學到移動到目標位置就算失敗嗎?假定序列為,目標為,我們何不換一種思路考慮:如果我們在episode開始前就將目標狀態設置為,即,那麼這樣看來智慧體不就算是完成目標了嗎?

就是運用了這個思想對經驗池進行了擴充,將稀疏獎勵問題給轉化成非稀疏獎勵,大大的擴展了經驗池中完成任務的經驗數量。
HER主要特點:
- 傳統經驗池存入的是狀態,而HER存入的是,也就是
tf.concat(s,g)
- 訓練演算法的輸入也是,也就是需要在當前狀態後邊連結上每個episode的目標狀態,每個episode的目標狀態可能不同
- HER對經驗池進行了擴充,不僅存入實際取樣得到的transition/experience,,也要在回合結束時重新設置目標狀態,得到相應的獎勵值(在二分獎勵問題中,只有在時獎勵才需要更改),存入「事後」(當初如果這樣就好啦!)的經驗,詳見偽程式碼,這個事後經驗究竟存入多少份、多少種,由超參數控制,下文講解。
- HER更適合解決多目標問題,多目標的意思為,目標點非固定,每個episode的目標狀態可以不相同。詳見實驗部分
HER的幾種擴展方式:
- 未來模式——future:在一個序列中,如果遍歷到狀態,則在之間隨機抽取個狀態作為目標狀態,並依此向經驗池中存入,特點:一個episode的後續部分
- 回合模式——episode:在一個序列中,如果遍歷到狀態,則在整個序列中隨機抽取個狀態作為目標狀態,並依此向經驗池中存入,特點:一個episode
- 隨機模式——random:在一個序列中,如果遍歷到狀態,則在多個序列中隨機抽取個狀態作為目標狀態,並依此向經驗池中存入,特點:多個episode
- 最終模式——final:在一個序列中,如果遍歷到狀態,則之間令,並向經驗池中存入,特點:一個episode的最後一個狀態,如果設置k,則存入k個相同的經驗
偽程式碼:

- 偽程式碼中沒有提到超參數,其實在循環條件中循環執行了次
- 操作為連結操作,簡言之,將兩個長度為5的向量合併成一個長度為10的向量
- 即為上文提到的四種擴展模式:future、episode、random、final。
- 獎勵函數即為前文提到的,即完成為0,未完成為-1,具體獎勵函數可以根據我們的使用環境設計
- 表示神經網路的輸入為當前狀態與目標狀態的連結
HER的優點
- 可解決稀疏獎勵、二分獎勵問題
- 可適用於所有的Off-Policy演算法
- 提升了數據取樣效率
實驗部分
環境
- 7自由度機械臂
- 模擬環境:MuJoCo
- 任務分為3種
- Pushing,推:鎖定機械臂的鉗子,移動機械臂將物體推到目標點
- Sliding,滑動:類似於冰球運動,鎖定機械臂的鉗子,移動機械臂給與物體一個力,使物體可以在較光滑的桌面上滑動並且達到目標位置
- Pick-and-place,擺放:解鎖鉗子,使用機械臂夾起物體並移動至空中目標點

演算法
- DDPG
- Adam優化器
- 多層感知機MLPs
- ReLU激活函數
- 8核並行,更新參數後取平均
- A-C網路都是3個隱藏層,每層64個隱節點,Actor輸出層用tanh激活函數
- 經驗池大小為,折扣因子,學習率,探索因子
訓練結果
final模式與future模式對比

- 紅色曲線為future模式,藍色曲線為final模式,綠色曲線為使用了count-based的DDPG,褐紅色虛線為原始DDPG
- 從左至右依次是Pushing,Sliding,Pick-and-place任務
- 超參數
- 這個實驗中,目標狀態會變,即為多個目標狀態
結果分析:
- future模式比final效果更好
- 使用了count-based的DDPG智慧稍微解決一下Sliding任務
- 使用HER的DDPG可以完全勝任三個任務
- 證明了HER是使從稀疏、二分獎勵問題中學習成為可能的關鍵因素
單個目標狀態的實驗

- 藍色曲線為使用了HER的DDPG,文中並未說明HER是哪種模式,猜測是final模式,因為文中實驗部分之前都是以final模式進行舉例
- 綠色曲線代表應用了count-based的DDPG,褐紅色虛線為原始DDPG
- 實驗中,目標狀態都為同一狀態
結果分析:
- DDPG+HER比原始DDPG的性能要好很多
- 相比於多個目標的實驗,可以發現,在多目標的任務中DDPG訓練更快,所以在實際中,即使我們只關心一個目標,我們最好也使用多個目標來訓練
HER應用於reward shaping問題中
前文已經說過,reward shaping可以簡單理解為將獎勵函數設置為某些變數的函數,如,即獎勵函數為當前狀態與目標狀態的歐氏距離的負數

- 獎勵函數為
結果分析:
- 無論使用怎樣的reward shaping函數,DDPG、DDPG+HER都不能解決這個問題
- 作者認為原因有二:
1. 判定完成目標的條件和要優化的問題有巨大的矛盾(雖然我也不理解這到底是什麼意思,索性就直接抄了過來)
2. reward shaping阻礙了探索
研究結果表明,與領域無關的reward shaping效果並不好
四種模式比較

- 紅色代表future模式,藍色代表final模式,綠色代表episode模式,紫色代表episode模式,褐紅色虛線代表原始DDPG
- 橫坐標代表超參數,第一行三個圖的縱坐標代表最高得分,第二行三個圖的縱坐標代表平均得分
結果分析:
- 效果:future>final>episode>random>no HER
- 穩定性:final(好)=no-HER(差)>future>episode>random
- future模式是唯一一個可以解決Sliding任務的,在或者時效果最好
- 增大超過8會使性能有所下降,主要是因為過大導致經驗池中原始真實數據所佔的比例太小
- It confirms that the most valuable goals for replay are the ones which are going to be achieved in the near future 它證實了回放經驗中最有價值的目標是那些在不久的將來能實現的目標
註:作者根據 future 模式提出了最近鄰的 future 模式,即把設置為,並且進行了實驗,實驗結果不如 future 模式。
原文內容請查看Github倉庫(歡迎Star, Fork)
https://github.com/NeuronDance/DeepRL/tree/master/DRL-PaperWeekly
Keavnn Blog: https://stepneverstop.github.io
GitHub倉庫
https://github.com/NeuronDance/DeepRL