OpenAI Baselines: ACKTR & A2C
OpenAI 为其 Baselines 框架发布了两个新的实现:ACKTR(使用克罗内克分解信任区域的 Actor-Critic)和 A2C(优势 Actor-Critic)。这些发布为研究人员提供了工具,以提高强化学习中的样本效率,并提供了一种更具计算效率的同步替代方案,以取代异步的 A3C 算法。
ACKTR: 高样本效率和可扩展性
ACKTR 的设计旨在比一阶方法(如 A2C)和其他信任区域方法(如 TRPO)更具样本效率。它通过在自然梯度方向而非标准梯度方向上迈步来实现这一点。
技术基础
ACKTR 结合三种核心技术来优化策略改进:
- Actor-Critic 方法:结合基于策略和基于价值的学习。
- 信任区域优化:通过限制 KL 散度来确保持续改进,防止新策略与旧策略行为 radically 不同,从而避免性能崩溃。
- 分布式克罗内克因子分解:用于提高可扩展性和样本效率。
样本复杂度 vs. 计算复杂度
ACKTR 优化了交互时间步数(样本复杂度)与数值运算次数(计算复杂度)之间的权衡:
- 样本复杂度:ACKTR 的样本复杂度优于一阶方法,因为自然梯度能够识别参数空间中,在输出分布每单位变化下能够实现目标最大瞬时改进的方向。
- 计算复杂度:ACKTR 使用的 KFAC 更新每步仅比标准梯度更新多花费 10–25%。这使其相比需要昂贵的共轭梯度计算的 TRPO 更具效率。
性能与扩展
ACKTR 的性能随批量大小而良好扩展。由于它利用每个批次的信息来近似参数空间的局部曲率,因此在大规模分布式训练中(其中大批量很常见)特别有效。
A2C: A3C 的同步替代方案
A2C 是异步优势 Actor-Critic(A3C)算法的同步、确定性变体。尽管 A3C 具有影响力,但 OpenAI 发现 A3C 中的异步性并未带来性能提升。
A2C 与 A3C 的比较
- 机制:与 A3C 不同,A3C 采用异步更新,而 A2C 会等待每个 actor 完成其经验片段后再进行更新,并在所有 actor 上取平均。
- 性能:OpenAI 的同步 A2C 实现优于其异步实现。他们未发现异步引入的噪声提供任何正则化或探索益处的证据。
- 效率:在单 GPU 机器上,A2C 更具成本效益,因为它能够更有效地利用大批量的 GPU。在使用较大策略时,它也比仅 CPU 的 A3C 实现更快。
基准测试与应用
OpenAI 发布了基准测试,评估 ACKTR 和 A2C 在多种任务上相对于 PPO 和 ACER 的表现。ACKTR 在 49 个 Atari 游戏上进行了测试,超参数仅在游戏 Breakout 上进行了调优。
ACKTR 已被应用于学习以下控制策略:
- 模拟机器人:以像素作为输入,连续动作空间。
- Atari 智能体:以像素作为输入,离散动作空间。
Sources
- OriginalOpenAI Baselines: ACKTR & A2C