本文主要介绍强化学习中的优质开源项目,包括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 RLlib 和 Stable-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 |