Actor-Critic 架构:A2C 与 A3C

03-策略梯度与ActorCritic 核心 约 20 分钟 #Actor-Critic#A2C#A3C#策略网络 更新 2026-10-02
当前状态:未学
本文基于模型知识整理(生成时未联网核对),关键结论建议对照 Sutton & Barto §13.5 与 Mnih et al. 2016 复核。

一句话定义

Actor-Critic 用两个头分工:actor(策略网络)按策略梯度更新"怎么动",critic(价值网络)用 TD 学习"局面值多少钱",把 REINFORCE 里的高方差 MC 回报替换成 critic 的低方差自举估计——A2C 是其同步并行版,A3C 是其异步多线程先驱。

为什么重要

它把价值方法(低方差、样本高效)与策略方法(直接优化目标、支持连续动作)的优点焊接在一起,是当代几乎所有主流算法(PPO/SAC/DDPG/A2C 系)的共同骨架;"一个网络两个头(共享特征层)"也是深度 RL 最经典的架构图式。

前置知识

kp-008(TD 误差)、kp-013(策略梯度)、kp-014(GAE)。

核心概念

  • Actor 更新:$\nabla_\theta J = \mathbb{E}[\nabla_\theta\log\pi_\theta(a_t|s_t)\,\hat A_t]$,优势由 critic 提供。
  • Critic 更新:回归 TD 目标 $\mathcal{L}(\phi) = (r_t + \gamma V_\phi(s_{t+1}) - V_\phi(s_t))^2$。
  • A2C(同步优势 Actor-Critic):n 个并行环境同步 rollout n 步 → 批量算 GAE → 一次更新;结构清晰、易复现,是教学与多数实现的默认形态。
  • A3C(异步版,2016):多线程各自与环境交互、异步地把梯度推给全局共享网络——首个把深度 RL 训练墙时间打到分钟级的架构;因异步导致的"陈旧梯度"问题,后来被同步版 A2C 反超。
  • 共享骨干:actor 与 critic 共享编码器、分头输出 π 与 V——特征学习共享,头间梯度互扰是工程权衡点。

原理与机制

critic 如何降方差:REINFORCE 的权重 $G_t$ 换成 $\hat A_t^{GAE}$(kp-014)——权重从"整段真实回报"变为"相对 critic 预期的改进量",尺度稳定、方差骤降;代价是引入 critic 的偏差(自举目标)与一个要训练的网络(kp-012 三角重新入场,靠目标头/软更新压制)。

两个头的相互依赖:actor 依赖 critic 的优势信号方向正确(critic 偏 → actor 学歪);critic 的目标分布随 actor 变化(非平稳回归)。两者学习速度要配平——critic 学得太慢则优势全是噪声,太快则过拟合早期策略。这是 AC 系调参的核心(value loss 系数、critic 学习率,kp-029)。

为什么并行环境有效:多个环境同时采样 → 批内数据相关性低、覆盖多区域 → 梯度更像 iid、方差低。这一"向量化环境"思想已成为所有现代实现的标配(kp-028 的 SyncVectorEnv)。

图示

        状态 s_t
          │
      共享骨干 φ
      ╱         ╲
 actor π_θ(a|s)   critic V_φ(s)
   │                 │
   │  Â_t = δ_t + γλÂ_{t+1} (GAE, 用 V_φ)
   ▼                 ▼
∇θ: logπ·Â          ∇φ: (r+γV(s')−V(s))²

实例或案例

  • CartPole/Pong 上 A2C 与 REINFORCE 对照:同种子下 A2C 曲线方差显著更小、更早收敛——critic 降方差的最直观证据。
  • A3C 的历史地位:2016 年以 16 线程 CPU 在 Atari 达到当时 SOTA,开启了"并行环境采样"时代;其异步思想的现代遗产是分布式 rollouter(IMPALA/Apex)。

常见误区

  • 误区一:"actor 和 critic 必须共享骨干"。共享省算力但梯度互扰(策略梯度幅度大时冲击价值头);用独立网络或梯度隔离(stop-gradient)也是常见解。
  • 误区二:"A3C 的异步一定更好"。异步梯度有陈旧性(基于旧参数算的梯度更新新参数),同步 A2C 在 GPU 上更快更稳——历史选择了后者。
  • 误区三:"critic 损失越小越好"。critic 过早拟合早期策略的值函数,优势信号反而失真;value loss 系数一般取 0.5 左右做配平(kp-029)。

与其他知识点的关系

  • kp-013/014:actor 的梯度与优势来源。
  • kp-008/012:critic 的 TD 学习与稳定性。
  • kp-017:PPO = A2C 骨架 + 裁剪的替代目标 + 大批量。
  • kp-009:A2C 是 on-policy(并行环境提供新鲜数据)。

自测题

  1. Actor-Critic 中两个头各学什么、各自的损失?

答:actor 学策略(损失 −logπ·Â),critic 学价值(TD 均方误差 (r+γV(s')−V)²);Â 来自 critic 的 GAE。

  1. critic 替换 MC 回报换来什么、付出什么?

答:换来方差骤降与逐步更新;付出自举偏差与训练非平稳性(需目标头/软更新与学习率配平)。

  1. 并行环境为什么能降梯度方差?

答:多环境同时采样打破时间相关性、批内状态覆盖更广,梯度更接近独立同分布假设。

延伸阅读

  • Mnih 等, "Asynchronous Methods for Deep Reinforcement Learning"(ICML 2016,A3C)。
  • Sutton & Barto 教材 §13.5、§13.7。
  • stable-baselines3 的 A2C 实现(工业级参考代码)。