第 13 章 DDPG 算法
13.1 简介
之前的章节介绍了基于策略梯度的算法REINFORCE、Actor-Critic以及两个改进算法–TRPO和PPO。这类算法有一个共同的特点:它们都是在线策略算法,这意味着他们的样本效率比较低。我们回忆以下DQN算法,DQN算法直接估计最优函数Q,可以做到离线策略学习,但是他只能处理动作空间有限的环境,这是因为他需要从所有动作中挑选一个Q值最大的动作。如果动作个数是无限的,虽然我们可以先将动作空间离散化,但是这样做比较粗糙,无法精准控制。本节要讲解的深度确定性策略梯度算法就是用类似的思想来处理动作空间无限的环境并且使用的是离线策略算法,它构造一个确定性策略,用梯度上升的方法来最大化Q值。DDPG也属于一种Actor-Critic算法。之前学习的REINFORCE、TRPO和PPO算法是学习随机性策略,而本章的DDPG则是学习一个确定性策略。
13.2 DDPG算法
之前我们学习的策略是随机性的,可以表示为a πθ(⋅∣s)a~\pi_{\theta}(\cdot|s)a πθ(⋅∣s);而如果策略是确定性的,则可以记为a=μθ(s)a=\mu_\theta(s)a=μθ(s)。于策略梯度定理相似,我们可以推导出确定性策略梯度定理:
∇θJ(πθ)=Es νπβ[∇θμθ(s)∇aQωμ(s,a)∣a=μθ(s)]\nabla _{\theta}J\left( \pi _{\theta} \right) =\mathbb E_{s~\nu ^{\pi _{\beta}}}\left[ \nabla _{\theta}\mu _{\theta}\left( s \right) \nabla _aQ_{\omega}^{\mu}\left( s,a \right) |_{a=\mu _{\theta}\left( s \right)} \right] ∇θJ(πθ)=Es νπβ[∇θμθ(s)∇aQωμ(s,a)∣a=μθ(s)]
其中,πβ\pi_\betaπβ是用来收集数据的行为策略。我们可以这样理解这个定理:假设现在已经有函数Q,给定一个状态s,但由于现在动作空间是无限的,无法通过遍历所有动作来得到Q值最大的动作,因此我们想用策略μ\muμ找到使Q(s,a)Q(s,a)Q(s,a)值最大的动作aaa,即μ(s)=argmaxaQ(s,a)\mu(s)=arg max_aQ(s,a)μ(s)=argmaxaQ(s,a)。此时Q就是Critic,μ\muμ就是Actor,这是一个Actor-Critic的框架,如图13-1所示。
那怎么得到这个μ\muμ呢?首先用Q对μθ\mu_\thetaμθ求导∇θQ(s,μθ(s))\nabla _\theta Q(s,\mu_\theta(s))∇θQ(s,μθ(s)),其中会用到梯度的链式法则,先对aaa求导,在对θ\thetaθ求导。然后通过梯度上升的方法来最大化函数Q,得到Q值最大的动作。

下面来看一下DDPG算法的细节。DDPG要用到4个神经网络,其中Actor和Critic各用一个网络,此外它们都各自有一个目标网络。为什么需要目标网络呢?DDPG也需要目标网络是因为目标网络也会被用在计算目标Q值。DDPG中的目标网络的更新于DQN中略有不同:在DQN中,每隔一段时间将Q网络直接复制给目标Q网络;而在DDPG网络中,目标Q网络的更新采取的是一种软更新的方式,即让目标Q网络缓慢更新,逐渐接近Q网络,其公式为:
ω−<−−τω+(1−τ)ω−\omega^-<--\tau\omega+(1-\tau)\omega^-ω−<−−τω+(1−τ)ω−
通常
DDPG算法原理与代码实践

本文介绍了深度确定性策略梯度算法(DDPG),它用于处理动作空间无限的环境,是离线策略算法且属于Actor - Critic算法。文中推导了确定性策略梯度定理,阐述了算法细节,包括使用4个神经网络、目标网络软更新、引入随机噪声探索等,还给出代码实践,并对比了与DQN算法的区别。
最低0.47元/天 解锁文章
5693

被折叠的 条评论
为什么被折叠?



