Benchmarking Deep Reinforcement Learning for Continuous Control

连续控制深度强化学习的基准测试(rllab)

arXiv: 1604.06778 | ICML 2016
作者: Yan Duan, Xi Chen, Rein Houthooft, John Schulman, Pieter Abbeel
机构: UC Berkeley / 根特大学 / OpenAI
代码: https://github.com/rllab/rllab


核心问题是什么?

目的

深度强化学习在 Atari 游戏(离散动作)领域已有 ALE 等标准化基准,但在连续控制领域缺乏公认的基准,导致:

  • 不同工作间难以公平比较
  • 进展量化困难,实现细节不透明
  • 可重复性差,超参数调优标准不统一

本文目标:建立连续动作空间强化学习的标准化评测套件,系统评估主流算法性能。

现有方法及局限性

已有基准局限
ALE (Atari)仅支持离散动作空间
RLLib / MMLF任务简单,不含高维机器人任务
Tdlearn / PyBrain任务类型单一,无标准化评估流程

本文方法

提出 rllab 基准套件,包含 31 个连续控制任务,分为 4 大类:

  1. 基础任务(5 个):Cart-Pole、Mountain Car、Acrobot 等经典控制
  2. 运动任务(7 个):Swimmer、Hopper、Walker、Ant、Humanoid 等
  3. 部分可观测任务(15 个 = 5×3 变体):限传感器/观测噪声/系统辨识
  4. 分层任务(4 个):迷宫导航 + 运动控制的层次组合

基于 Box2D(2D)和 MuJoCo(3D 物理仿真)实现,全部开源。

效果

  • TRPO / TNPG 在大多数任务上表现最优
  • 所有算法在分层任务上均失败(重要的 open problem)
  • Hopper / Ant / Humanoid 等任务成为此后 10 年的标准评测集

核心贡献是什么?

  1. 标准化基准套件:31 个连续控制任务,覆盖从简单到极高维度
  2. 系统算法对比:实现并评估 7 种 RL 算法(REINFORCE、TNPG、TRPO、RWR、REPS、CEM、CMA-ES、DDPG)
  3. 标准化超参搜索流程:网格搜索 + 5 随机种子 + $\mu - \sigma$ 选优,保证公平性
  4. 全部开源:代码、环境、参考实现一并发布,保证可重复性
  5. 揭示分层任务难题:所有算法失败,指出需要新算法的方向

大致方法是什么?

任务设计

运动任务奖励通用形式

$$r = v_x - 0.005|a|^2 + (\text{存活奖励})$$

部分可观测 3 种变体(每个运动任务各有):

  • LS(Limited Sensors):仅提供位置,不提供速度
  • NO(Noisy Obs):高斯噪声 $\sigma=0.1$ + 动作延迟
  • SI(System Identification):物理参数在不同 episode 随机变化

评估方法

性能指标为平均累积回报(未折扣):

$$\text{Performance} = \frac{1}{\sum_i N_i} \sum_i \sum_n R_{in}$$

网络架构

批处理算法策略网络

  • 3 隐藏层:100 → 50 → 25 单元,tanh 激活
  • 输出高斯分布均值,对数标准差为全局参数

DDPG

  • 2 隐藏层:400 → 300,ReLU 激活

部分可观测任务:LSTM,32 隐藏单元


训练

数据集

无监督数据集,基于物理仿真(MuJoCo / Box2D)在线采集轨迹。

每次迭代采集 50,000 步,训练 500 次迭代(POMDP 任务 300 次,分层任务 500 次)。

loss

各算法优化目标:

  • REINFORCE: $\nabla_\theta \eta(\pi_\theta) \approx \frac{1}{NT} \sum \nabla_\theta \log \pi(a_t|s_t;\theta)(R_t - b_t)$
  • TNPG / TRPO: 约束 KL 散度下的自然梯度上升
  • DDPG: Actor-Critic,Bellman 方程 + 确定性策略梯度

训练策略

  • 超参搜索:每类别选 2 个代表任务,网格搜索,5 随机种子取 $\mu - \sigma$ 最优
  • 基线函数(REINFORCE/TNPG/TRPO):线性基线 $\phi_{s,t} = [s, s \odot s, 0.01t, (0.01t)^2, (0.01t)^3, 1]$
  • 折扣因子 $\gamma = 0.99$,视界 $T = 500$

实验与结论

算法对比总结

算法基础任务运动任务POMDP(循环)分层任务核心问题
TRPO✅ 最优✅ 最优需要循环❌ 全失败计算开销略高
TNPG✅ 次优✅ 次优步长控制不如 TRPO
DDPG✅ 快速收敛中等不稳定,可能退化
REINFORCE中等中等局部最优
RWR简单任务 OK❌ 复杂失败高维退化
REPS❌ 早熟非平稳分布敏感
CEM/CMA-ES简单任务强❌ 维度灾难高维内存不足

关键发现

  1. 约束策略变化是关键:TRPO / TNPG 通过 KL 约束保证稳定学习,远优于普通梯度法
  2. DDPG 样本高效但不稳定:适合 sample-limited 场景,但对奖励缩放敏感(实验用 0.1×)
  3. 循环策略在 POMDP 上有效:但训练难度高于前馈,梯度消失是主要挑战
  4. 分层任务是所有算法的死穴:500 轮迭代、大量超参搜索,全部失败 → 明确指向需要自动发现分层结构的新算法
  5. 进化方法在高维失效:CMA-ES 在 Full Humanoid(高维)上 OOM

局限性

  • 仿真到现实的 gap:全在 MuJoCo 仿真中测试,未验证真实机器人迁移
  • 任务设计局限:奖励函数手工设计,缺乏稀疏奖励任务
  • 分层任务失败:未提出解法,只是揭示了问题
  • 算法覆盖不全:无 model-based 方法,无现代 off-policy 算法(SAC 等当时未发表)

启发

  1. 约束策略更新步长是连续控制的核心:TRPO 的核心思路(信任域约束)后来影响了 PPO(简化版的 TRPO,工程上更实用)
  2. 标准化 locomotion 任务的价值:Hopper/Ant/Humanoid 成为 SAC、PPO、TD3 等算法的标准测试床,被引用数千次
  3. 分层结构需要专门设计:单纯增加 RL 算法能力不能解决分层任务,后续 DeepLoco、Option Framework 等都在这个方向上努力
  4. 样本效率 vs 稳定性的权衡:DDPG 代表"快但不稳",TRPO 代表"稳但慢",这一 trade-off 在 SAC(解决稳定性)出现前一直是核心矛盾

遗留问题

  • 如何自动发现任务中的分层结构?(后续: FeUdal Networks, HIRO 等)
  • 如何让 DDPG 类方法更稳定?(后续: TD3, SAC)
  • 如何在部分可观测任务中更有效地训练循环策略?
  • 基准任务是否足够多样,是否覆盖真实机器人场景?(后续 OpenAI Gym 的设计很大程度受此影响)
  • 仿真 gap:MuJoCo 学到的策略能直接迁移到真实机器人吗?

参考材料

  • 论文:https://arxiv.org/abs/1604.06778
  • 代码:https://github.com/rllab/rllab
  • 相关:PPO(TRPO 的简化版)、SAC(解决 DDPG 不稳定性)、TD3(DDPG 改进版)
  • 后续基准:OpenAI Gym、dm_control、MuJoCo locomotion suite