StarX

Back

1. 引言:值函数与策略梯度的结合#

首先回顾两种方法:

一、基于值函数的方法:以 DQN 为代表.它的核心思想是学到一个最优动作价值函数 Q(s,a)Q^*(s,a),但是它处理 连续动作空间 比较困难.当动作是一个连续向量时,每一步都要求解一个极值问题 maxaQ(s,a)\max_a Q(s,a),这在计算上比较昂贵的,往往需要额外的优化过程.

二、基于策略梯度的方法:以 REINFORCE 为代表.它并不学习价值函数,而是直接参数化策略 πθ(aS)\pi_\theta(a\mid S),通过 Monte Carlo 采样的方式更新参数 θ\theta

θθ+αGtθlogπθ(AtSt)\theta \leftarrow \theta + \alpha G_t \nabla_\theta \log \pi_\theta(A_t|S_t)

REINFORCE 方法能轻松处理连续动作,且天然具有随机探索的性质,但具有高方差的痛点,因为它的回报 GtG_t 是整个 episode 所有奖励的累积和,轨迹长度的随机性和环境奖励的随机性,使得每次更新的方向波动巨大)

从直觉上来看,值函数方法它能够较好地评估策略,但不擅长行动,而策略梯度能够很好地给出行动,但评估自身价值比较困难,那么将两者结合起来,值函数方法作为评论家,策略梯度方法作为演员(行动者),让评论家帮助演员评估当前行为的好坏,从而减少策略梯度的方差.

Actor-Critic

  • Actor:策略 πθ\pi_\theta,负责选择动作.它的更新依然沿着策略梯度的方向,但不再直接用高方差的回报 GtG_t,而是用一个低方差的、由 Critic 提供的信号.
  • Critic:价值函数,如 Vw(s)V_{w}(s)Qw(s,a)Q_{w}(s,a),负责近似评估当前策略的预期收益

例子1:演员与评委的比喻
想象一个年轻演员 (Actor) 在学习演一出戏.一开始,他每次完整演完一场 (episode),才由最终票房 (总回报 GtG_t) 来评判演技.票房受太多因素影响,有时演得好但票房差,信号极不稳定.这就像 REINFORCE.
现在引入一位资深评委 (Critic).演员每说一句台词、每做一个动作,评委都能立刻给出一个反馈:“这个动作的价值大概是 8 分,你刚才只表现出了 5 分的水平”.评委的评分不是最终真理 (有偏差),但它很稳定 (低方差).演员根据这个即时反馈来调整自己的表演参数,进步就快得多了.这就是 Actor-Critic.


2. Actor-Critic 的基本架构与更新规则#

2.1 在线策略 AC 方法#

策略梯度定理 告诉我们:

θJ(θ)ESμ,Aπ[θlogπθ(AS)Qπ(S,A)](2.1)\nabla_\theta J(\theta) \propto \mathbb{E}_{S\sim\mu,A\sim\pi} \left[ \nabla_\theta \log \pi_\theta(A\mid S) \, Q_{\pi}(S, A) \right]\tag{2.1}

其中 Qπ(St,At)Q_{\pi}(S_t, A_t) 是真实的动作价值函数.策略梯度方法的基本思想是通过最大化一个目标函数 J(θ)J(\theta) 来得到最优策略,通过梯度上升算法得到

θt+1=θt+αθJ(θt)=θt+αESμ,Aπ[θlogπθ(aS)Qπ(S,A)].\begin{aligned} \theta_{t+1} & = \theta_t +\alpha\nabla_\theta J(\theta_t) \\ & = \theta_t +\alpha \mathbb{E}_{S\sim\mu,A\sim\pi} \left[ \nabla_\theta \log \pi_\theta(a\mid S) \, Q_{\pi}(S, A) \right]. \end{aligned}

进而通过随机梯度上升得到

θt+1=θt+αθlogπ(atst,θt)Qt(st,at)\theta_{t+1}=\theta_t +\alpha\nabla_{\theta}\log \pi(a_t \mid s_t,\theta_t)Q_t(s_t,a_t)

根据这一式子进行更新,我们需要知道 Qt(st,at)Q_t(s_t,a_t),这是动作值 Qπ(st,at)Q_\pi(s_t,a_t) 的估计量.

  • 估计动作值 Qt(st,at)Q_t(s_t,a_t) 的方法
    1. Qt(st,at)Q_t(s_t,a_t) 通过 Monte Carlo 方法估计,即 REINFORCE:使用采样回报 GtG_t 作为 QπQ_{\pi} 的无偏但高方差的估计.
    2. Qt(st,at)Q_t(s_t,a_t) 通过时序差分方法估计,即本章的 Actor-Critic:利用 Critic 去估计 QπQ_\pi.

