9.3-目标函数的梯度
我们可以使用梯度上升的方法来最大化上一节介绍的目标函数。要做到这一点,我们需要首先计算这些目标函数的梯度。下面的定理给出了目标函数梯度的表达式,它也是本章最重要的理论结果。
定理9.1(策略梯度定理). 目标函数 \(J(\theta)\)的梯度为 $\(\nabla_\theta J(\theta) = \sum_{s\in\mathcal{S}} \eta(s) \sum_{a\in\mathcal{A}} \nabla_\theta \pi(a|s, \theta) q_\pi(s, a),\tag{9.8}\)$ 其中\(\eta\)为稳态分布,\(\nabla_\theta \pi\)表示策略\(\pi\)对参数\(\theta\)的梯度。此外,\((9.8)\)式可简化为期望形式: $\(\nabla_\theta J(\theta) = \mathbb{E}_{S\sim\eta,A\sim\pi(S,\theta)} \left[ \nabla_\theta \ln \pi(A|S, \theta) q_\pi(S, A) \right],\tag{9.8}\)$ 式中\(\ln\)为自然对数。
下面是关于定理9.1的一些重要说明。
-
第一,需注意的是,定理\(9.1\)是对定理\(9.2\),定理\(9.3\)及定理\(9.5\)的汇总。虽然这三个定理是针对不同场景的,但是因为这些场景下的梯度的表达式都类似,所以为了方便阅读汇总得到了定理\(9.1\)。其中\(J(\theta)\)与\(\eta\)的具体表达式并没有给出,而是分别在定理\(9.2\),定理\(9.3\)和定理\(9.5\)给出。不同定理中,\(J(\theta)\)和\(\eta\)可能不同,例如\(J(\theta)\)可能是\(\bar{v}_0^\pi\),\(\bar{v}^\pi\)或\(\bar{r}^\pi\)。而且式\((9.8)\)可能变成严格等式或一个近似。
推导目标函数的梯度是策略梯度方法中最复杂的部分。对于大部分读者而言,熟悉定理\(9.1\)中的基本结论已经足够了,而无需了解证明过程。特别感兴趣的读者可以阅读\(9.3.1\)和\(9.3.2\),其中有比较多的数学推导,建议读者根据兴趣选择性研读。
-
式\((9.9)\)比式\((9.8)\)更具优势,因为它是以期望形式表达的。后面我们将在第\(9.4\)节证明:该这个带有期望的真实的梯度可以通过随机梯度来近似。
为什么\((9.8)\)式可以等价写成为\((9.9)\)式?证明如下。根据期望的定义,\((9.8)\)式可改写为
\[\begin{aligned}\nabla_{\theta}J(\theta)&=\sum_{s\in\mathcal{S}}\eta(s)\sum_{a\in\mathcal{A}}\nabla_{\theta}\pi(a|s,\theta)q_{\pi}(s,a)\\&=\mathbb{E}_{S\sim\eta}\left[\sum_{a\in\mathcal{A}}\nabla_{\theta}\pi(a|S,\theta)q_{\pi}(S,a)\right].\end{aligned}\tag{9.10}\]考虑\(\ln \pi(a|s, \theta)\)的梯度为
\[\nabla_\theta\ln\pi(a|s,\theta)=\frac{\nabla_\theta\pi(a|s,\theta)}{\pi(a|s,\theta)}.\]由此可得
\[\nabla_\theta\pi(a|s,\theta)=\pi(a|s,\theta)\nabla_\theta\ln\pi(a|s,\theta)\tag{9.11}\]将式\((9.11)\)代入式\((9.10)\)可得
\[\begin{aligned}\nabla_{\theta}J(\theta)&=\mathbb{E}\left[\sum_{a\in\mathcal{A}}\pi(a|S,\theta)\nabla_{\theta}\ln\pi(a|S,\theta)q_{\pi}(S,a)\right]\\&=\mathbb{E}_{S\sim\eta,A\sim\pi(S,\theta)}\left[\nabla_{\theta}\ln\pi(A|S,\theta)q_{\pi}(S,A)\right].\end{aligned}\] -
第三,自然对数\(\ln\)要求\(\pi(a|s, \theta)\)对所有状态-行动对\((s, a)\)都满足\(\pi(a|s, \theta)>0\)(而不能出现\(\pi(a|s, \theta)=0\)),因此这个策略必须是随机且具有探索性的,这一特性可通过softmax函数实现:
\[\pi(a|s,\theta)=\frac{e^{h(s,a,\theta)}}{\sum_{a^{\prime}\in\mathcal{A}}e^{h(s,a^{\prime},\theta)}},\quad a\in\mathcal{A},\tag{9.12}\]其中\(h(s, a, \theta)\)表示在状态\(s\)下选择行动\(a\)偏好的优先度的特征函数。式\((9.12)\)中的策略满足\(\pi(a|s, \theta) \in (0,1)\)且对任意\(s \in \mathcal{S}\)有\(\sum_{a \in \mathcal{A}} \pi(a|s, \theta) =1\)。这个策略可以通过神经网络实现:网络输入为状态\(s\),输出层采用Softmax层,因此网络输出所有工作的概率为\(\pi(a|s, \theta)\),并且输出的总和为\(1\)。见图\(9.2(b)\)。
Note
由于对所有行动\(a\)均有\(\pi(a|s, \theta) >0\),该策略是随机且具有探索性的。策略本身并不直接指定应采取的动作,而是需要根据策略的概率分布生成动作。
9.3.1 推导策略梯度: 有折现的情况¶
下面开始推导目标函数的梯度。首先考虑有折扣的情况,即\(\gamma\in(0,1)\)。此时状态值与行动值定义为:
并且它们满足\(v_\pi(s) = \sum_{a\in A} \pi(a|s, \theta)q_\pi(s, a)\)。
首先,我们证明\(\bar{v}_\pi(\theta)\)与\(\bar{r}_\pi(\theta)\)是等价的目标函数。
引理9.1.(\(\bar{v}_\pi(\theta)\)与 \(\bar{r}_\pi(\theta)\)的等价性)。在折扣因子 \(\gamma \in (0,1)\)的情形下,成立关系式 $\(\bar{r}_\pi = (1 - \gamma)\bar{v}_\pi. \quad (9.13)\)$ 证明:注意到 \(\bar{v}_\pi(\theta) = d_\pi^T v_\pi\)且 \(\bar{r}_\pi(\theta) = d_\pi^T r_\pi\),其中 \(v_\pi\)和 \(r_\pi\)满足Bellman方程\(v_\pi = r_\pi + \gamma P_\pi v_\pi\)。将Bellman方程两边同乘\(d_\pi^T\)可得 $\(\bar{v}_\pi = \bar{r}_\pi + \gamma d_\pi^T P_\pi v_\pi = \bar{r}_\pi + \gamma d_\pi^T v_\pi = \bar{r}_\pi + \gamma \bar{v}_\pi,\)\(由此即得\)(9.13)$。
第二,下面的引理给出了任意一个状态值\(s\)对策略的梯度。
引理9.2.(状态值的梯度)。在折现情形下,对于任意状态\(s \in \mathcal{S}\),有: $\(\nabla_\theta v_\pi(s) = \sum_{s' \in \mathcal{S}} \Pr\nolimits_\pi(s'|s) \sum_{a \in \mathcal{A}} \nabla_\theta \pi(a|s', \theta) q_\pi(s', a),\tag{9.14}\)$ 其中 $\(\Pr\nolimits_\pi(s'|s) \doteq \sum_{k=0}^\infty \gamma^k [P_\pi^k]_{ss'} = \left[ (I_n - \gamma P_\pi)^{-1} \right]_{ss'}\)$ 表示策略\(\pi\)下从\(s\)转移到\(s'\)的折现总概率。此处\([\cdot]_{ss'}\)表示矩阵第\(s\)行和第\(s'\)列元素,\([P_\pi^k]_{ss'}\)为策略\(\pi\)下经\(k\)步从\(s\)转移到\(s'\)的概率。
基于引理\(9.2\)的结果,我们下面可以推导出\(\bar{v}_0^\pi\)的梯度。正如前面所提到的,这里的上标“0”表示该目标函数状态概率分布与策略\(\pi\)无关。
定理9.2.(折扣情形下的\(\bar{v}_0^\pi\)梯度)。在折现因子\(\gamma \in (0,1)\)的情形下,\(\bar{v}_0^\pi = \mathbf{d}_0^\mathrm{T} \mathbf{v}^\pi\)的梯度为 $\(\nabla_\theta \bar{v}_0^\pi = \mathbb{E} \left[ \nabla_\theta \ln \pi(A|S, \theta) q_\pi(S, A) \right],\)$ 其中状态\(S \sim \rho^\pi\)且行动\(A \sim \pi(S, \theta)\)。此处状态分布\(\rho^\pi\)定义为 $\(\rho^\pi(s) = \sum_{s' \in \mathcal{S}} d_0(s') \mathrm{Pr}^\pi(s|s'), \quad s \in \mathcal{S},\tag{9.19}\)$ 其中\(\mathrm{Pr}^\pi(s|s') = \sum_{k=0}^\infty \gamma^k [P_\pi^k]_{s's} = [(I - \gamma P_\pi)^{-1}]_{s's}\)在策略\(\pi\)下从状态\(s'\)转移到状态\(s\)的折现总概率。
根据引理\(9.1\)和引理\(9.2\),我们可以推导出\(\bar{r}_\pi\)和\(\bar{v}_\pi\)的梯度。与定理\(9.2\)不同,下面定理中目标函数的状态概率分布与策略\(\pi\)相关。
定理9.3.(折扣情形下的\(\bar{r}_\pi\)与\(\bar{v}_\pi\)梯度)。在折x现因子\(\gamma \in (0,1)\)的情形下,\(\bar{r}_\pi\)和\(\bar{v}_\pi\)的梯度满足: $\(\nabla_\theta \bar{r}_\pi = (1 - \gamma) \nabla_\theta \bar{v}_\pi \approx \sum_{s \in \mathcal{S}} d_\pi(s) \sum_{a \in \mathcal{A}} \nabla_\theta \pi(a|s, \theta) q_\pi(s, a) = \mathbb{E} \left[ \nabla_\theta \ln \pi(A|S, \theta) q_\pi(S, A) \right],\)$ 其中\(S \sim d_\pi\)且\(A \sim \pi(S, \theta)\)。当\(\gamma\)越接近1时,该近似结果越精确。
9.3.2 推导策略梯度: 无折现的情况¶
接下来我们将考虑无折扣情形(即\(\gamma =1\))下目标函数的梯度。为什么本书此前讨论折现情形,却突然开始分析无折现情形。事实上,目标函数\(\bar{r}_\pi\)的定义同时适用于有折现与无折现情形。在折现情形下 \(\bar{r}_\pi\)的梯度是一种近似,在无折现的情况下,我们将看到其梯度的推导更加严格和优美。
状态值与泊松方程¶
在无折扣情况下,我们需重新定义状态值与行动值。由于奖励的直接求和\(\mathbb{E}[R_{t+1} + R_{t+2} + R_{t+3} + \dots |S_t = s]\)可能发散,因此状态值与动作值需采用特殊方式定义[64]:
其中\(\bar{r}_\pi\)表示平均奖励。文献中对\(v_\pi(s)\)有不同称谓,如"差分奖励"(differential reward)[65]或"偏差"[2,第8.2.1节]。不难验证,上述定义的状态值函数满足如下式:
此外,通过对比上式和\(v_\pi(s) = \sum_{a \in \mathcal{A}} \pi(a|s, \theta) q_\pi(s, a)\),可以得到行动值的表达式为\(q_\pi(s, a) = \sum_{r} p(r|s, a)(r - \bar{r}_\pi) + \sum_{s'} p(s'|s, a)v_\pi(s')\)。将式\((9.22)\)的矩阵-向量形式可得
其中\(\mathbf{1}_n = [1, \ldots,1]^T \in \mathbb{R}^n\)。读者可能注意到了方程\((9,22)\)和\((9.23)\)与贝尔曼方程类似,两者唯一区别是多了\(\bar{r}_\pi\)这一项。实际上,它们都有一个特定名称的为泊松方程(Poisson equation)[65,67]。
如何从泊松方程求解\(v_\pi\)?答案由以下定理给出。
定理9.4(泊松方程的解)。令$\(v^*_\pi = (I_n - P_\pi +1_n d^T_\pi)^{-1} r_\pi.\tag{9.24}\)$ 则\(v^*_\pi\)是方程\((9.23)\)中泊松方程的一个解。此外,泊松方程的任意解均可表示为以下形式: $\(v_\pi = v^*_\pi + c1_n,\)$ 其中\(c \in \mathbb{R}\)。
该定理表明泊松方程的解可能不唯一的。
梯度推导¶
虽然定理\(9.4\)表明在无折现情形下\(v_\pi\)的值不唯一,但 \(\bar{r}_\pi\)的值具有唯一性。具体来说,将\(v_\pi=v^*_\pi + c\mathbf{1}_n\)代入泊松方程可得:
注意其中\(c\)被消去,因此\(\bar{r}_\pi\)具有唯一性。这使得我们能够计算无折现情形下\(\bar{r}_\pi\)的梯度。
定理9.5(无折现情形下\(\bar{r}_\pi\)的梯度)。 平均奖励\(\bar{r}_\pi\)的梯度为 $\(\nabla_\theta \bar{r}_\pi = \sum_{s \in \mathcal{S}} d_\pi(s) \sum_{a \in \mathcal{A}} \nabla_\theta \pi(a|s, \theta) q_\pi(s, a) = \mathbb{E} \left[ \nabla_\theta \ln \pi(A|S, \theta) q_\pi(S, A) \right],\tag{9.28}\)$ 其中状态\(S \sim d_\pi\)且行动\(A \sim \pi(S, \theta)\)。
与定理\(9.3\)描述的折扣情形相比,非折扣情形下的\(\bar{r}_\pi\)梯度具有更优美的数学表达,这是因为式\((9.28)\)是严格成立的。
最后,由于\(v_\pi\)不唯一,因此\(\bar{v}_\pi\)也不唯一。所以我们这里不关注\(\bar{v}_\pi\)的梯度。对于感兴趣的读者,需要说明的是:我们可以通过增加更多的约束条件来唯一确定\(v_\pi\)。例如,假设存在一个循环状态(recurrent state),这个循环状态的状态值可以确定下来[65第II节],进而可以唯一确定\(c\)值。当然,还存在其他方式可以唯一确定\(v_\pi\),具体可参见文献[2]中的方程\((8.6.5)-(8.6.7)\)。