基础算法篇(七),确定性策略的DPG与DDPG

我们在前面两章介绍了Policy Based范畴的经典策略梯度方法基于AC框架的PPO方法,在上述方法中,策略梯度都为如下形式:

  • ∇ J ( θ ) = E τ ∼ P ( τ ; θ ) [ R ( τ ) ∑ t = 1 T ∇ log ⁡ π θ ( a t ∣ s t ) ] \nabla J\left(\theta\right)=E_{\tau\sim P\left(\tau;\theta\right)}\left[R\left(\tau\right)\sum_{t=1}^T\nabla\log\pi_\theta\left(a_t\left|s_t\right.\right)\right] J(θ)=EτP(τ;θ)[R(τ)t=1Tlogπθ(atst)]

上面这个式子中包含了需要从状态空间采样的 R ( τ ) R\left(\tau\right) R(τ)和需要从行动空间采样的 π θ ( a t ∣ s t ) \pi_\theta\left(a_t\left|s_t\right.\right) πθ(atst)两个部分,因此,需要采样的量比较大。为了解决这一问题,DeepMind的David Silver等人提出了确定性策略梯度算法Deterministic policy gradient algorithms,将原有的概率性策略:

  • π ( a ∣ s ) = P ( a t = a ∣ s t = s ) \pi\left(a\left|s\right.\right)=P\left(a_t=a\left|s_t=s\right.\right) π(as)=P(at=ast=s)

改为了确定性策略:

  • a = μ ( s ) a=\mu\left(s\right) a=μ(s)

这样从理论上来说,需要采样的数据量就比之前要小。
但个人觉得随机性策略与确定性策略针对的其实是不同场景,例如棋类等某些对抗场景下,随机性策略要比确定性策略更有效,因此,并不存在谁好谁坏的问题。不管怎么说,下面我们开始介绍确定性策略相关内容。

确定性策略梯度DPG

首先我们将带参数 θ \theta θ的确定性策略定义为如下形式:

  • μ θ : S → A ; θ ∈ R n \mu_\theta:S\rightarrow A;\theta\in R^n μθSAθRn