那么我们便得到的一般 Actor-Critic 算法伪代码:

初始化:策略函数 π(as,θ0),价值函数 q(s,a,w0),  αw,αθ>0目标:最大化 J(θ)循环,每个回合中时间步 t:atπ(ast,θt)环境交互得到奖励 rt+1,下一状态 st+1at+1π(ast+1,θt)Actor (策略更新):θt+1=θt+αθθlogπ(atst,θt)q(st,at,wt)Critic (价值更新):wt+1=wt+αw[rt+1+γq(st+1,at+1,wt)q(st,at,wt)]wq(st,at,wt)\begin{aligned} &\textbf{初始化:} \\ &\quad \text{策略函数 } \pi(a|s,\theta_0),\text{价值函数 } q(s,a,w_0),\;\alpha_w,\alpha_\theta>0 \\ &\textbf{目标:} \text{最大化 } J(\theta) \\ &\textbf{循环,每个回合中时间步 } t:\\ &\quad a_t \sim \pi(a|s_t,\theta_t) \\ &\quad \text{环境交互得到奖励 } r_{t+1},\text{下一状态 } s_{t+1} \\ &\quad a_{t+1} \sim \pi(a|s_{t+1},\theta_t) \\ &\quad \textbf{Actor (策略更新)}: \\ &\quad \theta_{t+1} = \theta_t + \alpha_\theta \nabla_\theta \log \pi(a_t|s_t,\theta_t)\,q(s_t,a_t,w_t) \\ &\quad \textbf{Critic (价值更新)}: \\ &\quad w_{t+1} = w_t + \alpha_w \big[r_{t+1} + \gamma q(s_{t+1},a_{t+1},w_t) - q(s_t,a_t,w_t)\big] \nabla_w q(s_t,a_t,w_t) \end{aligned}

在更新参数 θ\theta 时,可使用 TD 误差 δt\delta_t 代替 Q(st,at,wt)Q(s_t,a_t,w_t) 作为轨迹回报的估计

δt=rt+1+γQt(st+1,at+1,wt)Qt(st,at,wt)\delta_t = r_{t+1}+\gamma Q_t(s_{t+1},a_{t+1},w_t)-Q_t(s_t,a_t,w_t)

对应的 Actor 更新变为

θt+1=θt+αθδtθlogπ(atst,θt)\theta_{t+1}=\theta_t+\alpha_{\theta} \delta_t \nabla_{\theta}\log \pi(a_t\mid s_t,\theta_t)

这在减少计算量和减少方差方面有一定的优势.

一般 AC 算法通过单一的 Critic 的信号 TD 误差 δt\delta_t 同时驱动了两个网络的更新.

2.2 离线策略 AC 方法#

由于在线策略方法对环境的探索能力有限,可考虑离线策略方法:使用行为策略 β(as)\beta(a\mid s) 来采样生成轨迹,并基于此轨迹来对目标策略 π(as,θ)\pi(a\mid s,\theta) 进行评估和改进.

离线策略环境中,对应的目标函数为

J(θ)=sSdβ(s)Vπ(s)=ESdβ[Vπ(S)]=sSaAdβ(s)πθ(as)Qπ(s,a),\begin{aligned} J(\theta) & =\sum_{s\in\mathcal{S}}d_{\beta}(s)V_{\pi}(s)=\mathbb{E}_{S\sim d_{\beta}}[V_{\pi}(S)] \\ & = \sum_{s\in\mathcal{S}}\sum_{a\in\mathcal{A}} d_{\beta}(s) \pi_{\theta}(a\mid s)Q_{\pi}(s,a), \end{aligned}

其中 dβ(s)d_{\beta}(s) 是在策略 β\beta 下的平稳分布.那么 J(θ)J(\theta) 表示利用策略 β(as)\beta(a\mid s) 采样的数据,评估策略 π(as,θ)\pi(a\mid s,\theta).

(Off-policy 策略梯度定理)

γ(0,1)\gamma\in(0,1),则 J(θ)J(\theta) 的 Off-policy 梯度为

