优势演员-评论家 (A2C) 是一种具体且常用的实现方式,属于通用演员-评论家框架,其中演员学习策略,评论家学习价值函数。像REINFORCE这样的标准策略梯度方法根据总回报 $G_t$ 更新策略参数。尽管是无偏的,但使用完整回报通常会给梯度估计带来高方差,导致学习不稳定和缓慢。A2C 的核心思想是使用比原始回报更具信息量的信号来指导策略更新。A2C 不仅仅问“这条整体轨迹是好是坏?”,而是关注“在状态 $s_t$ 下采取的特定动作 $a_t$ 是否比预期更好或更差?”。这种相对衡量标准由优势函数来体现,其定义如下:$$ A(s, a) = Q(s, a) - V(s) $$这里,$Q(s, a)$ 是动作价值函数(在状态 $s$ 下采取动作 $a$ 后的预期回报),$V(s)$ 是状态价值函数(在当前策略下从状态 $s$ 获得的预期回报)。优势 $A(s, a)$ 量化了动作 $a$ 相对于当前策略 $\pi$ 下从状态 $s$ 采取的平均动作好多少。如果 $A(s, a) > 0$,则动作 $a$ 好于平均水平;如果 $A(s, a) < 0$,则差于平均水平。使用优势作为策略更新的缩放因子,相比于仅使用回报 $G_t$ 提供了更低方差的信号,因为基线 $V(s)$ 减去了状态的平均价值,从而将更新集中在所选动作的相对质量上。优势估计实际中,我们无法获得真实的 $Q(s, a)$ 和 $V(s)$。A2C 使用评论家学习到的价值函数估计 $V_\phi(s)$(由 $\phi$ 参数化)来近似优势。对于转移 $(s_t, a_t, r_{t+1}, s_{t+1})$,一种估计优势的常用方法是基于时间差分 (TD) 误差:$$ A(s_t, a_t) \approx r_{t+1} + \gamma V_\phi(s_{t+1}) - V_\phi(s_t) $$这里,$r_{t+1} + \gamma V_\phi(s_{t+1})$ 作为 $Q(s_t, a_t)$ 的估计(即时奖励加上下一个状态的折扣估计价值)。减去评论家对当前状态价值的估计 $V_\phi(s_t)$,就得到了 TD 误差,这可以作为优势的单步估计。尽管多步回报有时可以提供更好的估计,但这种单步 TD 误差因其简洁性和较低方差而经常被使用。A2C 架构与更新A2C 的一种常见实现模式涉及神经网络架构,其中初始层由演员和评论家共享,然后是独立的输出头。digraph G { rankdir=LR; node [shape=box, style=rounded, fontname="sans-serif", color="#495057", fillcolor="#e9ecef", style=filled]; splines=ortho; "状态 (s)" -> "共享层" [color="#495057"]; "共享层" -> "策略头 (演员)\nπ(a|s; θ)" [color="#1c7ed6"]; "共享层" -> "价值头 (评论家)\nV(s; φ)" [color="#f76707"]; "策略头 (演员)\nπ(a|s; θ)" -> "动作概率 / 参数" [color="#1c7ed6"]; "价值头 (评论家)\nV(s; φ)" -> "价值估计 V̂(s)" [color="#f76707"]; subgraph cluster_NN { label = "神经网络"; color="#adb5bd"; fontname="sans-serif"; style=dashed; "共享层"; "策略头 (演员)\nπ(a|s; θ)"; "价值头 (评论家)\nV(s; φ)"; } }此图展示了典型的 A2C 网络,其中共享层连接到独立的演员(策略)和评论家(价值)输出头。学习过程涉及更新演员和评论家参数,通常使用基于与环境交互收集的数据的梯度下降法。评论家更新评论家参数 $\phi$ 的更新是为了最小化其价值估计 $V_\phi(s_t)$ 与目标价值(通常是 TD 目标 $r_{t+1} + \gamma V_\phi(s_{t+1})$)之间的差异。评论家的损失函数通常是均方误差:$$ L_{critic}(\phi) = \mathbb{E}t \left[ (r{t+1} + \gamma V_\phi(s_{t+1}) - V_\phi(s_t))^2 \right] $$最小化此损失有助于评论家 $V_\phi(s)$ 成为预期折扣未来回报的更准确预测器。注意,目标价值 $r_{t+1} + \gamma V_\phi(s_{t+1})$ 使用当前评论家参数 $\phi$;这是一种自举(bootstrapping)形式。演员更新演员的参数 $\theta$ 使用策略梯度方法更新,但通过评论家得出的优势估计进行缩放。其目标是增加导致正向优势的动作的概率,并降低导致负向优势的动作的概率。演员的梯度上升更新方向基于:$$ \nabla_\theta J(\theta) \approx \mathbb{E}t \left[ \nabla\theta \log \pi_\theta(a_t|s_t) \times A(s_t, a_t) \right] $$其中 $A(s_t, a_t)$ 是估计优势,$r_{t+1} + \gamma V_\phi(s_{t+1}) - V_\phi(s_t)$。请注意,在计算关于 $\theta$ 的梯度时,优势项 $A(s_t, a_t)$ 被视为常数;我们只对策略项 $\log \pi_\theta(a_t|s_t)$ 进行微分。这种更新直接推动策略朝向被评论家认为优于平均水平的动作。组合损失实际中,更新通常通过最小化组合损失函数同时进行:$$ L(\theta, \phi) = L_{actor}(\theta) + \beta \times L_{critic}(\phi) $$其中 $L_{actor}(\theta) = - \mathbb{E}t [ \log \pi\theta(a_t|s_t) \times A(s_t, a_t) ]$(注意负号是为了最小化),$\beta$ 是一个加权评论家损失的超参数(通常设为 0.5 或 1.0)。有时,会将一个策略的熵奖励项添加到演员损失中以鼓励探索,这可以防止策略过早收敛到次优的确定性策略。同步更新标准 A2C 算法通常采用多个并行工作者(演员),它们同时从环境的不同副本中收集经验。这些工作者运行固定步数,计算各自的优势估计和梯度,然后将这些梯度汇总(通常是求平均)以对共享模型参数($\theta$ 和 $\phi$)执行一次单一的同步更新。这种同步性质将其与我们将接下来讨论的异步版本 A3C 区分开来。同步更新可以带来比完全异步方法更稳定的训练,尤其是在有效使用 GPU 时。通过运用评论家的价值估计来计算优势,A2C 为演员提供了更稳定且通常更高效的学习信号,相比于 REINFORCE 等普通策略梯度方法。它结合了基于策略的方法(直接策略优化、处理连续动作)的优点与受基于价值方法启发的方差减少技术。