Skip to main content

9. Policy gradient

1. Intro: 优化目标​

我们将使用函数来得出策略,输入状态输出策略

当策略由参数化函数 πθ(a∣s)\pi_\theta(a\mid s) 表示时,我们不再能逐个比较所有状态的价值来定义“最优”。

Tabular policy vs Params policy 以及原因

参数的共享​

Tabular policy 就是一张表:

a1a2s10.20.8s20.70.3\begin{array}{c|cc} &a_1&a_2\\ \hline s_1&0.2&0.8\\ s_2&0.7&0.3 \end{array}

这里

π(a1∣s1),π(a1∣s2)\pi(a_1|s_1),\quad \pi(a_1|s_2)

是两个独立的表项。对 s1s_1 时策略的更改不影响 s2s_2

但是参数化的策略,修改 θ\theta 同时会影响其他状态的策略输出

更深层的问题:可能存在 trade-off​

假设当前:

vθ(s1)=10,vθ(s2)=5.v_\theta(s_1)=10,\qquad v_\theta(s_2)=5.

改变参数以后:

vθ′(s1)=12,vθ′(s2)=4.v_{\theta'}(s_1)=12,\qquad v_{\theta'}(s_2)=4.

那么 θ′\theta' 到底是不是更好? 你不能回答。


取而代之的是,先定义一个关于参数 θ\theta 的标量目标 J(θ)J(\theta),再沿其梯度方向更新:

θt+1=θt+α∇θJ(θt).\theta_{t+1}=\theta_t+\alpha\nabla_\theta J(\theta_t).

下面先介绍三种常见的优化目标。记 vπ(s)v_\pi(s) 为折扣状态价值,rπ(s)=EA∼πθ(⋅∣s)[r(s,A)]r_\pi(s)=\mathbb E_{A\sim\pi_\theta(\cdot\mid s)}[r(s,A)] 为状态 ss 下的一步期望奖励;向量形式分别记为 vπv_\pi 与 rπr_\pi。

1.1 固定初始分布下的平均状态价值​

设初始状态服从一个与策略无关的固定分布 d0d_0。最常见的情形是每个回合都从同一初始状态 s0s_0 开始,此时 d0(s0)=1d_0(s_0)=1。目标定义为

J(θ)=vˉπ0=d0Tvπ=ES0∼d0[vπ(S0)].J(\theta)=\bar v^0_\pi=d_0^T v_\pi =\mathbb E_{S_0\sim d_0}[v_\pi(S_0)].

它衡量策略 从任务指定起点(或指定的初始状态分布)出发时,所能获得的折扣回报。这里 d0d_0 不随 θ\theta 改变,策略只通过 vπv_\pi 影响目标。

1.2 平稳分布加权的平均状态价值​

若策略 π\pi 诱导的马尔可夫链存在平稳分布 dπd_\pi,(即按照策略,给定初始状态走无限多次,最终每个状态的访问权重期望)则

J(θ)=vˉπ=dπTvπ\boxed{ J(\theta)=\bar v_\pi=d_\pi^T v_\pi }

其中 dπTPπ=dπTd_\pi^T P_\pi=d_\pi^T。长期中经常被访问的状态在 dπd_\pi 中权重更大,因此该目标评价的是策略自身长期行为下的平均折扣状态价值。与第一个目标不同,dπd_\pi 和 vπv_\pi 都依赖于策略参数 θ\theta。

这里再补充一下求解方法

  1. dπTPπ=dπTd_\pi^T P_\pi=d_\pi^T 但我们一般不这么做

  2. 直接随机采样,那问题来了,我们随机采样,如何选择初始状态呢?

事实上,初始状态可以任取,但通常需要 Markov chain 有比较好的遍历性质,比如有限状态情况下常见地要求 irreducible + aperiodic

  • Irreducible 不可约:任意状态最终都有可能到达其他状态,防止整个状态空间被切成几个互不相通的小岛

  • Aperiodic 非周期:不会被强制按照固定周期来回跳

所以而已不断的从现在分布采样并且进行访问,再更新现有分布采样,不断循环到收敛

