學習筆記:DDPG

奔跑的林小川發表於2018-05-14

學習內容:DDPG

關鍵詞:記憶庫,估計網路,現實網路,Policy Gradient,Value Based,Actor-Critic

簡述:

        DDPG(Deep Deterministic Policy Gradient)可以概括為兩個部分Deep和Deterministic Policy Gradient,其中Deep和DQN類似擁有兩套結構相同但是更新頻率不同的神經網路,Deterministic Policy Gradient指的是確定性策略梯度.在連續動作上輸出一個動作值.

            動作估計網路輸出實時動作,為actor在現實中實行,動作現實網路用於更新價值網路系統.狀態估計網路將actor的動作當做輸入,狀態現實網路將動作現實網路輸出動作與狀態值加以分析.

           DDPG是基於actor-critic的無模型確定性策略梯度演算法,人工智慧就是解決無資料預處理,多維度,敏感輸入的多目標任務。DQN只能解決低維度的離散輸出動作的任務,不能直接解決連續動作任務,DQN及其衍生演算法直接扔掉了動作空間中一些可能有用的資訊。

            DDPG吸收練DQN演算法的優點,使用異策略(離線學習)方法,在樣本儲存快取區(replay buffer)中取樣最小化樣本間的相關性,使用Q-network訓練,並定時返回引數。

Policy Gradient:

            能夠在連續區間內挑選動作,並且不通過分析反向誤差,而是直接輸出行為.是基於整條回合資料的更新和基於策略梯度的更新

            

DDPG虛擬碼:

虛擬碼註釋:

 隨機初始化critic網路和actor網路,並初始化各自引數

初始化上述兩個網路對應目標網路

初始化repaly buffer

在M個回合內:

            隨機初始化分佈N用作動作探索

            初始化初始狀態

            在次數T內:

                        根據當前策略和噪聲選擇動作

                        執行動作和得到獎勵與下一個狀態

                        將當前狀態,當前動作,當前獎勵和下一個狀態儲存在R中

                        隨機取樣

                        

                        根據critic的損失函式更新critic網路

                        根據actor的梯度更新actor網路

            結束迴圈

結束迴圈

                        

公式的前半部分表示根據梯度選擇獎賞值最大的動作,後半部分表示根據梯度選擇選該最大獎賞值動作的策略

Tensorboard 資料圖:

接下來展開C-train,C代表critic,在訓練價值系統時,需要當前狀態s,下一個狀態s_,環境獎勵R,和策略梯度,其中用到Actor的是eval網路即動作估計網路,來更新價值系統.

再展開TD_error,採用時序差分演算法計算現實網路和估計網路的差值,論文采用均方差求解,然後傳遞給C-train

展開target_q,Q現實現實更新與下一個狀態和動作獎勵有關

展開Policy Gradient,策略梯度演算法與當前狀態有關