项目介绍:GenRL
GenRL 是一个基于 PyTorch 的强化学习库,其核心理念是实现可复现、通用性强的算法。通过方便易用的工具和模块,GenRL 力图提高强化学习在研究和应用中的普及性。当前版本为 v0.0.2,在版本更新中可能会有较大更动。
核心特点
- PyTorch 优先:该库采用模块化结构,具备良好的可扩展性和惯用的 Python 编写方式。
- 教程与示例:提供超过 20 个从基本强化学习到最先进深度强化学习算法的教程,并附有详细解释。
- 统一的训练与日志类:实现代码复用及高层次用户界面。
- 现成的算法实现:内置了多种流行的强化学习算法,大大缩短实现时间。
- 快速基准测试:支持自动化的超参数调优及环境实现等功能。
通过这些特性,GenRL 希望最终能够支持以少于 100 行代码实现任何新算法。
安装方法
GenRL 兼容 Python 3.6 或更高版本,并依赖于 pytorch
和 openai-gym
。使用 pip 工具可以轻松完成安装:
$ pip install genrl
为了获取最新版本,使用以下命令升级:
$ pip install -U genrl
想要安装最新但未发布的版本(即从源代码安装),可以执行:
$ git clone https://github.com/SforAiDl/genrl.git
$ cd genrl
$ python setup.py install
使用示例
以下是如何从头开始训练一个在 Pendulum-v0
环境中使用 Soft Actor-Critic 模型的示例,并在 tensorboard 上记录奖励:
import gym
from genrl.agents import SAC
from genrl.trainers import OffPolicyTrainer
from genrl.environments import VectorEnv
env = VectorEnv("Pendulum-v0")
agent = SAC('mlp', env)
trainer = OffPolicyTrainer(agent, env, log_mode=['stdout', 'tensorboard'])
trainer.train()
以下是在 FrozenLake-v0
环境中训练一个 Tabular Dyna-Q 模型的示例,并绘制奖励:
import gym
from genrl.agents import QLearning
from genrl.trainers import ClassicalTrainer
env = gym.make("FrozenLake-v0")
agent = QLearning(env)
trainer = ClassicalTrainer(agent, env, mode="dyna", model="tabular", n_episodes=10000)
episode_rewards = trainer.train()
trainer.plot(episode_rewards)
教程
- 多臂赌博机
- 上置信界
- 汤普森抽样
- 贝叶斯
- Softmax 动作选择
- 上下文赌博机
- 线性后验推断
- 变分推断
- Bootstrap
- 参数噪声抽样
- 深度强化学习背景
- 原始策略梯度
- 优势演员评论家
- 近端策略优化
算法分类
深度 RL
- DQN(深度 Q 网络)
- DQN
- 双重 DQN
- 双优 DQN
- 噪声 DQN
- 分类 DQN
- VPG(原始策略梯度)
- A2C(优势演员评论家)
- PPO(近端策略优化)
- DDPG(深度确定性策略梯度)
- TD3(双延迟 DDPG)
- SAC(软演员评论家)
经典 RL
- SARSA
- Q 学习
赌场式 RL
- 多臂赌博机
- 上下文赌博机
- 深度上下文赌博机
相关项目
GenRL 与诸如 Gym、Ray、OpenAI Baselines 和 Stable Baselines 3 等项目有相关性,并受到它们的影响与启发。