1.3 平均奖励​

平均奖励目标直接评价长期稳态下每一步获得的期望奖励:

J(θ)=rˉπ=dπTrπ\boxed{ J(\theta)=\bar r_\pi=d_\pi^T r_\pi }

这里

rπ(s)=∑aπ(a∣s)∑s′P(s′∣s,a) r(s,a,s′).r_\pi(s) = \sum_a\pi(a\mid s) \sum_{s'}P(s'\mid s,a)\,r(s,a,s').

代表从 ss 出发,π\pi 策略下一步的奖励期望

等价地,在满足相应遍历条件时,

rˉπ=lim⁡n→∞1nE[∑t=0n−1Rt+1].\bar r_\pi= \lim_{n\to\infty}\frac{1}{n} \mathbb E\left[\sum_{t=0}^{n-1}R_{t+1}\right].

1.4 目标 2 与目标 3 的优化方向相同​

对折扣因子 0≤γ<10\leq\gamma<1,状态价值向量满足

vπ=∑t=0∞γtPπtrπ.v_\pi=\sum_{t=0}^{\infty}\gamma^tP_\pi^t r_\pi.

左乘平稳分布 dπTd_\pi^T,并利用 dπTPπt=dπTd_\pi^T P_\pi^t=d_\pi^T,可得

vˉπ=dπTvπ=∑t=0∞γtdπTrπ=11−γrˉπ.\bar v_\pi =d_\pi^T v_\pi =\sum_{t=0}^{\infty}\gamma^t d_\pi^T r_\pi =\frac{1}{1-\gamma}\bar r_\pi.

因此

∇θvˉπ=11−γ∇θrˉπ.\nabla_\theta\bar v_\pi =\frac{1}{1-\gamma}\nabla_\theta\bar r_\pi.

由于 1/(1−γ)>01/(1-\gamma)>0 是与策略无关的常数,两个梯度始终同向;最大化平稳分布加权的平均状态价值,与最大化平均奖励,会得到完全相同的策略优化方向。它们的区别只在目标数值的正比例缩放,而不在最优策略或梯度上升方向。

2. Policy Gradient Theorem​

这一节不直接套用结论,而是分别对三个目标 JJ 求导。最后会看到:它们都包含同一个“状态 ss 的局部梯度贡献”,区别仅在于如何对不同状态加权。

2.1 折扣情形的公共基础:∇θvπ\nabla_\theta v_\pi​

本小节先假设 0≤γ<10\leq\gamma<1。定义折扣 action value:

qπγ(s,a)=Eπ[∑k=0∞γkRt+k+1|St=s,At=a].q_\pi^\gamma(s,a)= \mathbb E_\pi\left[ \sum_{k=0}^{\infty}\gamma^kR_{t+k+1} \middle|S_t=s,A_t=a \right].

因此

vπ(s)=∑aπθ(a∣s)qπγ(s,a).v_\pi(s)=\sum_a\pi_\theta(a\mid s)q_\pi^\gamma(s,a).

先定义一个后面会反复出现的局部项:

u(s)=∑a∇θπθ(a∣s)qπγ(s,a)\boxed{ u(s)=\sum_a\nabla_\theta\pi_\theta(a\mid s)q_\pi^\gamma(s,a) }

它表示在状态 ss 直接改变动作概率时,对目标的局部影响。由 Bellman 方程

qπγ(s,a)=r(s,a)+γ∑s′p(s′∣s,a)vπ(s′),q_\pi^\gamma(s,a)=r(s,a)+ \gamma\sum_{s'}p(s'\mid s,a)v_\pi(s'),

这里的 r(s,a)r(s,a) 表示给定 (s,a)(s,a) 后的一步期望奖励;若奖励还依赖下一状态 s′s',它已经对 s′s' 取过期望。环境的 r(s,a)r(s,a) 与 p(s′∣s,a)p(s'\mid s,a) 不依赖参数 θ\theta,故

∇θqπγ(s,a)=γ∑s′p(s′∣s,a)∇θvπ(s′).\nabla_\theta q_\pi^\gamma(s,a)= \gamma\sum_{s'}p(s'\mid s,a)\nabla_\theta v_\pi(s').

对 vπ(s)v_\pi(s) 求导并代入上式:

∇θvπ(s)=u(s)+γ∑s′Pπ(s,s′)∇θvπ(s′),\nabla_\theta v_\pi(s) =u(s)+\gamma\sum_{s'}P_\pi(s,s')\nabla_\theta v_\pi(s'),

其中

Pπ(s,s′)=∑aπθ(a∣s)p(s′∣s,a)P_\pi(s,s')=\sum_a\pi_\theta(a\mid s)p(s'\mid s,a)

是执行策略后的状态转移概率。将所有状态堆叠成向量(每个分量的梯度都是一个参数向量)可简写为

∇θvπ=u+γPπ∇θvπ.\nabla_\theta v_\pi=u+\gamma P_\pi\nabla_\theta v_\pi.

所以

∇θvπ=(I−γPπ)−1u.\boxed{ \nabla_\theta v_\pi=(I-\gamma P_\pi)^{-1}u. }

这就是两个折扣价值目标的公共基础。

2.2 目标 1:固定初始分布下的平均状态价值​

J(θ)=vˉπ0=d0Tvπ.J(\theta)=\bar v_\pi^0=d_0^Tv_\pi.

由于 d0d_0 是任务给定的初始分布,不随 θ\theta 改变:

∇θvˉπ0=d0T∇θvπ=d0T(I−γPπ)−1u.\nabla_\theta\bar v_\pi^0 =d_0^T\nabla_\theta v_\pi =d_0^T(I-\gamma P_\pi)^{-1}u.

使用

(I−γPπ)−1=I+γPπ+γ2Pπ2+⋯ ,(I-\gamma P_\pi)^{-1}=I+\gamma P_\pi+\gamma^2P_\pi^2+\cdots,

定义行向量

ρπT=d0T(I−γPπ)−1.\rho_\pi^T=d_0^T(I-\gamma P_\pi)^{-1}.

其第 ss 个分量为

ρπ(s)=∑t=0∞γtPr⁡π(St=s∣S0∼d0).\rho_\pi(s)=\sum_{t=0}^{\infty}\gamma^t \Pr_\pi(S_t=s\mid S_0\sim d_0).

它是状态 ss 的未归一化折扣访问量:越早访问到 ss,权重越大。于是

∇θvˉπ0=∑sρπ(s)∑a∇θπθ(a∣s)qπγ(s,a).\boxed{ \nabla_\theta\bar v_\pi^0= \sum_s\rho_\pi(s)\sum_a \nabla_\theta\pi_\theta(a\mid s)q_\pi^\gamma(s,a). }

这是严格等式;此时状态权重为 η(s)=ρπ(s)\eta(s)=\rho_\pi(s)。

2.3 目标 2:平稳分布加权的平均状态价值​

J(θ)=vˉπ=dπTvπ.J(\theta)=\bar v_\pi=d_\pi^Tv_\pi.

这里不能像目标 1 一样直接把 dπd_\pi 当常数,因为策略改变会改变长期的状态访问比例,即 dπ=dπ(θ)d_\pi=d_\pi(\theta)。乘积法则给出

∇θvˉπ=(∇θdπT)vπ+dπT∇θvπ.\nabla_\theta\bar v_\pi= (\nabla_\theta d_\pi^T)v_\pi+d_\pi^T\nabla_\theta v_\pi.

第二项可由 2.1 节计算。利用平稳性 dπTPπ=dπTd_\pi^TP_\pi=d_\pi^T:

dπT(I−γPπ)−1=dπT(I+γPπ+γ2Pπ2+⋯ )=11−γdπT.\begin{aligned} d_\pi^T(I-\gamma P_\pi)^{-1} &=d_\pi^T(I+\gamma P_\pi+\gamma^2P_\pi^2+\cdots)\\ &=\frac{1}{1-\gamma}d_\pi^T. \end{aligned}

因此严格地说:

∇θvˉπ=(∇θdπT)vπ+11−γdπTu.\boxed{ \nabla_\theta\bar v_\pi= (\nabla_\theta d_\pi^T)v_\pi+ \frac{1}{1-\gamma}d_\pi^Tu. }

当 γ\gamma 接近 11,且 (∇θdπT)vπ(\nabla_\theta d_\pi^T)v_\pi 不发散时,第二项的系数 1/(1−γ)1/(1-\gamma) 很大,教材采用近似:

∇θvˉπ≈11−γ∑sdπ(s)∑a∇θπθ(a∣s)qπγ(s,a).\boxed{ \nabla_\theta\bar v_\pi\approx \frac{1}{1-\gamma} \sum_sd_\pi(s)\sum_a \nabla_\theta\pi_\theta(a\mid s)q_\pi^\gamma(s,a). }

因此本目标也有相同的局部项 u(s)u(s),但状态权重改为 dπ(s)d_\pi(s);这里是近似而不是严格等式。

2.4 目标 3:折扣情形下的平均奖励​

前面已经得到

rˉπ=(1−γ)vˉπ.\bar r_\pi=(1-\gamma)\bar v_\pi.

所以

∇θrˉπ=(1−γ)∇θvˉπ≈dπTu.\nabla_\theta\bar r_\pi=(1-\gamma)\nabla_\theta\bar v_\pi \approx d_\pi^Tu.

即

∇θrˉπ≈∑sdπ(s)∑a∇θπθ(a∣s)qπγ(s,a).\boxed{ \nabla_\theta\bar r_\pi\approx \sum_sd_\pi(s)\sum_a \nabla_\theta\pi_\theta(a\mid s)q_\pi^\gamma(s,a). }

这个近似继承自上一节;也正是它与目标 2 的近似梯度方向相同的原因。

2.5* 无折扣平均奖励:严格的结果​

当 γ=1\gamma=1 时,优化目标仍然是平均奖励:

J(θ)=rˉπ.J(\theta)=\bar r_\pi.

普通回报会发散,因此不能再把 vπv_\pi 定义为无限奖励之和。下面的 vπv_\pi 只是为了推导 ∇θrˉπ\nabla_\theta\bar r_\pi 而引入的 differential value;它可以整体加上任意常数,因而不是这里要直接最大化的目标。相应地,改用 differential action value:

qπavg(s,a)=Eπ[∑k=0∞(Rt+k+1−rˉπ)|St=s,At=a].q_\pi^{\mathrm{avg}}(s,a)= \mathbb E_\pi\left[ \sum_{k=0}^{\infty}(R_{t+k+1}-\bar r_\pi) \middle|S_t=s,A_t=a \right].

其中 rˉπ\bar r_\pi 可由长期轨迹估计:

rˉ^n=1n∑t=0n−1Rt+1,rˉ^←rˉ^+β(Rt+1−rˉ^).\hat{\bar r}_n=\frac{1}{n}\sum_{t=0}^{n-1}R_{t+1}, \qquad \hat{\bar r}\leftarrow\hat{\bar r}+\beta(R_{t+1}-\hat{\bar r}).

对应的 Poisson 方程为

vπ=rπ−rˉπ1+Pπvπ.v_\pi=r_\pi-\bar r_\pi\mathbf1+P_\pi v_\pi.

rπr_\pi 是一个向量,rπ(s)r_\pi(s) 表示从状态 ss 出发执行策略后的一步期望奖励;rˉπ\bar r_\pi 才是标量。乘上全 11 向量后,rˉπ1\bar r_\pi\mathbf1 才能与 rπr_\pi 相减。按单个状态 ss 展开,上式是

vπ(s)=rπ(s)−rˉπ+∑s′Pπ(s,s′)vπ(s′).v_\pi(s)=r_\pi(s)-\bar r_\pi+ \sum_{s'}P_\pi(s,s')v_\pi(s').

下面把梯度一步步推出来。首先,differential action value 满足

qπavg(s,a)=r(s,a)−rˉπ+∑s′p(s′∣s,a)vπ(s′).q_\pi^{\mathrm{avg}}(s,a)= r(s,a)-\bar r_\pi+ \sum_{s'}p(s'\mid s,a)v_\pi(s').

这里 r(s,a)r(s,a) 和 p(s′∣s,a)p(s'\mid s,a) 是环境给定的,不随 θ\theta 改变。因此

∇θqπavg(s,a)=−∇θrˉπ+∑s′p(s′∣s,a)∇θvπ(s′).\nabla_\theta q_\pi^{\mathrm{avg}}(s,a)= -\nabla_\theta\bar r_\pi+ \sum_{s'}p(s'\mid s,a)\nabla_\theta v_\pi(s').

又因为

vπ(s)=∑aπθ(a∣s)qπavg(s,a),v_\pi(s)=\sum_a\pi_\theta(a\mid s)q_\pi^{\mathrm{avg}}(s,a),

使用乘积法则:

∇θvπ(s)=∑a[∇θπθ(a∣s)qπavg(s,a)+πθ(a∣s)∇θqπavg(s,a)]=∑a∇θπθ(a∣s)qπavg(s,a)+∑aπθ(a∣s)[−∇θrˉπ+∑s′p(s′∣s,a)∇θvπ(s′)]=u(s)−(∑aπθ(a∣s))∇θrˉπ+∑s′[∑aπθ(a∣s)p(s′∣s,a)]∇θvπ(s′)=u(s)−∇θrˉπ+∑s′Pπ(s,s′)∇θvπ(s′).\begin{aligned} \nabla_\theta v_\pi(s) &=\sum_a\left[ \nabla_\theta\pi_\theta(a\mid s)q_\pi^{\mathrm{avg}}(s,a) +\pi_\theta(a\mid s)\nabla_\theta q_\pi^{\mathrm{avg}}(s,a) \right]\\ &=\sum_a\nabla_\theta\pi_\theta(a\mid s)q_\pi^{\mathrm{avg}}(s,a)\\ &\quad+\sum_a\pi_\theta(a\mid s) \left[ -\nabla_\theta\bar r_\pi+ \sum_{s'}p(s'\mid s,a)\nabla_\theta v_\pi(s') \right]\\ &=u(s) -\left(\sum_a\pi_\theta(a\mid s)\right)\nabla_\theta\bar r_\pi\\ &\quad+\sum_{s'} \left[\sum_a\pi_\theta(a\mid s)p(s'\mid s,a)\right] \nabla_\theta v_\pi(s')\\ &=u(s)-\nabla_\theta\bar r_\pi +\sum_{s'}P_\pi(s,s')\nabla_\theta v_\pi(s'). \end{aligned}

所有状态写成向量,得到

∇θvπ=u−1∇θrˉπ+Pπ∇θvπ,\nabla_\theta v_\pi= u-\mathbf1\nabla_\theta\bar r_\pi+P_\pi\nabla_\theta v_\pi,

其中 u(s)=∑a∇θπθ(a∣s)qπavg(s,a)u(s)=\sum_a\nabla_\theta\pi_\theta(a\mid s)q_\pi^{\mathrm{avg}}(s,a)。现在左乘 dπTd_\pi^T:

dπT∇θvπ=dπTu−dπT1∇θrˉπ+dπTPπ∇θvπ=dπTu−∇θrˉπ+dπT∇θvπ.\begin{aligned} d_\pi^T\nabla_\theta v_\pi &=d_\pi^Tu-d_\pi^T\mathbf1\nabla_\theta\bar r_\pi +d_\pi^TP_\pi\nabla_\theta v_\pi\\ &=d_\pi^Tu-\nabla_\theta\bar r_\pi +d_\pi^T\nabla_\theta v_\pi. \end{aligned}

第二行只使用了 dπT1=1d_\pi^T\mathbf1=1 和平稳性 dπTPπ=dπTd_\pi^TP_\pi=d_\pi^T。等式两边都有相同的 dπT∇θvπd_\pi^T\nabla_\theta v_\pi,将它消去后,便得到严格等式:

∇θrˉπ=∑sdπ(s)∑a∇θπθ(a∣s)qπavg(s,a).\boxed{ \nabla_\theta\bar r_\pi= \sum_sd_\pi(s)\sum_a \nabla_\theta\pi_\theta(a\mid s)q_\pi^{\mathrm{avg}}(s,a). }

2.6 统一形式,再改写为 ∇log⁡π\nabla\log\pi​

前面不同目标的推导都已得到同一结构:

∇θJ(θ)=∑sη(s)∑a∇θπθ(a∣s)qπ(s,a)=∑sη(s)∑aπθ(a∣s)∇θlog⁡πθ(a∣s)qπ(s,a)=ES∼ηA∼πθ(⋅∣S)[∇θlog⁡πθ(A∣S)qπ(S,A)].\begin{aligned} \nabla_\theta J(\theta) &=\sum_s\eta(s)\sum_a \nabla_\theta\pi_\theta(a\mid s)q_\pi(s,a)\\ &=\sum_s\eta(s)\sum_a \pi_\theta(a\mid s) \nabla_\theta\log\pi_\theta(a\mid s)q_\pi(s,a)\\ &=\mathbb E_{\substack{S\sim\eta\\A\sim\pi_\theta(\cdot\mid S)}} \left[ \nabla_\theta\log\pi_\theta(A\mid S)q_\pi(S,A) \right]. \end{aligned}

第二行使用 ∇θπθ(a∣s)=πθ(a∣s)∇θlog⁡πθ(a∣s)\nabla_\theta\pi_\theta(a\mid s)=\pi_\theta(a\mid s)\nabla_\theta\log\pi_\theta(a\mid s);第三行使用期望的定义。这样,原本需要枚举所有动作的求和就能由当前策略采样的动作估计。实际训练中以回报 GG 代替未知的 qπ(S,A)q_\pi(S,A),得到随机梯度 ∇θlog⁡πθ(A∣S)G\nabla_\theta\log\pi_\theta(A\mid S)G。

核心:转换成对数梯度的目的,是让“对所有动作求和”变为“从当前策略采样动作的期望”。理论上,可以通过枚举动作,或从其他分布采样大量动作并进行加权,来近似 ∑a∇θπθ(a∣s)qπ(s,a)\sum_a\nabla_\theta\pi_\theta(a\mid s)q_\pi(s,a) ;但这要求能为同一状态下的多个反事实动作分别估计其未来回报。在在线强化学习中,一次交互通常只能执行一个动作并观察一条后续轨迹。对数梯度使我们能够直接利用按当前策略采样得到的动作与回报,构造无偏的随机梯度。

这里假设 η\eta 是概率分布,例如平均奖励目标中的 dπd_\pi。对目标 1,ρπ\rho_\pi 的总和为 1/(1−γ)1/(1-\gamma),需先乘 (1−γ)(1-\gamma) 归一化,并在期望前补回相同的常数;实践中该常数可并入学习率。

3. Monte Carlo Policy Gradient: REINFORCE​

上面的期望、qπq_\pi 和状态分布通常未知,无法直接计算。REINFORCE 用一条由当前策略生成的完整轨迹来替代它们。

3.1 用回报估计 action value​

对于一条 episode:

(S0,A0,R1,…,ST−1,AT−1,RT),(S_0,A_0,R_1,\ldots,S_{T-1},A_{T-1},R_T),

时刻 tt 的 Monte Carlo 回报为

Gt=∑k=tT−1γk−tRk+1.G_t=\sum_{k=t}^{T-1}\gamma^{k-t}R_{k+1}.

在 episode 结束的任务中,GtG_t 是 qπγ(St,At)q_\pi^\gamma(S_t,A_t) 的无偏样本估计。因此可以用单个样本构造随机梯度:

gt=∇θlog⁡πθ(At∣St)Gt.g_t= \nabla_\theta\log\pi_\theta(A_t\mid S_t)G_t.

3.2 REINFORCE 更新​

把真梯度替换为 gtg_t,就得到 REINFORCE:

θ←θ+α∇θlog⁡πθ(At∣St)Gt.\theta\leftarrow \theta+\alpha \nabla_\theta\log\pi_\theta(A_t\mid S_t)G_t.

其中 α>0\alpha>0 是学习率。若直接使用原始回报 GtG_t,且奖励都为正,则每个被采到的动作都会获得正向强化:其概率倾向于提高。这并不表示所有动作能同时变大,因为策略概率和必须为 11;提高被采到动作的概率会相对压低其他动作。长期来看,回报更大的动作获得的强化更强、出现后更容易被继续强化,因此会逐渐占据更大的概率。

不过,原始正回报不能直接表达“这次动作比通常水平差”。若希望低于通常水平的动作被明确降低,应使用下一节的 baseline,将 GtG_t 替换为 Gt−b(St)G_t-b(S_t):当它为负时,该动作的概率才会倾向于下降。

也可以把更新写回 ∇θπ\nabla_\theta\pi 的形式。若用 qt(St,At)q_t(S_t,A_t) 表示对 action value 的样本估计(在 REINFORCE 中可取 GtG_t),则

θt+1=θt+α∇θlog⁡πθ(At∣St)qt(St,At)=θt+αqt(St,At)πθ(At∣St)⏟βt∇θπθ(At∣St).\begin{aligned} \theta_{t+1} &=\theta_t+\alpha \nabla_\theta\log\pi_\theta(A_t\mid S_t)q_t(S_t,A_t)\\ &=\theta_t+\alpha \underbrace{\frac{q_t(S_t,A_t)}{\pi_\theta(A_t\mid S_t)}}_{\beta_t} \nabla_\theta\pi_\theta(A_t\mid S_t). \end{aligned}

这个系数可以从两个角度理解:

  • βt\beta_t 与 qt(St,At)q_t(S_t,A_t) 成正比:价值较高的动作会得到更强的强化,体现利用(exploitation)。
  • βt\beta_t 与 ∇θπθ(At∣St)\nabla_\theta\pi_\theta(A_t\mid S_t) 成反比,小概率事件会让 βt\beta_t 变大,体现探索(exploration)。
policy = PolicyNetwork()

for _ in range(num_episodes):
trajectory = sample_episode(env, policy)
returns = discounted_returns(trajectory.rewards, gamma)

loss = 0.0
for state, action, return_ in zip(trajectory.states, trajectory.actions, returns):
loss -= policy.log_prob(state, action) * return_

optimizer.zero_grad()
loss.backward()
optimizer.step()

3.3 一个常用改进:baseline​

直接使用 GtG_t 的方差通常很大。对只依赖状态的任意 baseline b(St)b(S_t),可将更新改写为

θ←θ+α∇θlog⁡πθ(At∣St)(Gt−b(St)).\theta\leftarrow \theta+\alpha \nabla_\theta\log\pi_\theta(A_t\mid S_t) \bigl(G_t-b(S_t)\bigr).

这是无偏的,因为

EA∼πθ(⋅∣s)[∇θlog⁡πθ(A∣s)b(s)]=b(s)∇θ∑aπθ(a∣s)=0.\mathbb E_{A\sim\pi_\theta(\cdot\mid s)} \left[ \nabla_\theta\log\pi_\theta(A\mid s)b(s) \right] =b(s)\nabla_\theta\sum_a\pi_\theta(a\mid s)=0.

最常用的选择是 b(s)=vπ(s)b(s)=v_\pi(s)。此时 Gt−vπ(St)G_t-v_\pi(S_t) 估计的是 advantage:它只衡量这次动作比该状态下的通常水平好多少。下一章的 actor-critic 会进一步用价值函数来学习这个 baseline。

4. Summary​

  • 参数化策略不能逐状态独立地判定好坏,因此需要一个标量目标 J(θ)J(\theta)。
  • 固定初始分布的折扣目标与平均奖励目标关注的行为不同;平稳分布加权折扣价值与平均奖励只差一个正的比例常数。
  • 策略梯度可写成 ∇log⁡π\nabla\log\pi 与 action value 的期望,从而可以由策略采样的经验估计。
  • REINFORCE 用完整轨迹的回报 GtG_t 估计 action value;加入 baseline 不改变期望梯度,但能降低方差。