一、DGP推导
本篇介绍确定性策略梯度算法,该算法主要用于off-policy(on-policy也能用)。在DQN等值函数估计算法中,最终策略的形式是需要对动作状态值函数取极大a=argmaxa′Q(s,a′)a={\rm argmax}_{a'}Q(s,a')a=argmaxa′Q(s,a′),这种方法只能用在有限的离散动作空间中,无法应用在较大离散空间或是连续的动作空间。
随机策略梯度法的核心公式为
∇θJ(θ)=Eτ∼πθ[(∑t=0T∇θlogπθ(ai,t∣si,t))(∑t=0Tr(si,t,ai,t))] \nabla_{\theta}J(\theta)=E_{\tau\sim\pi_{\theta}}[(\sum_{t=0}^T\nabla_{\theta}\log\pi_{\theta}(a_{i,t}|s_{i,t}))(\sum_{t=0}^Tr(s_{i,t},a_{i,t}))] ∇θJ(θ)=Eτ∼πθ[(t=0∑T∇θlogπθ(ai,t∣si,t))(t=0∑Tr(si,t,ai,t))]
策略梯度算法直接对轨迹的价值函数求导,因此它不用完成最优动作选取的过程,就算在AC算法中也是使用的rt+v(st+1)−v(st)r_{t}+v(s_{t+1})-v(s_{t})rt+v(st+1)−v(st),不需要选取下一次的动作。但这种方法是on-policy算法,非常依赖与环境交互的过程,并且无法利用之前采样的数据进行更新策略,造成资源的浪费。DQN可以采用off-policy算法进行学习,DPG是将这两种方法的优势相结合。
DPG与DQN都是采用e-greedy的方法与环境进行交互,因为DPG是确定性策略,可以在确定的行动上加上噪声作为随机策略。
DPG与随机策略梯度算法相同,也是直接对轨迹的期望价值函数进行求导,公式推导如下所示
∇θvμ(s)=∇θ[qμ(s,μθ(s))] \nabla_{\theta}v_{\mu}(s)=\nabla_{\theta}[q_{\mu}(s,\mu_\theta(s))] ∇θvμ(s)=∇θ[qμ(s,μθ(s))]
与随机策略不同,确定性策略的价值函数与确定性策略有关,因此求导时应该使用链式法则,如下所示
∇μ(s)qμ(s,μ(s))∇θμθ(s) \nabla_{\mu(s)}q_\mu(s,\mu(s))\nabla_\theta\mu_\theta(s) ∇μ(s)qμ(s,μ(s))∇θ<