优势演员-评论家 (A2C) 详解
TL;DR
优势演员-评论家 (A2C) 是一种混合强化学习架构,结合基于策略的(Actor)和基于价值的(Critic)方法,以降低像 Reinforce 这样的纯策略梯度方法所带来的高方差。通过使用价值函数对动作提供即时反馈,而不是依赖完整回合的 Monte Carlo 回报,这种组合能够稳定训练并提升样本效率。
Reinforce 中的方差问题
纯基于策略的方法,例如 Reinforce,由于依赖 Monte Carlo 采样,在策略梯度估计中会出现显著的方差。在 Reinforce 中,智能体收集完整的轨迹,并使用折扣回报来增加或减少该轨迹中每个动作的概率。
虽然该方法因为使用真实回报而是无偏的,但其不稳定性很高。环境和策略的随机性意味着相同的起始状态在不同回合中可能产生截然不同的回报。为降低这种方差,实践者必须使用大量轨迹,这显著降低了样本效率并减慢了训练速度。
Actor-Critic 架构
Actor-Critic 方法通过结合两种不同的函数近似来解决方差问题:
- The Actor: 一个策略函数 $\pi_{\theta}(s, a)$,控制智能体的行为方式。
- The Critic: 一个价值函数 $(\hat{q})_{w}(s, a)$,衡量所采取动作的质量。
Actor-Critic 训练过程
在训练期间,Actor 与 Critic 通过持续的反馈回路共同优化:
- 动作选择: Actor 接收当前状态 $S_t$ 并输出动作 $A_t$。
- 价值估计: Critic 接收 $S_t$ 和 $A_t$,计算该状态下执行该动作的 Q 值(即该动作的价值)。
- 环境交互: 执行动作 $A_t$,得到新状态 $S_{t+1}$ 和奖励 $R_{t+1}$。
- 策略更新: Actor 根据 Critic 提供的 Q 值更新其策略参数。
- 价值更新: Critic 更新自身的价值参数,以改进未来的反馈。
Advantage Actor Critic (A2C)
优势演员-评论家 (A2C) 通过用 Advantage 函数 替代标准的动作价值函数,进一步稳定学习过程。
与其衡量动作的绝对价值,Advantage 函数计算特定动作相对于该状态平均价值的提升程度。它将状态的平均价值从状态‑动作对的价值中减去:
$$\text{Advantage} = Q(s, a) - V(s)$$
通过 TD 误差实现
实现真正的 Advantage 函数通常需要两个独立的价值函数($Q(s, a)$ 和 $V(s)$)。为简化实现,A2C 使用 Temporal Difference (TD) error 作为 Advantage 函数的可靠估计。
如果计算得到的 Advantage $A(s, a)$ 为正,梯度会沿该方向推动,以提升该动作的概率;如果 $A(s, a)$ 为负——即该动作的表现低于该状态的平均水平——梯度则会向相反方向推动。
机器人领域的实际应用
Hugging Face 演示了在 PyBullet 机器人仿真中使用 Stable-Baselines3 库实现 A2C 的应用。这使得能够在复杂的连续控制环境中训练智能体,例如让双足行走者或蜘蛛机器人学会行走。
Sources
- OriginalAdvantage Actor Critic (A2C)