θJ(θ)=ESρ,Aβ[π(AS,θ)β(AS)重要性权重 θlogπ(AS,θ)Qπ(S,A)],\nabla_{\theta} J(\theta)=\mathbb{E}_{S \sim \rho, A \sim \beta}\bigg [\underbrace{\frac{\pi(A \mid S, \theta)}{\beta(A \mid S)}}_{\text {重要性权重 }} \nabla_{\theta} \log \pi(A \mid S, \theta) Q_{\pi}(S, A)\bigg ],

其中状态分布 ρ\rho

ρ(s)sSdβ(s)Prπ(ss),sS,\rho(s)\doteq \sum_{s'\in \mathcal{S}}d_{\beta}(s')\mathrm{Pr}_{\pi}(s\mid s'),\quad s\in \mathcal{S},

以及 Prπ(ss)=k=0γk[Pπk]ss=[(IγPπ)1]ss\mathrm{Pr}_{\pi}\left(s \mid s'\right)=\sum_{k=0}^{\infty} \gamma^{k}\left[P_{\pi}^{k}\right]_{s' s}=\left[\left(I-\gamma P_{\pi}\right)^{-1}\right]_{s' s} 是在策略 π\pi 下从 ss'ss 的折扣总概率.

Off-policy 策略梯度定理证明:

ρβ\rho_{\beta} 独立于 θ\theta,则 J(θ)J(\theta) 的梯度满足

θJ(θ)=θsSρβ(s)Vπ(s)=sSρβ(s)θVπ(s).\nabla_{\theta}J(\theta)=\nabla_{\theta}\sum_{s\in\mathcal{S}}\rho_{\beta}(s)V_{\pi}(s)=\sum_{s\in\mathcal{S}}\rho_{\beta}(s)\nabla_{\theta}V_{\pi}(s).

θVπ(s)\nabla_{\theta}V_{\pi}(s) 的表达式为

θVπ(s)=sSPrπ(ss)aAθπ(as,θ)Qπ(s,a),\nabla_{\theta}V_{\pi}(s)=\sum_{s'\in \mathcal{S}}\mathrm{Pr}_{\pi}(s'\mid s)\sum_{a\in \mathcal{A}}\nabla_{\theta}\pi (a\mid s',\theta)Q_{\pi}(s',a),

带入得

θJ(θ)=sSdβ(s)θvπ(s)=sSdβ(s)sSPrπ(ss)aAθπ(as,θ)Qπ(s,a)=sS(sSdβ(s)Prπ(ss))aAθπ(as,θ)Qπ(s,a)sSρ(s)aAθπ(as,θ)Qπ(s,a)=sSρ(s)aAθπ(as,θ)Qπ(s,a)( 将 s 换为 s)=ESρ[aAθπ(aS,θ)Qπ(S,a)].\begin{aligned}\nabla_{\theta} J(\theta) &=\sum_{s \in \mathcal{S}} d_{\beta}(s) \nabla_{\theta} v_{\pi}(s) \\ & = \sum_{s \in \mathcal{S}} d_{\beta}(s) \sum_{s' \in \mathcal{S}} \operatorname{Pr}_{\pi}\left(s' \mid s\right) \sum_{a \in \mathcal{A}} \nabla_{\theta} \pi\left(a \mid s', \theta\right) Q_{\pi}\left(s', a\right) \\& =\sum_{s' \in \mathcal{S}}\left(\sum_{s \in \mathcal{S}} d_{\beta}(s) \operatorname{Pr}_{\pi}\left(s' \mid s\right)\right) \sum_{a \in \mathcal{A}} \nabla_{\theta} \pi\left(a \mid s', \theta\right) Q_{\pi}\left(s', a\right) \\& \doteq \sum_{s' \in \mathcal{S}} \rho\left(s'\right) \sum_{a \in \mathcal{A}} \nabla_{\theta} \pi\left(a \mid s', \theta\right) Q_{\pi}\left(s', a\right) \\& =\sum_{s \in \mathcal{S}} \rho(s) \sum_{a \in \mathcal{A}} \nabla_{\theta} \pi(a \mid s, \theta) Q_{\pi}(s, a) \quad\left(\text { 将 } s' \text { 换为 } s\right) \\& =\mathbb{E}_{S \sim \rho}\left[\sum_{a \in \mathcal{A}} \nabla_{\theta} \pi(a \mid S, \theta) Q_{\pi}(S, a)\right].\end{aligned}

利用重要性采样得到 ESρ[aAθπ(aS,θ)Qπ(S,a)]=ESρ[aAβ(aS)π(aS,θ)β(aS)θπ(aS,θ)π(aS,θ)Qπ(S,a)]=ESρ[aAβ(aS)π(AS,θ)β(aS)θlogπ(aS,θ)Qπ(S,a)]=ESρ,Aβ[π(AS,θ)β(AS)θlogπ(AS,θ)Qπ(S,A)]\begin{aligned}&\mathbb{E}_{S\sim\rho}\left[\sum_{a\in\mathcal{A}}\nabla_{\theta}\pi(a\mid S,\theta)Q_{\pi}(S,a)\right] \\ =& \mathbb{E}_{S\sim\rho}\left[\sum_{a\in\mathcal{A}}\beta(a\mid S)\frac{\pi(a\mid S,\theta)}{\beta(a\mid S)}\frac{\nabla_{\theta}\pi(a\mid S,\theta)}{\pi(a\mid S,\theta)}Q_{\pi}(S,a)\right] \\=&\mathbb{E}_{S\sim\rho}\left[\sum_{a\in\mathcal{A}}\beta(a\mid S)\frac{\pi(A\mid S,\theta)}{\beta(a\mid S)}\nabla_{\theta}\log\pi(a\mid S,\theta)Q_{\pi}(S,a)\right] \\ = &\mathbb{E}_{S\sim\rho,A\sim\beta}\left[\frac{\pi(A\mid S,\theta)}{\beta(A\mid S)}\nabla_{\theta}\log\pi(A\mid S,\theta)Q_{\pi}(S,A)\right]\end{aligned}

在 Off-policy 演员-评论家算法中,使用行为策略 β(as)\beta(a\mid s) 生成采样轨迹,Actor 与 Critic 均使用重要性采样比例 πθ(as)β(as)\dfrac{\pi_{\theta}(a\mid s)}{\beta(a\mid s)} 进行调整,利用随机梯度上升得到

θt+1=θt+αθπ(atst,θt)β(atst)θlogπ(atst,θt)Qt(st,at)\theta_{t+1}=\theta_t+\alpha_\theta\frac{\pi(a_t|s_t,\theta_t)}{\beta(a_t|s_t)}\nabla_\theta\log\pi(a_t|s_t,\theta_t)Q_t(s_t,a_t)

wt+1=wt+αwπ(atst,θt)β(atst)δtwQt(st,at,wt),w_{t+1}=w_t+\alpha_w \frac{\pi(a_t\mid s_t,\theta_t)}{\beta(a_t\mid s_t)}\delta_t\nabla_w Q_t(s_t,a_t,w_t),

其中

δt=rt+1+γQt(st+1,at+1,wt)Qt(st,at,wt).\delta_t=r_{t+1}+\gamma Q_t(s_{t+1},a_{t+1},w_t)-Q_t(s_t,a_t,w_t).

3. 理论与意义:偏差-方差的权衡与兼容性#

3.1 自举引入的偏差与方差的降低#

将 REINFORCE (MC critic) 替换为 TD Critic,实际上做了一次偏差-方差的权衡:

  • REINFORCE 是无偏的,它使用的是真实的环境回报 GtG_t,但方差高.
  • Actor-Critic 使用 R+γV(S)R + \gamma V(S') 作为目标.这里的 VV 是带有误差的估计,因此更新目标是有偏的.但这一替换将方差源头从“整个轨迹的随机奖励”缩减到“单步奖励和下一状态价值估计”,使得方差降低.

3.2 兼容近似定理#

策略梯度定理 告诉我们:

θJ(θ)ESμ,Aπ[θlogπθ(aS)Qπ(S,A)]\nabla_\theta J(\theta) \propto \mathbb{E}_{S\sim\mu,A\sim\pi} \left[ \nabla_\theta \log \pi_\theta(a\mid S) \, Q_{\pi}(S, A) \right]

在 AC 算法中,存在一个重要的理论问题:当我们用一个参数化的近似函数 QwQ_w 来替代真实的 QπQ_\pi 时,策略梯度会不会被带偏?

Sutton 等人的策略梯度定理告诉我们,只要近似函数满足兼容性条件,那以上替换不会引入偏差:

  1. 近似函数可以写成
Qw(s,a)=wTθlogπθ(as)+b(s)Q_w(s,a)=w^{T}\nabla_{\theta}\log \pi_{\theta}(a\mid s)+b(s)
  1. 参数 ww 通过最小化与真实 QπQ_{\pi} 的均方误差来学习:
w=argminwESμ,Aπ[(Qw(S,A)Qπ(S,A))2]w^*=\arg\min_{w}\mathbb{E}_{S\sim \mu,A\sim \pi}\big [(Q_w(S,A)-Q_{\pi}(S,A))^2\big ]

若近似函数满足以上兼容性条件,那么用 QwQ_w 替换 QπQ_{\pi} 计算出的策略梯度是真是梯度的无偏估计:

E[θlogπθ(AS)Qw(S,A)]=E[θlogπθ(AS)Qπ(S,A)]\mathbb{E}[\nabla_{\theta}\log \pi_{\theta}(A\mid S)Q_w(S,A)]=\mathbb{E}[\nabla_\theta\log\pi_{\theta}(A\mid S)Q_{\pi}(S,A)]
兼容近似定理证明:

ww 满足条件 2,令 ϵQw(s,a)Qπ(s,a)\epsilon\doteq Q_w(s,a)-Q_\pi(s,a),则 wϵ=wQw(s,a)=0\nabla_w\epsilon=\nabla_w Q_w(s,a)=0.进一步有 E[ϵwϵ]=0\mathbb{E[\epsilon\nabla_w \epsilon]}=0.

ww 满足条件 1,则 wQw(s,a)=θlogπθ(as)=0\nabla_w Q_w(s,a)=\nabla_\theta\log\pi_{\theta}(a\mid s)=0.有

0=E[ϵwϵ]=E[(Qw(S,A)Qπ(S,A))wQw(S,A)]=E[(Qw(S,A)Qπ(S,A))θlogπθ(AS)]\begin{aligned}0=\mathbb{E}[\epsilon\nabla_w\epsilon] & = \mathbb{E}[(Q_w(S,A)-Q_\pi(S,A))\nabla_w Q_w(S,A)]\\& = \mathbb{E}[(Q_w(S,A)-Q_\pi(S,A))\nabla_\theta\log\pi_{\theta}(A\mid S)]\end{aligned}

E[Qπ(S,A)θlogπθ(AS)]=E[Qw(S,A)θlogπθ(AS)]\mathbb{E}[Q_\pi(S,A)\nabla_\theta\log\pi_{\theta}(A\mid S)]=\mathbb{E}[Q_w(S,A)\nabla_\theta\log\pi_{\theta}(A\mid S)]

在实践中,即使不完全满足,只要 Critic 用策略指导下的真实样本进行 TD 学习,即条件 2 被放宽,算法也能良好收敛.
如果两个条件同时满足,整个 AC 算法实际上变成了 REINFORCE 算法,即等同于没有使用评论家 Critic.


4. Actor-Critic 变种:A2C#

4.1 Advantage Actor-Critic (A2C)#

同 REINFORCE 方法,AC 方法可以采用引入基线的方式进一步减小方差:

θJ(θ)ESμ,Aπ[θlogπ(AS,θ)(Qπ(S,A)b(S))]\nabla_\theta J(\theta) \propto \mathbb{E}_{S\sim\mu,A\sim\pi} \left[ \nabla_\theta \log \pi(A\mid S,\theta) \, (Q_{\pi}(S, A) - b(S)) \right]
  • 基准不变性
ESμ,Aπ[θlogπ(AS,θ)Qπ(S,A)]=ESμ,Aπ[θlogπ(AS,θ)(Qπ(S,A)b(S))],\mathbb{E}_{S\sim\mu,A\sim\pi}\left[\nabla_{\theta}\log \pi(A\mid S,\theta)Q_\pi(S,A)\right]=\mathbb{E}_{S\sim\mu,A\sim\pi}\left[\nabla_{\theta}\log \pi(A\mid S,\theta)(Q_\pi(S,A)-b(S))\right],

其中 b(S)b(S) 是关于 SS 的一个基准标量函数.

ESμ,Aπ[θlogπ(AS,θ)b(S)]=sSμ(s)aAπ(as,θ)θlogπ(as,θ)b(s)=sSμ(s)aAθπ(as,θ)b(s)=sSμ(s)b(s)aAθπ(as,θ)=sSμ(s)b(s)θaAπ(as,θ)=sSμ(s)b(s)θ1=0.\begin{aligned} & \mathbb{E}_{S \sim \mu, A \sim \pi}\left[\nabla_{\theta} \log \pi\left(A \mid S, \theta\right) b(S)\right] \\ = & \sum_{s \in \mathcal{S}} \mu(s) \sum_{a \in \mathcal{A}} \pi\left(a \mid s, \theta\right) \nabla_{\theta} \log \pi\left(a \mid s, \theta\right) b(s) \\ = & \sum_{s \in \mathcal{S}} \mu(s) \sum_{a \in \mathcal{A}} \nabla_{\theta} \pi\left(a \mid s, \theta\right) b(s) \\ = & \sum_{s \in \mathcal{S}} \mu(s) b(s) \sum_{a \in \mathcal{A}} \nabla_{\theta} \pi\left(a \mid s, \theta\right) \\ = & \sum_{s \in \mathcal{S}} \mu(s) b(s) \nabla_{\theta} \sum_{a \in \mathcal{A}} \pi\left(a \mid s, \theta\right) \\ = & \sum_{s \in \mathcal{S}} \mu(s) b(s) \nabla_{\theta} 1=0 . \end{aligned}
  • 基准函数的引入
    基准函数能够在使用随机样本近似真实梯度时 减少近似的方差.

定义

X(S,A)θlogπ(AS,θ)(Qπ(S,A)b(S)).X(S,A)\doteq\nabla_{\theta}\log \pi(A\mid S,\theta)(Q_{\pi}(S,A)-b(S)).

我们的目标是选择基准函数 b(S)b(S),使得方差 var(X)\mathrm{var}(X) 越小越好.实际上能够最小化 var(X)\mathrm{var}(X) 的最优基准是

b(s)=EAπ[θlogπ(As,θ)2Qπ(s,A)]EAπ[θlogπ(As,θ)2],sSb^{*}(s)=\frac{\mathbb{E}_{A \sim \pi}\left[\left\|\nabla_{\theta} \log \pi\left(A \mid s, \theta\right)\right\|^{2} Q_{\pi}(s, A)\right]}{\mathbb{E}_{A \sim \pi}\left[\left\|\nabla_{\theta} \log \pi\left(A \mid s, \theta\right)\right\|^{2}\right]}, \quad s \in \mathcal{S}
最优基准表达式证明:

选择迹作为优化的目标函数: tr[var(X)]=trE[(Xxˉ)(Xxˉ)T]=trE[XXTxˉXTXxˉT+xˉxˉT]=E[XTXXTxˉxˉTX+xˉTxˉ]=E[XTX]xˉTxˉ,\begin{aligned}\mathrm{tr}[\mathrm{var}(X)] & =\mathrm{tr}\mathbb{E}[(X-\bar{x})(X-\bar{x})^\mathrm{T}] \\ & =\mathrm{tr}\mathbb{E}[XX^\mathrm{T}-\bar{x}X^\mathrm{T}-X\bar{x}^\mathrm{T}+\bar{x}\bar{x}^\mathrm{T}] \\ & =\mathbb{E}[X^\mathrm{T}X-X^\mathrm{T}\bar{x}-\bar{x}^\mathrm{T}X+\bar{x}^\mathrm{T}\bar{x}] \\& =\mathbb{E}[X^\mathrm{T}X]-\bar{x}^\mathrm{T}\bar{x},\end{aligned}

其中 xˉE[X]\bar{x}\doteq \mathbb{E}[X]. 将 XX 的表示式带入 E[XTX]\mathbb{E}[X^TX]

E[XTX]=E[(θlogπ)T(θlogπ)(Qπ(S,A)b(S))2]=E[θlogπ2(Qπ(S,A)b(S))2]=sSη(s)EAπ[θlogπ2(Qπ(s,A)b(S))2].\begin{aligned}\mathbb{E}[X^{\mathrm{T}}X] & =\mathbb{E}\left[(\nabla_\theta\log\pi)^\mathrm{T}(\nabla_\theta\log\pi)(Q_\pi(S,A)-b(S))^2\right] \\& =\mathbb{E}\left[\|\nabla_\theta\log\pi\|^2(Q_\pi(S,A)-b(S))^2\right]\\& = \sum_{s\in \mathcal{S}}\eta(s)\mathbb{E}_{A\sim\pi}[\|\nabla_{\theta}\log\pi\|^2(Q_{\pi}(s,A)-b(S))^2].\end{aligned}

目标函数最优,则 bE[XTX]=0,sS\nabla_b\mathbb{E}[X^TX]=0,\forall s\in\mathcal{S},进一步有

EAπ[θlogπ2(Qπ(s,A)b(S))]=0,\mathbb{E}_{A\sim\pi}[\|\nabla_{\theta}\log\pi\|^2(Q_{\pi}(s,A)-b(S))]=0,

求解即得最优基准.

最优基准过于复杂,难以在实际中使用. 移除权重 θlogπ(As,θ)2\|\nabla_{\theta} \log \pi(A \mid s, \theta)\|^{2},便得到一个次优的基准,即

b(s)=EAπ[Qπ(s,A)]=Vπ(s),sS.b^*(s)=\mathbb{E}_{A\sim\pi}[Q_{\pi}(s,A)]=V_\pi(s),\quad s\in\mathcal{S}.

那么令基准 b(S)=Vπ(S)b(S) = V_{\pi}(S),于是得到了优势函数

Aπ(s,a)=Qπ(s,a)Vπ(s)A_{\pi}(s,a) = Q_{\pi}(s,a) - V_{\pi}(s)

优势函数衡量的是“在状态 ss 采取动作 aa 比平均水平好多少”.用它代替纯粹的 QQ 值,可以极大地降低梯度估计的方差,同时不引入偏差.

此时算法变为

θt+1=θt+αθlogπ(at,st,θt)[Qt(st,at)Vt(st)]=θt+αθlogπ(at,st,θt)At(st,at)\begin{aligned} \theta_{t+1} & = \theta_t+\alpha\nabla_{\theta}\log \pi(a_t,\mid s_t,\theta_t)[Q_t(s_t,a_t)-V_t(s_t)]\\ & = \theta_t+\alpha\nabla_{\theta}\log \pi(a_t,\mid s_t,\theta_t)A_t(s_t,a_t) \end{aligned}

评论家 Critic 部分是一个优势函数 AA,其估计同样有两种方法:

  1. Qt(st,at)Q_t(s_t,a_t)Vt(st)V_t(s_t) 是通过 Monte Carlo 方法估计的,对应的便是带基准的 REINFORCE
  2. Qt(st,at)Q_t(s_t,a_t)Vt(st)V_t(s_t) 是通过时序差分方法估计的,对应的 AC 方法变为 Advantage Actor-Critic(A2C) 方法.此时需要两个近似函数,同时更新两套参数:
    • 近似值函数:V(s,v)Vπ(s)V(s,v)\approx V_{\pi}(s) ;
    • 近似行为值函数:Q(s,a,w)Qπ(s,a)Q(s,a,w)\approx Q_{\pi}(s,a)

实际操作中一般用 TD 误差代替优势函数进行计算,即

Qt(st,at)Vt(st)rt+1+γVt(st+1)Vt(st),Q_t(s_t,a_t)-V_t(s_t)\approx r_{t+1}+\gamma V_t(s_{t+1})-V_t(s_t),

这是因为 TD 误差是优势函数的无偏估计:

E[Rt+1+γVπ(St+1)Vπ(St)St=st,At=at]=E[Rt+1+γVπ(St+1)St=st,At=at]Vπ(st)=Qπ(st,at)Vπ(st)=Aπ(st,at). \begin{aligned} &\mathbb{E}[R_{t+1}+\gamma V_{\pi}(S_{t+1})-V_{\pi}(S_t) \mid S_t=s_t, A_t=a_t] \\ = & \mathbb{E}[R_{t+1}+\gamma V_{\pi}(S_{t+1})\mid S_t=s_t,A_t=a_t]-V_{\pi}(s_t)\\ = & Q_{\pi}(s_t,a_t)-V_{\pi}(s_t)\\ = & A_{\pi}(s_t,a_t). \end{aligned}

此时只需要使用一个神经网络来表征 Vπ(s)V_{\pi}(s).

5 Actor-Critic 变种:A3C#

5.1 异步方法的引入#

在 DQN 中,我们利用经验放回的技巧来打破数据之间的相关性,但它也存在一些缺点:

  1. 每次交互都需要更多的内存和计算,因为在算法中我需要设置一个回放缓冲区,用来放存收集的经验样本;
  2. 探索效率低:一个智能体一次只能经历一个轨迹 s0s1s2s_0\rightarrow s_1\rightarrow s_2\ldots
    e.g. 网格世界中,单个 agent 逐个探索路线 episode 1, episode 2…效率低下.

异步:每个 agent 独立运行

agent1 ---> 更新 ---> Global Network
agent2 ---> 更新 ---> Global Network
agent3 ---> 更新 ---> Global Network
plaintext

通过在多个环境实例中并行地执行多个智能体,来产生多样化的数据.在给定的时间步,并行的智能体将经历各种不同状态,从而避免了数据之间的相关性.
不同经验共同训练,且可以有不同的探索策略,具备探索多样性,从而能够丰富训练数据

异步思想

  • 多 Worker 并行交互:在算法中启动多个独立的线程(Worker),每个 Worker 都有一份全局共享网络的副本(Local Network),并各自独立地与各自的环境实例进行交互,收集数据;
  • 异步更新:多个 Worker 不需要等待,当某一 Worker 完成一定步数的梯度计算后,就立即推送到全局共享网络进行更新,再使用新的参数继续下一轮交互;
  • 避免数据相关性,从而无需经验回放

类似于批量更新方式,单个 Worker 将固定时间步内的更新量进行累计,每隔一定时间步将累积的更新量更新到共享参数,可以减少多个 Worker 彼此覆盖的可能.

5.2 Asynchronous Advantage Actor-Critic (A3C)#

异步优势演员-评论家算法(A3C)

A3C 在 A2C 的基础上引入异步方法,它维护一个全局网络和多个并行的 worker 线程,每个 worker 有自己独立的本地网络副本.worker 在各自的环境中独立运行、独立计算本地梯度,并异步地更新全局网络参数,然后再从全局网络拉取最新参数.

A3C 算法需要计算两个参数:

  • 参数 θ\theta(Actor): 策略函数 π(atst,θ)\pi(a_t\mid s_t,\theta)
  • 参数 θv\theta_v(Critic):值函数 V(st;θv)V(s_t;\theta_v).
对每一个 Worker:
初始化.同步全局参数至本地参数,得到自己独立的本地网络的环境θ'(Actor),θ_v'(Critic)

进行 Actor-Critic 本地模型训练
    得到初始化状态 s
    遵循策略 π(a | s;θ') 采样得到动作 a_t, 并与环境交互得到 r_t, s_{t+1}
    类似批量更新方式,缓存固定时间步(全局网络更新频率)内的轨迹
        达到全局网络更新条件(固定时间步或轨迹终止):
            批量计算 TD 目标
            更新本地网络(Actor-Critic)

同步本地参数至全局参数
plaintext

策略梯度定理

θJ(θ)ESμ,Aπ[θlogπθ(AS)Qπ(S,A)]\nabla_\theta J(\theta) \propto \mathbb{E}_{S\sim\mu,A\sim\pi} \left[ \nabla_\theta \log \pi_\theta(A\mid S) \, Q_{\pi}(S, A) \right]
算法参数更新公式备注
REINFORCEθθ+αGtθlogπθ(AtSt)\theta \leftarrow \theta + \alpha \, G_t \, \nabla_\theta \log \pi_\theta(A_t \mid S_t)GtG_t:从时刻 tt 开始的累计折扣回报
带基准的 REINFORCEθθ+α(GtVw(st))θlogπθ(AtSt)\theta \leftarrow \theta + \alpha \, (G_t - V_w(s_t)) \, \nabla_\theta \log \pi_\theta(A_t \mid S_t)GtVw(st)G_t - V_w(s_t):引入状态值函数作为基准,降低方差
Actor-Critic (AC)θθ+αθlogπ(atst,θ)Qt(st,at)\theta \leftarrow \theta + \alpha \, \nabla_\theta \log \pi(a_t \mid s_t, \theta) \, Q_t(s_t, a_t)Qt(st,at)Q_t(s_t, a_t) 动作值函数作为 Critic 的估计
A2C (Advantage Actor-Critic)θθ+αθlogπ(atst,θ)[Qt(st,at)Vt(st)]\theta \leftarrow \theta + \alpha \, \nabla_\theta \log \pi(a_t \mid s_t, \theta) \, [Q_t(s_t, a_t) - V_t(s_t)]Qt(st,at)Vt(st)Q_t(s_t, a_t) - V_t(s_t):优势函数,用于减少方差并稳定训练

教材参考

  • 邹伟 - 强化学习 - 清华大学出版社.
  • Richard S. Sutton - Reinforcement Learning: An Introduction.
9 Actor-Critic及其变种
https://explorx.pages.dev/blog/rl/v3klem
AuthorXin
Published at2026年8月8日