強化學習入門筆記系列——DDPG算法


本系列是針對於DataWhale學習小組的筆記,從一個對統計學和機器學習理論基礎薄弱的初學者角度出發,在小組學習資料的基礎上,由淺入深地對知識進行總結和整理,今后有了新的理解可能還會不斷完善。由於水平實在有限,不免產生謬誤,歡迎讀者多多批評指正。如需要轉載請與博主聯系,謝謝

DDPG算法基本概念


什么是DDPG算法?

深度確定性策略梯度(Deep Deterministic Policy Gradient, DDPG)雖名為“策略梯度”,實際上是Actor-Critic的一種經典算法。除了用於動作選擇的策略網絡,它還大量借鑒了DQN的思想並構建價值網絡來間接引導策略網絡的更新。
在這里我們可以將DDPG分為兩部分,一是作為“演員”(Actor)的策略網絡,二是作為“評論家”的價值網絡。策略網絡利用策略梯度方法進行更新,但它不是直接與環境交互來計算目標函數,而是通過價值網絡估計的Q值來調整自己的網絡參數\(\theta\)。也就是說“演員”並不直接與提供獎勵的觀眾(環境)接觸,而是利用價值網絡間接地獲得對動作的評價。與此同時,價值網絡部分可以看作經典的DQN模型,它一方面與環境交互,利用reward來更新自己Q網絡的參數\(w\);另一方面它作為評委需要估算當前狀態和動作的Q值來引導策略網絡的更新。由於借鑒了DQN中的一些思想,DDPG中的策略網絡和價值網絡也都各分為兩部分,即一個用於每步更新的當前網絡和一個用於計算預測的Q值及動作的目標(target)網絡,后者每隔一段時間從當前網絡中復制參數,加起來總共四個網絡。這樣可以盡量保證預測時可以得到比較穩定的Q值,有助於模型的收斂。

DDPG算法有什么特點?

深度確定性策略梯度,顧名思義,首先是利用了神經網絡來逼近Q函數,其次它是一個確定性策略,也就是對於任意狀態,輸出當前最佳的動作,這里是一個確定的動作,而不是一個包含概率分布的動作集。最后它是引入了策略梯度的方法來執行動作選擇。

如何實現確定性策略?

策略網絡中輸出位置我們可以添加一層以tanh為激活函數的節點,它實現對於動作空間的壓縮,輸入一個浮點數,它都會生成[-1,1]之間的值。然后根據動作空間的實際要求,將輸出值隨比例擴大即可。這樣同時解決了實現執行動作連續性與和確定性的問題。

參考資料:

  1. DataWhale組隊學習資料——《強化學習》 王琦 楊毅遠 江季 著
  2. 《強化學習》第二版 Richard S. Sutton, Andrew G. Barto 等 著
  3. 深度強化學習——從DQN到DDPG https://zhuanlan.zhihu.com/p/28549596


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM