Actor-Critic方法是强化学习中一类重要的算法,它融合了**策略梯度(Policy Gradient)价值估计(Value Estimation)**两种思想。其名称源于算法内部的两大组件:

  • Actor:负责策略更新,决定如何选择动作。它通过最大化目标函数 J(θ)J(\theta) 来更新策略参数 θ\theta

  • Critic:负责价值评估,评价 Actor 所采取动作的好坏。它通过学习价值函数来估计状态或动作的价值。

Actor-Critic 方法本质上是策略梯度算法的扩展——当策略梯度算法中 qt(st,at)q_t(s_t,a_t) 使用TD学习而非 MC 估计时,便得到了 Actor-Critic 方法。

QAC:最简单的 Actor-Critic 算法

Q Actor-Critic(QAC) 是最基础的Actor-Critic算法,它通过将策略梯度Sarsa 价值估计结合,直观地展示了Actor-Critic的核心思想。

从 policy gradient 到 Actor-Critic

回顾策略梯度算法的随机梯度上升更新公式:

θt+1=θt+αθθlnπ(atst,θt)qt(st,at)\theta_{t+1} = \theta_t + \alpha_\theta \nabla_\theta \ln \pi(a_t|s_t,\theta_t) q_t(s_t,a_t)

该公式有三个关键元素:

  1. Actor(策略更新)θt+1=θt+αθθlnπ(atst,θt)qt(st,at)\theta_{t+1} = \theta_t + \alpha_\theta \nabla_\theta \ln \pi(a_t|s_t,\theta_t) q_t(s_t,a_t)
  2. Critic(价值估计):需要估计 qt(st,at)q_t(s_t,a_t)
  3. 两者结合:策略更新依赖于价值估计

因此,qt(st,at)q_t(s_t,a_t) 的估计方法直接决定了算法的名称:

  • 使用 MC 估计 \to REINFORCE(上一章)
  • 使用值函数估计 \to Actor-Critic(本章)

伪代码

image-20260628220436249

注意 Critic 更新公式正是 Sarsa 的价值更新公式,即用 (st,at,rt+1,st+1,at+1)(s_t,a_t,r_{t+1},s_{t+1},a_{t+1}) 五元组进行 TD 更新。因此 QAC 是on-policy 的。

Advantage Actor-Critic(A2C)

Advantage Actor-Critic(A2C) 在 QAC 的基础上引入了基线(Baseline)概念,其核心思想是用相对价值(优势值)替代绝对价值qq 值)来更新策略,从而降低估计方差

基线不变性

策略梯度有一个重要性质:在期望意义下,对 qπ(S,A)q_\pi(S,A) 减去一个仅依赖于状态 SS 的基线函数 b(S)b(S)梯度保持不变

即对于任意标量函数 b(S)b(S),有:

ESη,Aπ[θlnπ(AS,θt)qπ(S,A)]=ESη,Aπ[θlnπ(AS,θt)(qπ(S,A)b(S))]\mathbb{E}_{S\sim\eta,A\sim\pi}\big[\nabla_\theta\ln\pi(A|S,\theta_t)q_\pi(S,A)\big] = \mathbb{E}_{S\sim\eta,A\sim\pi}\big[\nabla_\theta\ln\pi(A|S,\theta_t)(q_\pi(S,A)-b(S))\big]

证明:

只需证明 ESη,Aπ[θlnπ(AS,θt)b(S)]=0\mathbb{E}_{S\sim\eta,A\sim\pi}[\nabla_\theta\ln\pi(A|S,\theta_t)b(S)] = 0

ESη,Aπ[θlnπ(AS,θt)b(S)]=sSη(s)aAπ(as,θt)θlnπ(as,θt)b(s)=sSη(s)aAθπ(as,θt)b(s)=sSη(s)b(s)aAθπ(as,θt)=sSη(s)b(s)θaAπ(as,θt)=sSη(s)b(s)θ1=0.\begin{align} \mathbb {E} _ {S \sim \eta , A \sim \pi} \left[ \nabla_ {\theta} \ln \pi (A | S, \theta_ {t}) b (S) \right] &= \sum_ {s \in \mathcal {S}} \eta (s) \sum_ {a \in \mathcal {A}} \pi (a | s, \theta_ {t}) \nabla_ {\theta} \ln \pi (a | s, \theta_ {t}) b (s) \\ &= \sum_ {s \in \mathcal {S}} \eta (s) \sum_ {a \in \mathcal {A}} \nabla_ {\theta} \pi (a | s, \theta_ {t}) b (s) \\ &= \sum_ {s \in \mathcal {S}} \eta (s) b (s) \sum_ {a \in \mathcal {A}} \nabla_ {\theta} \pi (a | s, \theta_ {t}) \\ &= \sum_ {s \in \mathcal {S}} \eta (s) b (s) \nabla_ {\theta} \sum_ {a \in \mathcal {A}} \pi (a | s, \theta_ {t}) \\ &= \sum_ {s \in \mathcal {S}} \eta (s) b (s) \nabla_ {\theta} 1 = 0. \\ \end{align}

基线的作用:降低方差

X(S,A)θlnπ(AS,θt)[qπ(S,A)b(S)]X(S,A) \doteq \nabla_\theta\ln\pi(A|S,\theta_t)[q_\pi(S,A)-b(S)]

从而真实的梯度为 E[X(S,A)]\mathbb{E}[X(S,A)]。由于我们通过随机采样来近似 E[X]\mathbb{E}[X],因此 XX方差越小越好(这样任意样本 xx 都能很好地近似 E[X]\mathbb{E}[X])。 事实上,虽然 XX 的期望不变,但方差 var(X)\operatorname{var}(X) 会随基线改变。因此我们的目标是选择最优基线 b(s)b^*(s) 来最小化 var(X)\operatorname{var}(X)

最优基线为:

b(s)=EAπ[θlnπ(As,θt)2qπ(s,A)]EAπ[θlnπ(As,θt)2],sSb^*(s) = \frac{\mathbb{E}_{A\sim\pi}\big[\|\nabla_\theta\ln\pi(A|s,\theta_t)\|^2 q_\pi(s,A)\big]}{\mathbb{E}_{A\sim\pi}\big[\|\nabla_\theta\ln\pi(A|s,\theta_t)\|^2\big]}, \qquad s\in\mathcal{S}

证明思路:最小化 tr[var(X)]\operatorname{tr}[\operatorname{var}(X)] 等价于最小化 E[XTX]\mathbb{E}[X^TX],对 b(s)b(s) 求导令其为零即可。

然而,在实际应用中,最优基线的表达式过于复杂,难以计算。此时若忽略权重 θlnπ2\|\nabla_\theta\ln\pi\|^2,可得到次优但简洁的基线:

b(s)=EAπ[qπ(s,A)]=vπ(s)b^\dagger(s) = \mathbb{E}_{A\sim\pi}[q_\pi(s,A)] = v_\pi(s)

碰巧的是,这里的次优基线就是状态价值 vπ(s)v_{\pi}(s)。因此,最常用的基线就是状态价值 vπ(s)v_\pi(s)

优势函数

当选取 b(s)=vπ(s)b(s)=v_\pi(s) 时,梯度变为:

θt+1=θt+αE[θlnπ(AS,θt)δπ(S,A)]\theta_{t+1} = \theta_t + \alpha \mathbb{E}\big[\nabla_\theta\ln\pi(A|S,\theta_t)\delta_\pi(S,A)\big]

其中 δπ(S,A)\delta_\pi(S,A) 称为 advantage Function(优势函数)

δπ(S,A)qπ(S,A)vπ(S)\delta_\pi(S,A) \doteq q_\pi(S,A) - v_\pi(S)

直观理解

  • vπ(s)=aπ(as)qπ(s,a)v_\pi(s) = \sum_a \pi(a|s)q_\pi(s,a) 是动作价值的平均值
  • δπ(s,a)>0\delta_\pi(s,a)>0,说明动作 aa 优于平均水平(应该增加其概率)
  • δπ(s,a)<0\delta_\pi(s,a)<0,说明动作 aa 劣于平均水平(应该降低其概率)

随机梯度版本

θt+1=θt+αθlnπ(atst,θt)[qt(st,at)vt(st)]=θt+αθlnπ(atst,θt)δt(st,at),\begin{align} \theta_ {t + 1} &= \theta_ {t} + \alpha \nabla_ {\theta} \ln \pi \left(a _ {t} \mid s _ {t}, \theta_ {t}\right) \left[ q _ {t} \left(s _ {t}, a _ {t}\right) - v _ {t} \left(s _ {t}\right) \right] \\ &= \theta_ {t} + \alpha \nabla_ {\theta} \ln \pi \left(a _ {t} \mid s _ {t}, \theta_ {t}\right) \delta_ {t} \left(s _ {t}, a _ {t}\right), \\ \end{align}

其中 qt(st,at)q_t(s_t,a_t)vt(st)v_t(s_t)qπ(θt)(st,at)q_{\pi(\theta_t)}(s_t,a_t)vπ(θt)(st)v_{\pi(\theta_t)}(s_t) 的近似。

A2C

在实际实现中,优势函数 δt\delta_t 既可以通过 MC 方法估计,也可以用 TD 方法估计。前者称为带基线的 REINFORCE,后者称为 advantage actor-critic(A2C)。注意到优势函数可以使用 TD error 近似:

qt(st,at)vt(st)rt+1+γv(st+1,wt)v(st,wt)q_t(s_t,a_t)-v_t(s_t) \approx r_{t+1} + \gamma v(s_{t+1},w_t) - v(s_t,w_t)

这个近似是合理的,因为:

qπ(st,at)vπ(st)=E[Rt+1+γvπ(St+1)vπ(St)St=st,At=at]q_\pi(s_t,a_t) - v_\pi(s_t) = \mathbb{E}\big[R_{t+1} + \gamma v_\pi(S_{t+1}) - v_\pi(S_t) \mid S_t=s_t,A_t=a_t\big]

使用 TD 误差的优势:只需要一个神经网络来表示 vπ(s)v_\pi(s),而不需要同时维护 vπ(s)v_\pi(s)qπ(s,a)q_\pi(s,a) 两个网络。

伪代码

image-20260628224156322

可以发现 critic 也带有项 δt\delta_t,这是因为价值网络的 SGD 更新公式使用了 TD-error rt+1+γv(st+1,wt)v(st,wt)r_{t+1}+\gamma v(s_{t+1},w_t)-v(s_t,w_t)

注意:A2C 是 on-policy 的,且策略 π(θt)\pi(\theta_t)随机的(非确定),天然具有探索性,无需 ε\varepsilon-greedy。

Off-Policy Actor-Critic

前面介绍的 REINFORCE、QAC、A2C 这样的 policy gradient 方法都是 on-policy 的——行为策略和目标策略相同。本节引入 **Importance Sampling(重要性采样)**技术,将 Actor-Critic 扩展至 off-policy 场景。

重要性采样

考虑一个随机变量 XXX\in\mathcal{X},假设 p0(X)p_0(X) 是概率分布,目的是要估计 EXp0[X]\mathbb{E}_{X\sim p_0}[X]。假设采样得到 i.i.d.(independent identical distribution,独立同分布)的样本 {xi}i=1n\{x_i\}_{i=1}^{n}。考虑样本的以下两种情形:

  • 若样本是在分布 p0p_0 下采集的,则样本均值 xˉ=1ni=1nxi\bar{x}=\frac{1}{n}\sum_{i=1}^{n}x_i 可以估计 EXp0[X]\mathbb{E}_{X\sim p_0}[X]
  • 若样本是在另一个分布 p1p_1 下采集的,则样本均值 xˉ\bar{x} 就不能用于估计 EXp0[X]\mathbb{E}_{X\sim p_0}[X],因为它是 EXp1[X]\mathbb{E}_{X\sim p_1}[X] 的无偏估计,而对于 EXp0[X]\mathbb{E}_{X\sim p_0}[X] 是有偏估计。

对于第二种情形,就需要通过重要性采样来估计 EXp0[X]\mathbb{E}_{X\sim p_0}[X]

重要性采样是一种通用技术,用于用来自分布 p1p_1 的样本估计关于分布 p0p_0 的期望。核心公式为

EXp0[X]=xp0(x)x=xp1(x)p0(x)p1(x)xf(x)=EXp1[f(X)]\mathbb{E}_{X\sim p_0}[X] = \sum_x p_0(x)x = \sum_x p_1(x)\underbrace{\frac{p_0(x)}{p_1(x)}x}_{f(x)} = \mathbb{E}_{X\sim p_1}\left[f(X)\right]

因此,估计 EXp0[X]\mathbb{E}_{X\sim p_0}[X] 转变为了估计 EXp1[f(X)]\mathbb{E}_{X\sim p_1}[f(X)]。若样本 {xi}i=1n\{x_i\}_{i=1}^{n} 来自 p1p_1,则

EXp0[X]=EXp1[f(X)]fˉ=1ni=1nf(xi)=1ni=1np0(xi)p1(xi)重要性权重xi\mathbb {E} _ {X \sim p _ {0}} [ X ] = \mathbb {E} _ {X \sim p _ {1}} [ f (X) ] \approx \bar {f} = \frac {1}{n} \sum_ {i = 1} ^ {n} f \left(x _ {i}\right) = \frac {1}{n} \sum_ {i = 1} ^ {n} \underbrace {\frac {p _ {0} \left(x _ {i}\right)}{p _ {1} \left(x _ {i}\right)}} _ {重要性权重} x _ {i}

其中 p0(xi)p1(xi)\frac{p_0(x_i)}{p_1(x_i)} 称为重要性权重

重要性采样的关键不是说原始分布 p0p_0 未知,所以我们要用 p1p_1 来做样本生成;而是因为相同的样本量,在 p0p_0 分布下难以采集或采样得到的样本方差较大,而在 p1p_1 分布下容易采集或采样的样本方差较小。在重要性采样中,原始分布 p0p_0已知的

重要性采样关键要求:若 p0(x)0p_0(x)\neq 0,则必须有 p1(x)0p_1(x)\neq 0,否则估计会产生偏差。

Off-Policy 策略梯度定理

β\beta行为策略(Behavior Policy),用于生成样本;π\pi目标策略(Target Policy),是我们要学习的策略。为了能够利用行为策略 β\beta 产生的样本来优化目标策略 π\pi重新定义了目标函数,使其状态分布变为 dβd_{\beta}

J(θ)=sSdβ(s)vπ(s)=ESdβ[vπ(S)]J(\theta) = \sum_{s\in\mathcal{S}} d_\beta(s)v_\pi(s) = \mathbb{E}_{S\sim d_\beta}[v_\pi(S)]

其中 dβd_\beta 是行为策略 β\beta 下状态的平稳分布。

在折扣情形 γ(0,1)\gamma\in(0,1) 下,J(θ)J(\theta) 的梯度为

θJ(θ)=ESρ,Aβ[π(AS,θ)β(AS)重要性权重θlnπ(AS,θ)qπ(S,A)]\nabla_\theta J(\theta) = \mathbb{E}_{S\sim\rho,A\sim\beta}\left[ \underbrace{\frac{\pi(A|S,\theta)}{\beta(A|S)}}_{\text{重要性权重}} \nabla_\theta\ln\pi(A|S,\theta)q_\pi(S,A) \right]

上式即为 off-policy 策略梯度定理。其中状态分布 ρ\rho 为:

