RL——强化学习开源项目记录


本文主要介绍强化学习中的优质开源项目,包括OpenAI的baselines和SpinningUp,以及Google的Dopamine等


整体说明

  • 比较重点的项目是 OpenAI Spinning Up、OpenAI Baselines、Stable-Baselines3 和 AI4Finance-Foundation/ElegantRL 等
  • 初学者或研究者:
    • OpenAI Spinning Up(专为初学者打造, 同时支持 TensorFlow 1.x 和 PyTorch)
    • Baselines(Tensorflow 1.x)
    • Stable-Baselines3(SB3)(PyTorch【特别推荐这个,代码简单易懂】)
  • 金融领域:ElegantRL (也支持分布式训练)
  • 大规模工业化:Ray RLlibStable-Baselines3(SB3)

OpenAI Spinning Up

  • Spinning Up 是 OpenAI 推出的一个 RL 入门项目,为初学者打造;提供从基础到高级的 RL 教程,包含多个基线算法的实现,如 PPO、TRPO、DDPG 等,支持 OpenAI Gym 环境
  • Spinning Up 强调教育性,文档详细且易于理解,适用于学术研究中的基线算法对比

OpenAI Baselines

  • OpenAI Baselines 是 OpenAI 推出的 RL 库,提供多种经典 RL 算法的实现,包括 DQN、A2C、PPO、TRPO 等,支持 OpenAI Gym 环境
  • Baselines 适用于研究中的算法复现和性能对比(以 PPO 方法为例,Baselines给出了 atari,mujoco 环境的差异化示例,还提供 CNN 或 MLP的策略实现),是开发自定义 RL 算法的基线参考,但仅仅支持 Tensorflow 1.x,且不再有人维护
  • GitHub 仓库 : https://github.com/openai/baselines

Stable Baselines3(SB3)

  • Stable Baselines3(SB3)是一个基于 PyTroch 的开源 RL 库,是 Stable Baselines 的下一代版本,继承了前者的优势并进行了多项优化,目前广泛应用于学术研究、游戏 AI、机器人控制等领域
  • 社区相对前两个来说更加活跃,有人维护,偶尔会有更新
项目名称 核心功能 核心框架 特点 主要场景 维护状态 GitHub 仓库 官方文档
OpenAI Spinning Up RL 算法教学实现(PPO、TRPO、DDPG 等) TensorFlow 1.x/PyTorch 教育性强,文档详细 学术研究、RL 入门学习 维护中(20年后几乎不再更新) https://github.com/openai/spinningup https://spinningup.openai.com/
Stable-Baselines3 主流 RL 算法(PPO、A2C、DQN 等) PyTorch 稳定高效,文档完善 工程落地、需要稳定性的项目 活跃维护 https://github.com/DLR-RM/stable-baselines3 https://stable-baselines3.readthedocs.io/
OpenAI Baselines 经典 RL 算法(DQN、A2C、PPO 等) TensorFlow 1.x 代码清晰,支持 MPI 并行 算法复现、自定义算法开发 停止维护 https://github.com/openai/baselines -
Google Dopamine 深度强化学习算法(DQN、C51、Rainbow) TensorFlow 简洁快速,适合小规模实验 算法原型验证、教学 维护中 https://github.com/google/dopamine -
ElegantRL 连续控制算法(DDPG、TD3、SAC) PyTorch 金融场景优化,支持分布式训练 金融量化交易、大规模实验 维护中 https://github.com/AI4Finance-Foundation/ElegantRL https://elegantrl.readthedocs.io/
Ray RLlib 分布式与多智能体算法(PPO、IMPALA) PyTorch/TensorFlow 高性能,支持大规模并行(Ray框架)与 MARL 工业级应用、自动驾驶、机器人 活跃维护 https://github.com/ray-project/ray https://docs.ray.io/en/latest/rllib/index.html