主题
算法对照表
本页汇总常见强化学习算法的关键属性,帮助你根据任务特点快速选型。一般来说:离散动作、可以大量采样时可以考虑 DQN 系列或 PPO;连续控制且更看重样本效率时优先考虑 SAC 或 TD3;只有固定数据集时考虑离线 RL 方法。表中的“适用场景”是经验性建议,实际效果还取决于实现细节和调参。
对照表
| 算法 | 类型 | 同策略 / 异策略 | 动作空间 | 典型适用场景 |
|---|---|---|---|---|
| ε-贪心 / UCB / 汤普森采样 | 老虎机算法 | — | 离散 | 推荐、广告、A/B 测试等单步决策 |
| Q-learning | 基于价值(表格) | 异策略 | 离散 | 小规模离散状态问题、教学 |
| SARSA / n 步 SARSA | 基于价值(表格) | 同策略 | 离散 | 需要考虑探索风险的小规模问题 |
| DQN | 基于价值 | 异策略 | 离散 | Atari 等图像输入、离散动作任务 |
| Double / Dueling DQN、Rainbow | 基于价值 | 异策略 | 离散 | 需要更高性能与稳定性的离散任务 |
| REINFORCE | 策略梯度 | 同策略 | 离散 / 连续 | 教学、简单任务 |
| A2C / A3C | Actor-Critic | 同策略 | 离散 / 连续 | 可并行采样的环境 |
| TRPO | 策略梯度(信赖域) | 同策略 | 离散 / 连续 | 需要稳定单调提升的研究场景 |
| PPO | 策略梯度(裁剪) | 同策略 | 离散 / 连续 | 通用首选基线、游戏、机器人、RLHF |
| DDPG | Actor-Critic(确定性) | 异策略 | 连续 | 连续控制(对超参数敏感) |
| TD3 | Actor-Critic(确定性) | 异策略 | 连续 | 连续控制、机器人仿真 |
| SAC | Actor-Critic(最大熵) | 异策略 | 连续(也有离散变体) | 连续控制首选、样本效率要求高 |
| DDPG / SAC + HER | 目标导向 RL | 异策略 | 连续(也可离散) | 多目标、稀疏奖励的到达类任务 |
| MPC:随机打靶 / CEM / PETS | 基于模型(在线规划) | —(不学策略) | 连续 | 低维控制、交互极其昂贵、允许较高决策延迟 |
| MBPO | 基于模型 + SAC | 异策略 | 连续 | 追求样本效率的连续控制 |
| IPPO / MAPPO | 多智能体策略梯度 | 同策略 | 离散 / 连续 | 合作型多智能体任务(参数共享) |
| GAIL | 对抗模仿学习 | 同策略(配 PPO/TRPO) | 离散 / 连续 | 有示范、无奖励,且可以与环境交互 |
| CQL / IQL | 离线 RL | 离线 | 离散 / 连续 | 只有固定数据集、无法在线交互 |
| DPO | 偏好优化 | 离线(偏好数据) | 离散(token 序列) | 大模型偏好对齐 |
| GRPO | 策略梯度(组相对优势) | 同策略 | 离散(token 序列) | 大模型推理能力训练(可验证奖励) |
选型建议
%%{init: {"flowchart": {"rankSpacing": 32, "nodeSpacing": 16}}}%%
flowchart LR
A([能否与环境交互?]) -- 不能 --> B([数据来自专家<br/>且没有奖励?])
B -- 是 --> BC[行为克隆 / 模仿学习]
B -- 否 --> OFF[离线 RL<br/>CQL / IQL / TD3+BC]
A -- 能 --> C([动作空间?])
C -- 离散 --> D([采样便宜、<br/>可并行?])
D -- 是 --> PPO1[PPO]
D -- 否 --> DQN[DQN / Rainbow<br/>看重样本效率]
C -- 连续 --> E([更看重样本效率<br/>还是并行规模?])
E -- 样本效率 --> SAC[SAC / TD3<br/>样本效率高、较稳定]
E -- 并行规模 --> PPO2[PPO<br/>大规模并行仿真]
一些经验法则:
- 不知道选什么时先试 PPO:它对离散和连续动作都适用,实现成熟,超参数相对稳健,是最常见的基线。
- 连续控制且交互昂贵:优先 SAC(自动调温,对超参数不敏感)或 TD3。
- 离散动作、需要复用历史数据:DQN 系列(建议至少使用 Double DQN)。
- 大规模并行仿真(如 Isaac Gym 上的机器人训练):同策略的 PPO 能充分利用海量并行数据。
- 只有离线数据:先跑 BC 基线,再试 CQL、IQL、TD3+BC。
- 大模型对齐:有偏好数据用 DPO;有可验证奖励(数学、代码)用 GRPO 等在线 RL;需要通用奖励模型时用 RLHF + PPO。
- 有可用的环境模型或交互极其昂贵:考虑基于模型的方法(低维任务可直接用 MPC;否则 MBPO、Dreamer)。
- 多目标、只有“成功 / 失败”奖励:异策略算法 + HER。
- 只有单步决策(没有状态转移):用 老虎机算法,汤普森采样通常是很强的默认选择。
本站实测结果汇总
下表汇总本站代码在小环境上的实测结果(单线程 CPU、短训练预算,多数为单个种子)。这些结果只用于说明代码能正常学习,不能用于比较算法优劣——严肃的基准对比需要多种子、更长训练和更难的任务。论文中的大规模基准对比请参考各算法原论文,以及 Stable-Baselines3 的 RL Zoo、CleanRL 的 Open RL Benchmark 等公开结果。
| 算法 | 环境 | 训练预算 | 评估结果 |
|---|---|---|---|
| Q-learning | CliffWalking-v1 | 500 回合 | 贪心路线 −13(最优) |
| SARSA | CliffWalking-v1 | 500 回合 | 贪心路线 −15.4(安全路线) |
| DQN | CartPole-v1 | 5 万步 | 500 / 470.9 / 500(3 个种子) |
| REINFORCE | CartPole-v1 | 1000 回合 | 训练回报约 470–484(随机策略);argmax 评估 289 |
| A2C | CartPole-v1 | 20 万步 | 500(训练中有明显波动) |
| TRPO | CartPole-v1 | 约 10 万步 | 500 |
| PPO | CartPole-v1 | 20 万步 | 500(2 个种子) |
| DDPG | Pendulum-v1 | 2 万步 | −168.0 |
| TD3 | Pendulum-v1 | 2 万步 | −169.1 |
| SAC | Pendulum-v1 | 2 万步 | −166.3 |
| 汤普森采样 / UCB1 / ε=0.1 | 10 臂伯努利老虎机 | 5000 步 × 200 次 | 累积懊悔 40.3 / 276.4 / 240.6 |
| n 步 SARSA(n=3) | CliffWalking-v1 | 500 回合 × 10 种子 | 前 50 回合平均 −139.3(n=1 为 −209.2) |
| PPO(连续动作) | Pendulum-v1 | 约 20 万步 | −206.3 / −202.8 / −226.6(3 个种子) |
| 离散 SAC | CartPole-v1 | 4 万步 | 500 / 500 / 384.7(3 个种子) |
| DDPG + HER | 自建二维到达任务 | 100 回合 | 成功率 1.00(3 个种子;不加 HER 为 0.02–0.04) |
| CEM / PETS(MPC) | Pendulum-v1 | 2000 个真实步 | 第 3–10 回合平均 −170.3 / −196.7(随机打靶 −278.6) |
| MBPO | Pendulum-v1 | 2000 个真实步 | 约 −100(SAC 约 −1300;同更新比 SAC 约 −98) |
| IPPO / MAPPO | MPE simple_spread | 80 万步 | 平均回合回报约 −16.4 / −16.5(随机 −27.0) |
| GAIL | CartPole-v1,25 对示范 | 约 20 万步 | 500 / 500 / 500(奖励 −log(1−D);换成 logit 奖励仅 9.2 / 37.7 / 9.2) |
完整的代码与说明见 代码实战。