ρ(s)sSdβ(s)Prπ(ss),sS\rho(s) \doteq \sum_{s'\in\mathcal{S}} d_\beta(s')\Pr_\pi(s|s'),\qquad s\in\mathcal{S}

与上一章 on-policy 情形的区别是多了一个重要性权重 π/β\pi/\beta,且动作采样分布是 AβA\sim\beta 而非 AπA\sim\pi

在这种情况下,基线不变性同样成立:

θJ(θ)=ESρ,Aβ[π(AS,θ)β(AS)θlnπ(AS,θ)(qπ(S,A)b(S))]\nabla_\theta J(\theta) = \mathbb{E}_{S\sim\rho,A\sim\beta}\left[ \frac{\pi(A|S,\theta)}{\beta(A|S)} \nabla_\theta\ln\pi(A|S,\theta)(q_\pi(S,A)-b(S)) \right]

Off-Policy Actor-Critic 算法

选取 b(S)=vπ(S)b(S)=v_\pi(S),并用 TD-error 近似优势函数,得到随机梯度上升更新公式

θt+1=θt+αθπ(atst,θt)β(atst)θlnπ(atst,θt)δt\theta_{t+1} = \theta_t + \alpha_\theta \frac{\pi(a_t|s_t,\theta_t)}{\beta(a_t|s_t)} \nabla_\theta\ln\pi(a_t|s_t,\theta_t)\delta_t

其中 δt=rt+1+γv(st+1,wt)v(st,wt)\delta_t = r_{t+1} + \gamma v(s_{t+1},w_t) - v(s_t,w_t)

至此,通过重要性采样将 actor-critic 转为了 off-policy 的方法。

伪代码

image-20260629002227459

注意,除了 Actor,Critic 也被重要性采样修正为 off-policy。此外行为策略 β\beta 需要对所有 π(as)>0\pi(a|s)>0(s,a)(s,a) 满足 β(as)>0\beta(a|s)>0

确定性 Actor-Critic

前面介绍的策略梯度方法都要求策略随机(对于任意 (s,a)(s,a) 都有 π(as,θ)>0\pi(a|s,\theta)>0)。本节介绍确定性策略 a=μ(s,θ)a=\mu(s,\theta),其优势在于天然 off-policy 且能有效处理连续动作空间

确定性策略梯度定理

确定性策略梯度定理

θJ(θ)=ESη[θμ(S)(aqμ(S,a))a=μ(S)]\nabla_\theta J(\theta) = \mathbb{E}_{S\sim\eta}\left[ \nabla_\theta\mu(S)\left(\nabla_a q_\mu(S,a)\right)\big|_{a=\mu(S)} \right]

其中 η\eta 是状态分布。

与随机情形的关键区别是梯度中不涉及对动作的期望——无需对动作采样,因此确定性策略梯度(deterministic policy gradient, DPG)方法天然是 off-policy 的

两种目标函数的梯度

度量1:平均价值

J(θ)=ESd0[vμ(s)]=sSd0(s)vμ(s)J(\theta) = \mathbb{E}_{S\sim d_0}[v_\mu(s)] = \sum_{s\in\mathcal{S}} d_0(s)v_\mu(s)

其中 d0d_0 是状态初始分布(与 μ\mu 无关)。

折扣情形下的确定性策略梯度

θJ(θ)=ESρμ[θμ(S)(aqμ(S,a))a=μ(S)]\nabla_\theta J(\theta) = \mathbb{E}_{S\sim\rho_\mu}\left[ \nabla_\theta\mu(S)\left(\nabla_a q_\mu(S,a)\right)\big|_{a=\mu(S)} \right]

其中 ρμ(s)=sSd0(s)Prμ(ss)\rho_\mu(s) = \sum_{s'\in\mathcal{S}} d_0(s')\Pr_\mu(s|s')Prμ(ss)=k=0γk[Pμk]ss\Pr_\mu(s|s') = \sum_{k=0}^\infty \gamma^k[P_\mu^k]_{s's}

度量2:平均奖励

J(θ)=rˉμ=sSdμ(s)rμ(s)=ESdμ[rμ(S)]J(\theta) = \bar{r}_\mu = \sum_{s\in\mathcal{S}} d_\mu(s)r_\mu(s) = \mathbb{E}_{S\sim d_\mu}[r_\mu(S)]

其中 rμ(s)=E[Rs,a=μ(s)]r_\mu(s)=\mathbb{E}[R|s,a=\mu(s)]dμd_\muμ\mu 下的状态平稳分布。

未折扣情形下的确定性策略梯度

θJ(θ)=ESdμ[θμ(S)(aqμ(S,a))a=μ(S)]\nabla_\theta J(\theta) = \mathbb{E}_{S\sim d_\mu}\left[ \nabla_\theta\mu(S)\left(\nabla_a q_\mu(S,a)\right)\big|_{a=\mu(S)} \right]

其中 dμd_{\mu} 是策略 μ\mu 下的平稳分布。

确定性 Actor-Critic 算法

基于梯度公式的随机梯度上升更新公式:

θt+1=θt+αθθμ(st)(aq(st,a,wt))a=μ(st)\theta_{t+1} = \theta_t + \alpha_\theta \nabla_\theta\mu(s_t)\left(\nabla_a q(s_t,a,w_t)\right)\big|_{a=\mu(s_t)}

伪代码

image-20260629112324486
  • Actor 是 off-policy 的,因为 DPG(确定性策略梯度)中不涉及对动作的采样。
  • Critic 也是 off-policy 的,因为其需要的经验样本为 (st,at,rt+1,st+1,a~t+1)(s_t,a_t,r_{t+1},s_{t+1},\tilde{a}_{t+1}),其中 a~t+1=μ(st+1)\tilde{a}_{t+1}=\mu(s_{t+1})。注意到该经验样本包含了两个策略,分别是策略 β\betasts_t 时采取动作 ata_t,和策略 μ\must+1s_{t+1} 时采取的动作 a~t+1\tilde{a}_{t+1},并且 a~t+1\tilde{a}_{t+1} 并不会用于下一次的环境交互。因此 μ\mu 不是行为策略,从而 Critic 是 off-policy 的。