強化學習(7):深度確定性策略梯度(Deep Deterministic Policy Gradient, DDPG)

本文主要講解有關 DDPG 算法的有關內容。

一、DDPG 算法

DDPG 是 Deep Deterministic Policy Gradient 的縮寫,其中深度 (Deep) 代表 DQN;確定性(Deterministic)是指不再先生成各個動作的概率然後再選擇概率最高的動作,而是直接輸出一個確定性的動作;Policy Gradient 就不用解釋了吧。

因爲在 Actor-Critic 中連續狀態中前後狀態具有相關性,所以會導致神經網絡只能片面的看待問題,甚至導致神經網絡學不到東西、收斂慢。爲了解決這個問題,DDPG 使用了類似於 DQN 的經驗回放池。在實操中,一開始時先由 Actor 隨機的採取動作,當經驗回放池存儲滿後,再從裏面隨機選擇 batch 個樣本進行網絡參數更新。

DDPG 可以看作是 Actor-Critic 算法和 DQN 算法的結合,該算法中還是有 Actor 和 Critic 兩個網絡。與 Actor-Critic 算法不同的是 Actor 網絡直接採用 Critic 網絡對自己動作的評估值 TD-error 作爲 Actor 網絡的損失函數。而兩者的 Critic 網絡的損失函數是相同的。

因爲 DDPG 還結合 DQN 算法,所以 Actor 和 Critic 網絡又分別有兩個—— target 網絡和 eval 網絡。與 DQN 一樣,eval 網絡的參數保持最新,而 target 網絡的參數隔一段時間後纔會更新。

總結一下,Actor-target 網絡和 Critic-target 網絡是一對,前者做動作,後者對動作進行評估,然後前者再根據評估值改變自己選擇動作的概率。同理 Actor-eval 網絡和 Critic-eval 網絡是一對,前者做動作,後者對動作進行評估,不同的是,前者沒有自己的損失函數,而是靠 Actor-target 來更新自己的參數。而 Actor-target 網絡和 Actor-eval 網絡是一對,它們的存在是爲了打亂觀測值前後的相關性。同理 Critic-target 和 Critic-eval 這兩個網絡也是如此。

由於 Actor-Critic 算法中是先 Critic 更新參數然後再 Actor 更新參數,而 DDPG 與之相反,這使得 DDPG 中獲得兩個網絡的輸出和更新兩個網絡的參數這兩個階段是分離的(先同時得到兩個網絡的輸出,再更新兩個網絡的參數)。所以說 DDPG 的網絡結構寫起來是比較蛋疼的,具體情況建議大家根據代碼自己理順兩個網絡中數據的傳遞流程。

二、DDPG 中的 Tricks

(1)soft-replacement

在把 eval 網絡的參數賦值給 target 網絡時,不再是 hard replacement,而是軟替換 soft replacement,這樣可以避免不收斂的問題。hard replacement 就是每隔一定的步數就將 eval 網絡中的參數賦值給 target 網絡,而 soft replacement 就是每一步都對 target 網絡的參數更新一部分。

(2) 爲 action 增加噪聲

這樣可以增加網絡的魯棒性。

三、DDPG 算法流程

DDPG

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章