【强化学习】确定性策略强化学习-DPG&DDPG算法推导及分析

一、DGP推导

本篇介绍确定性策略梯度算法,该算法主要用于off-policy(on-policy也能用)。在DQN等值函数估计算法中,最终策略的形式是需要对动作状态值函数取极大 a = a r g m a x a ′ Q ( s , a ′ ) a={\rm argmax}_{a'}Q(s,a') a=argmaxaQ(s,a),这种方法只能用在有限的离散动作空间中,无法应用在较大离散空间或是连续的动作空间。

随机策略梯度法的核心公式为
∇ θ J ( θ ) = E τ ∼ π θ [ ( ∑ t = 0 T ∇ θ log ⁡ π θ ( a i , t ∣ s i , t ) ) ( ∑ t = 0 T r ( s i , t , a i , 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=0Tθlogπθ(ai,tsi,t))(t=0Tr(si,t,ai,t))]
策略梯度算法直接对轨迹的价值函数求导,因此它不用完成最优动作选取的过程,就算在AC算法中也是使用的 r t + v ( s t + 1 ) − v ( s t ) 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))θμθ(s)
由于是确定性策略,在价值函数 q ( s , μ ( s ) ) q(s,\mu(s)) q(s,μ(s))中有策略参数 θ \theta θ,因此需要将价值函数对策略求导。在这个梯度公式中,没有了与动作有关的期望项,因此相对于随机性策略,确定性策略需要的学习数据少,算法效率高,尤其对于动作空间维数很大的情况。


策略模型参数一致性

下面引入DPG重要的一个概念:策略模型参数的一致性。
在DPG中,为了更好的能适用于off-policy的算法,并且采用TD的方式降低方差。需要定义一个函数 Q ω : S × A → R Q^\omega:S\times A\to R Qω:S×AR来拟合真实的动作状态值函数。若 Q ω : S × A → R Q^\omega:S\times A\to R Qω:S×AR最终收敛,则梯度满足下面的公式
E a , s ∼ τ [ ( Q ( s , a ) − Q ω ( s , a ) ) ∇ ω Q ω ( s , a ) ] = 0 E_{a,s\sim\tau}[(Q(s,a)-Q^\omega(s,a))\nabla_\omega Q^\omega(s,a)]=0 Ea,sτ[(Q(s,a)Qω(s,a))ωQω(s,a)]=0
论文《policy gradient methods for reinforcement learning with function approximation》中证明,当 Q ω : S × A → R Q^\omega:S\times A\to R Qω:S×AR满足上式,并且满足下式时
∇ ω Q ω ( s , a ) = ∇ θ log ⁡ π θ ( s , a ) = ∇ θ π θ ( s , a ) 1 π ( s , a ) \nabla_\omega Q^\omega(s,a)=\nabla_\theta \log \pi_\theta(s,a)=\nabla_\theta \pi_\theta(s,a)\frac{1}{\pi(s,a)} ωQω(s,a)=θlogπθ(s,a)=θπθ(s,a)π(s,a)1
在计算梯度时可以使用 Q ω : S × A → R Q^\omega:S\times A\to R Qω:S×AR代替真实的动作状态值函数 Q ( s , a ) Q(s,a) Q(s,a)。并且神经网络满足这个性质,因此可以使用神经网络拟合动作状态值函数。这样价值模型不需要遵循某个具体的策略,因此可以使用off-policy的方式进行学习更新。


下面给出on-policy的确定性策略梯度算法(DPG)
∇ θ J ( μ θ ) = E s ∼ ρ μ θ [ ∇ θ μ θ ( s ) ∇ μ Q ω ( s , μ ) ] \nabla_{\theta}J(\mu_\theta)=E_{s\sim\rho^{\mu_\theta}}[\nabla_{\theta}\mu_\theta(s)\nabla_\mu Q^\omega(s,\mu)] θJ(μθ)=Esρμθ[θμθ(s)μQω(s,μ)]
给出off-policy策略梯度算法
∇ θ J ( μ θ ) = E s ∼ β [ ∇ θ μ θ ( s ) ∇ μ Q ω ( s , μ ) ] \nabla_{\theta}J(\mu_\theta)=E_{s\sim\beta}[\nabla_{\theta}\mu_\theta(s)\nabla_\mu Q^\omega(s,\mu)] θJ(μθ)=Esβ[θμθ(s)μQω(s,μ)]
上两式的区别就是使用了不同的数据采样分布。可以看到off-policy缺少了重要性采样,这是由于确定性策略的动作是固定值,不是一个分布;其次是因为确定性策略值函数的评估采用的是Q-learning的方法,即使用TD(0)估计动作值函数并忽略重要性权重,值函数不依赖于任何策略,并贪心获取下一个动作。

