10.4-确定性演员-评论性方法
迄今为止,我们介绍的策略梯度算法都是基于随机策略的,即要求对于任意状态-行动对\((s, a)\)都满足\(\pi(a|s, \theta) >0\)。实际上,确定性策略也同样适用于策略梯度方法。这里"确定性"是指对于任意一个状态,策略选择某一个行动的概率\(1\),其余行动概率均为\(0\)。
基于确定性策略的Actor-Critic方法被称为确定性Actor-Critic(deterministic actor-critic)或者确定性策略梯度(deterministic policy gradient)。该方法非常重要,因为它天然就是Off-policy的,并能有效处理连续动作空间。
具体来说,我们一直使用\(\pi(a|s, \theta)\)来表示一个策略,这个策略既可以是随机策略也可以是确定性策略。本节中,我们采用
来表示一个确定性的策略。此处\(\mu\)是从状态空间\(\mathcal{S}\)到动作空间\(\mathcal{A}\)的一个映射,因此会直接输出一个行动,这与之前的\(\pi\)不同:\(\pi\)输出的是某一个行动的概率。该确定性策略可通过神经网络实现,例如状态\(s\)为输入、行动\(a\)为输出、参数是\(\theta\)。为简洁起见,我们通常将\(\mu(s, \theta)\)简写为 \(\mu(s)\)。
Note
如果我在一个状态下有无数个行动,这时候就可以用确定性(deterministic)的情况。
10.4.1 确定性策略梯度定理¶
第九章介绍的策略梯度定理仅适用于随机策略。如果我们要求策略必须为确定性的,那么就要推导新的策略梯度定理。下面首先给出确定性策略梯度定理,再进行解释。
Info
定理10.2(确定性策略梯度定理)。目标函数\(J(\theta)\)的梯度为
其中 \(\eta\)表示状态的概率分布。
定理\(10.2\)是对定理\(10.3\)和定理\(10.4\)所述结果的汇总,因为这两个定理中的梯度具有相似的表达式。\(J(\theta)\)和\(\eta\)的具体表达式可参见定理\(10.3\)和定理\(10.4\)。
确定性策略梯度方法是Off-policy的。这一点可以从式\((10.14)\)中的梯度表达式看出来。与随机策略情况不同,式\((10.14)\)所示的梯度不涉及行动随机变量\(A\)。因此,当我们使用样本来近似真实梯度时无需行动样本,自然也就不需要关心行动样本是哪个策略产生的,所以生成样本的策略与目标策略不同,体现出Off-policy的特点
此外,部分读者可能疑惑为什么\(\left. \nabla_a q_\mu(S, a) \right|_{a=\mu(S)}\)不能简写为\(\nabla_a q_\mu(S, \mu(S))\)?这是因为如果采用后者,就无法明确看出\(q_\mu(S, \mu(S))\)是变量\(a\)的函数了。当然,我们也可以使用另一个简洁而且不会引起混淆的表达式:\(\nabla_a q_\mu(S, a = \mu(S))\)。
在本小节剩余部分,我们将详细推导定理\(10.2\)。具体而言,我们将推导两种常见目标函数的梯度:第一个是平均状态值,第二个是平均奖励值。由于这两个目标函数已在第\(9.2\)节详细讨论过,因此我们有时会不加证明de使用它们的一些性质。对于多数读者而言,只需熟悉定理\(10.2\)的结论就足够了,而无需了解其推导细节。感兴趣的读者可以有选择性地阅读本节后续推导内容。
指标1: 平均状态值¶
我们首先推导平均状态值的梯度,平均状态值的表达式为
其中\(d_0\)是状态的概率分布。为简化分析,我们此处设定\(d_0\)是一个与\(\mu\)独立的分布。这样\(d_0\)对\(\theta\)的梯度等于\(0\)。\(d_0\)的选取存在两种特殊但重要的情形:第一种情形是\(d_0(s_0) =1\)且\(d_0(s \neq s_0) =0\),其中\(s_0\)是一个我们感兴趣的特定状态。在这种情况下,学习到的策略旨在最大化从\(s_0\)出发所能获得的回报;第二种情形是选择\(d_0\)为一个给定的行为策略的分布,该行为策略可以和目标策略不同。
为了计算\(J(\theta)\)的梯度,我们首先需要计算任意状态\(s \in \mathcal{S}\)下状态值\(v_\mu(s)\)的梯度。
引理\(10.1\) (\(v_\mu(s)\)的梯度).当\(\gamma \in (0,1)\),对任意状态 \(s \in \mathcal{S}\)有 $\(\nabla_{\theta}v_{\mu}(s)=\sum_{s^{\prime}\in\mathcal{S}}\Pr_{\mu}(s^{\prime}|s)\nabla_{\theta}\mu(s^{\prime})\left(\nabla_{a}q_{\mu}(s^{\prime},a)\right)|_{a=\mu(s^{\prime})},\tag{10.16}\)$ 其中 $\(\Pr_\mu(s'|s) = \sum_{k=0}^\infty \gamma^k [P_\mu^k]_{ss'} = \left[ (I - \gamma P_\mu)^{-1} \right]_{ss'}\)$ 表示策略\(\mu\)下从状态\(s\)转移到\(s'\)的折扣总概率。此处\([\cdot]_{ss'}\)表示矩阵第\(s\)行第\(s'\)列的元素。
根据引理\(10.1\),我们现在可以推导出\(J(\theta)\)的梯度。
定理10.3(折现情况下的确定性策略梯度定理)。 在折现因子\(\gamma\in(0,1)\)的情况下,式\((10.15)\)中\(J(\theta)\)的梯度为 $\(\begin{aligned}\nabla_{\theta}J(\theta)&=\sum_{s\in\mathcal{S}}\rho_{\mu}(s)\nabla_{\theta}\mu(s)\left(\nabla_{a}q_{\mu}(s,a)\right)|_{a=\mu(s)}\\&=\mathbb{E}_{S\sim\rho_{\mu}}\left[\nabla_{\theta}\mu(S)\left(\nabla_{a}q_{\mu}(S,a)\right)|_{a=\mu(S)}\right],\end{aligned}\)$ 其中状态分布\(\rho_\mu\)定义为 $\(\rho_{\mu}(s)=\sum_{s^{\prime}\in{\mathcal{S}}}d_{0}(s^{\prime})\mathrm{Pr}_{\mu}(s|s^{\prime}),\quad s\in{\mathcal{S}}.\)$ 此处,转移概率\(\mathrm{Pr}_{\mu}(s|s^{\prime})=\sum_{k=0}^{\infty}\gamma^{k}[P_{\mu}^{k}]_{s^{\prime}s}=[(I-\gamma P_{\mu})^{-1}]_{s^{\prime}s}\)表示在策略\(\mu\)下从状态\(s'\)转移到\(s\)的折现总概率。
指标2: 平均奖励值¶
接下来我们推导平均奖励值的梯度,平均奖励值的定义是:
其中
表示即时奖励的期望值。该目标函数的更多相关信息详见第\(9.2\)节,这里不再赘述。
函数\(J(\theta)\)的梯度由以下定理给出。
定理10.4(无折现情况下的确定性策略梯度定理)。在无折现情况下,\((10.20)\)式中\(J(\theta)\)的梯度为 $\(\begin{aligned}\nabla_{\theta}J(\theta)&=\sum_{s\in\mathcal{S}}d_{\mu}(s)\nabla_{\theta}\mu(s)\left(\nabla_{a}q_{\mu}(s,a)\right)|_{a=\mu(s)}\\&=\mathbb{E}_{S\sim d_{\mu}}\left[\nabla_{\theta}\mu(S)\left(\nabla_{a}q_{\mu}(S,a)\right)|_{a=\mu(S)}\right],\end{aligned}\)$ 其中 \(d_\mu\)为策略 \(\mu\)下状态的平稳分布。
10.4.2 算法描述¶
根据定理\(10.2\)给出的梯度,我们可以应用梯度上升算法来最大化\(J(\theta)\):
对应的随机梯度上升算法为
具体的实施步骤可参见算法\(10.4\)。下面是对算法的一些解释说明
第一,该算法属于Off-policy方法,因为行为策略\(\beta\)可能与目标策略\(\mu\)不同。具体来说,这里的Actor是Off-policy的,我们在介绍定理\(10.2\)时已说明原因。其次,Critic同样是Off-policy的。但需特别注意为什么Critic虽然为Off-policy却不需要重要性采样呢?这是因为Critic所需的经验样本为\((s_t, a_t, r_{t+1}, s_{t+1}, \tilde{a}_{t+1})\),其中\(\tilde{a}_{t+1} = \mu(s_{t+1})\)。这个经验样本的生成涉及两个策略:第一个是在状态\(s_t\)下生成\(a_t\)的策略,第二个是在状态\(s_{t+1}\)下生成\(\tilde{a}_{t+1}\)的策略。由于\(a_t\)用于与环境交互,其生成策略必然是行为策略;而\(\tilde{a}_{t+1}\)的生成策略是目标策略\(\mu\),它也是Critic要评价的策略。值得注意的是,\(\tilde{a}_{t+1}\)不会在下一时刻执行,因为\(\mu\)不是行为策略。综上所述,这里Critic本质上属于Off-policy的。
第二,如何选择函数\(q(s, a, w)\)?最初提出确定性策略梯度方法的研究工作[74]采用了线性函数:\(q(s, a, w) = \varphi^T(s, a)w\),其中\(\varphi(s, a)\)为特征向量。目前主流的做法是采用神经网络来表示\(q(s, a, w)\),如深度确定性策略梯度(deep deterministic policy gradient, DDPG)算法[75]。
第三,如何选择行为策略\(\beta\)?它可以是任何探索性策略,也可以是通过向\(\mu\)添加噪声获得的随机策略[75]。此时\(\mu\)即为行为策略,因此这种方式属于On-policy实现。

算法\(10.4\):确定性策略梯度或确定性行动者-评论家方法
Note
\(\mu\)+noise的方式与我们之前的 \(\varepsilon\)-贪婪的方法类似,但是这里我们不能用,因为这里边他的行动是连续的,我不能在其它有限的行动上加一些比较小的概率