Off-Policy Deep Reinforcement Learning without Exploration

發表時間:2019(ICML 2019)
文章要點:這篇文章想說在offline RL的setting下,由於外推誤差(extrapolation errors)的原因,標準的off-policy算法比如DQN,DDPG之類的,如果數據的分佈和當前policy的分佈差距很大的話,那就很難從data裏學到好的policy。然後文章提出了batch-constrained reinforcement learning來約束當前的policy和收集data的policy的距離,從而更有效的學習。
extrapolation error指的是對於沒有見過的狀態動作對,估計值不準確。導致這個問題的原因在於the mismatch between the dataset and true state-action visitation of the current policy.這個問題可能有以下幾個原因:
(1) Absent Data.大概意思就是如果沒見過某個state-action pair,那這個地方的估計就可能任意的差。

(2) Model Bias.大概意思就是說如果data不夠多的時候,因爲在算bellman估計的時候,都是用採樣去做的,但是採樣得到的transition dynamic和真實的MDP的dynamic是有偏差的。

(3) Training Mismatch. 即使data足夠多,但是當前policy和data對應的分佈差距很大,那麼採樣得到的樣本和當前的policy還是有很大的mismatch。這個更新也會有問題。

作者提出Batch-Constrained deep Q-learning (BCQ)來解決這個問題,大概思路就是用state-conditioned generative model to produce only previously seen actions。具體需要滿足如下目標

作者定義了網絡,一個生成模型G,一個擾動模型\(\xi\),再加兩個Q網絡。生成模型用來生成data裏出現過的動作,擾動模型用來給生成的動作加一個小的擾動,用來增加多樣性,然後兩個Q就是用來做Double Q-learning的。訓練的大概思路就是先用生成模型和擾動模型生成很多個action,然後從這些action裏面找最大的Q來做更新用的target Q。然後用Double Q-learning來更新Q網絡。
算法僞代碼如下圖:

總結:感覺這個思路的話,就是我的policy可能不會很好,因爲我限制了訓練的transition和buffer裏的差得不會太遠。同時這個policy也不會很差,因爲extrapolation error的問題會被緩解。
疑問:這個用VAE來訓練生成模型,這個地方會不會依然生成buffer裏沒有的動作?這個地方的原理不是很懂。
給動作加擾動那裏,連續動作DDPG倒是好加,DQN咋加的?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章