Actor-Critic 深度强化学习
介绍 Actor-Critic 深度强化学习的基本原理,包括 A2C、A3C 等算法的核心思想、优势函数的定义与计算方法,以及它们在深度强化学习中的应用和实现细节
AC 方法
-
核心思想 —— 将策略和价值函数结合在一起训练:
- Actor:表示策略函数 ,负责从状态 中选择动作
- Critic:表示价值函数 或 ,负责评估当前策略的表现,提供策略改进的学习信号
- 相比于传统的策略梯度方法(如 REINFORCE),AC 方法引入 Critic 来降低策略梯度的方差,从而提升学习效率和稳定性
-
策略更新(Actor):使用策略梯度(REINFORCE)更新策略网络参数 :
-
其中 是优势函数,估计该动作是否比平均值更好,常用:
-
价值函数更新(Critic):通过 TD 误差更新价值网络参数 :
A2C 方法(Advantage Actor-Critic)
-
A2C 是A3C 的同步版本,是对标准 Actor–Critic 的工程化改进
-
核心思想
- 使用**多个并行环境(workers)**同时采样
- 在每一轮中同步汇总所有 worker 的梯度
- 再统一更新一套共享的 Actor / Critic 参数
- 本质仍是单策略、单价值函数的 on-policy AC
-
优势函数(常用 n-step TD Advantage)
-
为了进一步降低偏差与方差折中,常用 步回报:
-
对应优势函数:
-
-
Actor 更新(策略梯度)
- 为并行环境数量
- 梯度来自多个 worker 的平均
-
Critic 更新(价值函数回归)
-
特点总结
- 同步更新,实现简单、数值稳定
- 易于 GPU 加速
- 相比 A3C:吞吐量略低,但工程上更常用
- PPO、IMPALA 等方法的 “基础版本”
-
n 步回报与 TD (λ) 的区别
-
TD (λ) 定义的是λ- 回报(λ-return):TD (λ) = 所有 n-step 回报的指数加权平均
-
n-step:实现简单、批量计算友好、易并行(A2C/A3C)
-
TD (λ):需要 eligibility trace 或等价实现、并行环境下实现复杂、GPU 上不如 n-step 友好
-
因此 A2C 选择了 TD (λ) 的 “离散近似版本”
-
A3C 方法(Asynchronous Advantage Actor-Critic)
-
A3C 是第一个成功的大规模并行深度强化学习算法
-
核心思想
- 使用多个异步 worker
- 每个 worker:
- 拥有独立的环境实例
- 使用共享的全局参数副本
- 独立采样、独立计算梯度
- 梯度异步推送到全局网络(无锁更新)
-
异步机制的作用
- 打破样本间的时间相关性
- 不依赖经验回放(Replay Buffer)
- 天然具备探索多样性(不同 worker 处于不同状态分布)
-
优势函数(n-step TD,与 A2C 相同)
-
Actor 更新(每个 worker 独立计算,梯度直接异步累加到全局参数)
-
Critic 更新(同样是异步更新)
-
关键工程特征
- 不需要同步 barrier
- 更新是Hogwild-style(无锁)
- CPU 多线程友好(A3C 诞生于 GPU 尚不成熟时期)
-
局限性
- 异步带来梯度噪声
- GPU 利用率较低
- 在现代硬件下常被 A2C / PPO 替代
这篇文档有帮助吗?