跳转至

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)\)。此时状态值与行动值定义为:

\[\begin{aligned}v_{\pi}(s)&=\mathbb{E}[R_{t+1}+\gamma R_{t+2}+\gamma^{2}R_{t+3}+\ldots|S_{t}=s],\\q_{\pi}(s,a)&=\mathbb{E}[R_{t+1}+\gamma R_{t+2}+\gamma^{2}R_{t+3}+\ldots|S_{t}=s,A_{t}=a].\end{aligned}\]

并且它们满足\(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]:

\[\begin{aligned}v_{\pi}(s)&\doteq\mathbb{E}[(R_{t+1}-\bar{r}_\pi)+(R_{t+2}-\bar{r}_\pi)+(R_{t+3}-\bar{r}_\pi)+\ldots|S_t=s],\\q_{\pi}(s,a)&\doteq\mathbb{E}[(R_{t+1}-\bar{r}_\pi)+(R_{t+2}-\bar{r}_\pi)+(R_{t+3}-\bar{r}_\pi)+\ldots|S_t=s,A_t=a],\end{aligned}\]

其中\(\bar{r}_\pi\)表示平均奖励。文献中对\(v_\pi(s)\)有不同称谓,如"差分奖励"(differential reward)[65]或"偏差"[2,第8.2.1节]。不难验证,上述定义的状态值函数满足如下式:

\[v_\pi(s)=\sum_a\pi(a|s,\theta)\left[\sum_rp(r|s,a)(r-\bar{r}_\pi)+\sum_{s^{\prime}}p(s^{\prime}|s,a)v_\pi(s^{\prime})\right].\tag{9.22}\]

此外,通过对比上式和\(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)\)的矩阵-向量形式可得

\[v_\pi = r_\pi - \bar{r}_\pi \mathbf{1}_n + P_\pi v_\pi,\tag{9.23}\]

其中\(\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\)代入泊松方程可得:

\[\bar{r}_\pi \mathbf{1}_n = r_\pi + (P_\pi - I_n) v_\pi = r_\pi + (P_\pi - I_n)(v^*_\pi + c\mathbf{1}_n) = r_\pi + (P_\pi - I_n) v^*_\pi\]

注意其中\(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)\)


评论