最终DPG的目标函数为
J ( ω ) = min ⁡ ω E β [ 1 2 ( r t + γ Q ω ( s t + 1 , a t + 1 ) − Q ω ( s t , a t ) ) 2 ] J ( θ ) = max ⁡ θ E β [ Q ω ( s t , μ ( s t ) ) ] \begin{aligned} J(\omega)&=\min_\omega E_\beta[\frac{1}{2}(r_t+\gamma Q^\omega(s_{t+1},a_{t+1})-Q^\omega(s_t,a_t))^2]\\ J(\theta)&=\max_\theta E_\beta[Q^\omega(s_t,\mu(s_t))] \end{aligned} J(ω)J(θ)=ωminEβ[21(rt+γQω(st+1,at+1)Qω(st,at))2]=θmaxEβ[Qω(st,μ(st))]
则DPG参数更新公式为
ω t + 1 = ω t + α E β [ ( r t + γ Q ω ( s t + 1 , a t + 1 ) − Q ω ( s t , a t ) ) ∇ ω Q ω ( s t , a t ) ] θ t + 1 = θ t + α E β [ ∇ a Q ω ( s t , a t ) ∣ a = μ θ ( s ) ∇ θ μ θ ( s t ) ] \begin{aligned} \omega_{t+1}=\omega_{t} + \alpha E_\beta[(r_t+\gamma Q^\omega(s_{t+1},a_{t+1})-Q^\omega(s_t,a_t))\nabla_\omega Q^\omega(s_t,a_t)]\\ \theta_{t+1} = \theta_{t}+\alpha E_\beta[\nabla_a Q^\omega(s_t,a_t)|_{a=\mu_\theta(s)}\nabla_\theta \mu_\theta(s_t)] \end{aligned} ωt+1=ωt+αEβ[(rt+γQω(st+1,at+1)Qω(st,at))ωQω(st,at)]θt+1=θt+αEβ[aQω(st,at)a=μθ(s)θμθ(st)]

二、DDGP

DDPG借鉴了DQN的经验回放与目标网络。采用滑动平均的方法更新目标网络的参数,其具体更新情况如下
δ t = r t + γ Q ω ‾ ( s t + 1 , μ θ ‾ ( s t + 1 ) ) − Q ω ( s t , a t ) ω t + 1 = ω t + α ω δ t ∇ ω Q ω ( s t , a t ) θ t + 1 = θ t + α θ ∇ θ μ θ ( s t ) ∇ a Q ω ( s t , a t ) ∣ a = μ θ ( s ) θ ‾ = τ θ + ( 1 − τ ) θ ‾ ω ‾ = τ ω + ( 1 − τ ) ω ‾ \begin{aligned} \delta_t&=r_t+\gamma Q^{\overline \omega}(s_{t+1},\mu_{\overline \theta}(s_{t+1}))-Q^\omega(s_t,a_t)\\ \omega_{t+1}&=\omega_t + \alpha_\omega \delta_t \nabla_\omega Q^\omega(s_t,a_t)\\ \theta_{t+1}&=\theta_t + \alpha_\theta \nabla_\theta\mu_\theta(s_t)\nabla_a Q^\omega(s_t,a_t)|_{a=\mu_\theta(s)}\\ \overline \theta &= \tau \theta+(1-\tau)\overline \theta\\ \overline \omega &= \tau \omega + (1-\tau) \overline \omega \end{aligned} δtωt+1θt+1θω=rt+γQω(st+1,μθ(st+1))Qω(st,at)=ωt+αωδtωQω(st,at)=θt+αθθμθ(st)aQω(st,at)a=μθ(s)=τθ+(1τ)θ=τω+(1τ)ω
其中 τ \tau τ通常设置的非常接近1。

算法流程如下
【强化学习】确定性策略强化学习-DPG&DDPG算法推导及分析_第1张图片

你可能感兴趣的:(强化学习,强化学习薄荷糖)