这里与前面不同的就是,策略由原有的概率函数,变为一个确定性函数。同时,定义我们的状态转移概率为如下形式:

  • p ( s → s ′ ,    t ,    μ ) p\left(s\rightarrow s',\;t,\;\mu\right) p(ss,t,μ)

这个状态转移函数,其实和前面的时一样的,它是和环境相关,但同时也和策略本身相关。那么,确定性策略的目标函数就可以写成如下形式:

  • J ( μ θ ) = E [ r 1 γ    ∣ μ ]                      = ∫ S ρ μ ( s ) r ( s ,    μ θ ( s ) ) d ⁡ s                      = E s ∼ ρ μ [ r ( s ,    μ θ ( s ) ) ] J\left(\mu_\theta\right)=E\left[r_1^\gamma\;\left|\mu\right.\right]\\\;\;\;\;\;\;\;\;\;\;=\int_S\rho^\mu\left(s\right)r\left(s,\;\mu_\theta\left(s\right)\right)\operatorname ds\\\;\;\;\;\;\;\;\;\;\;=E_{s\sim\rho^\mu}\left[r\left(s,\;\mu_\theta\left(s\right)\right)\right] J(μθ)=E[r1γμ]=Sρμ(s)r(s,μθ(s))ds=Esρμ[r(s,μθ(s))]

由上式可以看出,这里的定义与随机策略其实是一致的,即不同策略下折扣收益的均值,同时可以表示为不同状态分布下的收益。那么,基于这个目标函数,如果要对参数 θ \theta θ进行调整,以使目标函数最大,那么其策略梯度就可以表示为如下形式:

  • ∇ θ J ( μ θ )    = ∫ S ρ μ ( s ) ∇ θ μ θ ( s ) ∇ a Q μ ( s , a ) ∣ a = μ θ ( s ) d ⁡ s                                  = E s ∼ ρ μ [ ∇ θ μ θ ( s ) ∇ a Q μ ( s , a ) ∣ a = μ θ ( s ) ] \nabla_\theta J\left(\mu_\theta\right)\;=\int_S\rho^\mu\left(s\right)\nabla_\theta\mu_\theta\left(s\right)\nabla_aQ^\mu\left(s,a\right)\vert_{a=\mu_\theta\left(s\right)}\operatorname ds\\\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;=E_{s\sim\rho^\mu}\left[\nabla_\theta\mu_\theta\left(s\right)\nabla_aQ^\mu\left(s,a\right)\vert_{a=\mu_\theta\left(s\right)}\right] θJ(μθ)=Sρμ(s)θμθ(s)aQμ(s,a)a=μθ(s)ds=Esρμ[θμθ(s)aQμ(s,a)a=μθ(s)]

在David Silver的论文中,也没有讲具体的推导过程,但好像是在附录中对成立的条件进行了说明。其实具体推导,可以参见我们前面的经典策略梯度方法中相关推导,比较类似,只是在这里利用了链式求导法则。
根据上面的策略梯度,我们就可以得到on-policy Deterministic Actor-Critic的更新公式如下所示:

  • δ t = r t + γ Q ω ( s t + 1 , a t + 1 ) − Q ω ( s t , a t ) \delta_t=r_t+\gamma Q^\omega\left(s_{t+1},a_{t+1}\right)-Q^\omega\left(s_t,a_t\right) δt=rt+γQω(st+1,at+1)Qω(st,at) (1)
  • ω t + 1 = ω t + α ω δ t ∇ ω Q ω ( s t , a t ) \omega_{t+1}=\omega_t+\alpha_\omega\delta_t\nabla_\omega Q^\omega\left(s_t,a_t\right) ωt+1=ωt+αωδtωQω(st,at) (2)
  • θ t + 1 = θ t + α θ ∇ θ μ θ ( s t ) ∇ a Q μ ( s t , a t ) ∣ a = μ θ ( s ) \theta_{t+1}=\theta_t+\alpha_\theta\nabla_\theta\mu_\theta\left(s_t\right)\nabla_aQ^\mu\left(s_t,a_t\right)\vert_{a=\mu_\theta\left(s\right)} θt+1=θt+αθθμθ(st)aQμ(st,at)a=μθ(s) (3)

同时,off-policy Deterministic Actor-Critic的更新公式如下所示:

  • δ t = r t + γ Q ω ( s t + 1 , μ θ ( s t + 1 ) ) − Q ω ( s t , a t ) \delta_t=r_t+\gamma Q^\omega\left(s_{t+1},\mu_\theta\left(s_{t+1}\right)\right)-Q^\omega\left(s_t,a_t\right) δt=rt+γQω(st+1,μθ(st+1))Qω(st,at) (4)
  • ω t + 1 = ω t + α ω δ t ∇ ω Q ω ( s t , a t ) \omega_{t+1}=\omega_t+\alpha_\omega\delta_t\nabla_\omega Q^\omega\left(s_t,a_t\right) ωt+1=ωt+αωδtωQω(st,at) (5)
  • θ t + 1 = θ t + α θ ∇ θ μ θ ( s t ) ∇ a Q μ ( s t , a t ) ∣ a = μ θ ( s ) \theta_{t+1}=\theta_t+\alpha_\theta\nabla_\theta\mu_\theta\left(s_t\right)\nabla_aQ^\mu\left(s_t,a_t\right)\vert_{a=\mu_\theta\left(s\right)} θt+1=θt+αθθμθ(st)aQμ(st,at)a=μθ(s) (6)

上面两组更新式子中,唯一的区别就是(1)式和(4)式的中间项,变成了 μ θ ( s t + 1 ) \mu_\theta\left(s_{t+1}\right) μθ(st+1),这个可以看作是一个Target Actor,这也是off-policy的特点,即将用来计算更新值的策略与环境互动的策略分开,我理解这个直观的感觉是起一个稳定器的感觉。

深度确定性策略梯度DDPG

其实DDPG和DPG的关系,就好像Q-Learning和DQN的关系一样,用深度神经网络来拟合上面的Critic和Actor,用深度神经网络的权重,来代替前面的 ω \omega ω θ \theta θ。提出这个算法的文章Continuous Control with Deep Reinforcement Learning的作者还是DeepMind的一票人,其中也包括了DPG的David Silver等。
其思路和DQN对Q-Learning的扩展基本一致,同时也使用了经验回放独⽴的目标网络两个DQN中使用的技巧,同时,为了解决确定性策略的Exploration和策略更新的稳定性问题,还增加了随机量soft-replace。具体算法伪代码如下所示:
在这里插入图片描述

  1. 由上面算法的第一和第二行可以看出,DDPG建立了两个Actor网络,这是前面DPG算法中off-policy的部分;同时,还建立了两个Critic网络,这个就是模仿DQN建立的目标网络部分,用这个目标网络来计算TD目标值;
  2. 算法第八行中的 N t N_t Nt就是为解决策略Exploration所添加的随机量;
  3. 第十行这里就是存储每步的状态,为后面update中使用经验回放作准备。
  4. 算法最后两行,就是soft-replace部分,不是完全更新,而是只更新网络中很小的一部分 τ \tau τ,按照算法中的介绍,需要满足条件: τ < < 1 \tau<<1 τ<<1

总结

DDPG算法如果按照类别来分,应该为policy based & model-free & off-policy & actor-critic算法,和我们前面讲的PPO不同点很多,其中最重要的有两个:

  • 一是在输出策略方面,DDPG输出的是确定性策略,PPO则是概率分布;
  • 二是在AC结构方面,PPO中的Critic输出是价值函数,输入只有state;而DDPG中的Critic输出是类似于DQN的行为-状态值,所以输入包含action。这也直接导致了DDPG中的Critic在更新计算TD差分值时,使用到了目标策略网络Actor的输出,而PPO中的Critic是自己独立更新的。
  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DPG(Deterministic Policy Gradient)算法是一种用于连续动作空间的强化学习算法,它的优化目标是最大化状态-动作值函数(Q值),而不是最大化策略价值函数(V值)。DPG算法使用深度神经网络来逼近Q值函数,但是由于连续动作空间的问题,DPG算法需要对动作进行采样和噪声处理,同时还需要使用策略梯度方法来更新策略网络。 DQN(Deep Q-Network)算法是一种用于离散动作空间的强化学习算法,它使用深度神经网络来逼近Q值函数,并使用经验回放缓冲区和目标网络来提高算法的稳定性和收敛速度。 DDPG算法是在DPG算法基础上,结合DQN算法演变而来。DDPG算法使用深度神经网络来逼近Q值函数和策略函数,同时使用经验回放缓冲区和目标网络来提高算法的稳定性和收敛速度,还使用噪声过程来探索连续动作空间。 具体来说,DDPG算法使用Critic网络来逼近Q值函数,Actor网络来逼近策略函数。Critic网络的训练过程与DQN算法类似,使用经验回放缓冲区和目标网络来提高算法的稳定性和收敛速度。而Actor网络的训练过程则采用策略梯度方法,利用Critic网络的梯度信息来更新Actor网络的参数。同时,DDPG算法使用噪声过程来探索连续动作空间。 因此,DDPG算法可以看做是DPG算法和DQN算法的结合,利用了两种算法的优点来解决连续动作空间的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值