跳到内容

PyTorch实现了Advantage Actor Critic(A2C)、近端策略优化(PPO)、使用Kronecker因子近似(ACKTR)的深度强化学习的可扩展信任域方法和生成对抗性模仿学习(GAIL)。

许可证

ikostrikov/pytorch-a2c-ppo-acktr-gail公司

pytorch-a2c-ppo-acktr喷枪

更新(2021年4月12日)

PPO很棒,但软演员评论家可以更好地用于许多连续控制任务。请结账我的新RLjax中的存储库。

请使用本自述中的超参数。使用其他超参数可能无法工作(毕竟是RL)!

这是PyTorch的实现

  • Advantage Actor Critic(A2C),同步确定性版本A3C飞机
  • 近距离策略优化PPO公司
  • 基于Kronecker因子逼近的深度强化学习可扩展信任域方法确认
  • 生成性对抗性模仿学习印度天然气公司

另请参阅OpenAI帖子:A2C/确认PPO公司了解更多信息。

此实现受到以下OpenAI基线的启发A2C型,确认PPO公司它使用相同的超参数和模型,因为它们已经为Atari游戏进行了很好的调整。

如果您想在出版物中引用此存储库,请使用此bibtex:

@杂项{pytorchrl,author={科斯特里科夫,伊利亚},title={PyTorch强化学习算法的实现},年份={2018年},publisher={GitHub},日志={GitHub存储库},howpublished={\url{https://github.com/ikostrikov/pytorch-a2c-ppo-acktr-gail}},}

支持(和测试)的环境(通过OpenAI健身房)

我强烈推荐PyBullet作为MuJoCo的免费开源替代品,用于连续控制任务。

所有环境都使用完全相同的健身房界面进行操作。请参阅他们的文档以获取全面列表。

要使用DeepMind Control Suite环境,请设置标志--环境名称dm。<域名><任务名称>,其中域名称任务名称是域的名称(例如。料斗)以及该域中的任务(例如。)来自DeepMind Control Suite。参考其回购协议及其技术报告获取可用域和任务的完整列表。除了设置任务外,用于与环境交互的API与所有健身房环境的API完全相同,这要归功于dm_control2健身房.

要求

为了满足安装要求,请执行以下操作:

#PyTorch公司康达安装pytorch火炬-c soumith#其他要求pip安装-r要求.txt#健身房Atari康达安装-康达锻造体育馆-阿塔里

贡献

非常欢迎捐款。如果您知道如何改进此代码,请打开一个问题。如果要提交拉取请求,请先打开问题。另请参阅下面的待办事项列表。

我也在寻找志愿者在Atari和MuJoCo上进行所有实验(使用多个随机种子)。

免责声明

很难重现强化学习方法的结果。请参见“重要的深层强化学习”了解更多信息。我试图尽可能近距离地重现OpenAI的结果。然而,即使是TensorFlow和PyTorch库中的微小差异也可能导致性能上的主要差异。

TODO公司

  • 改进此README文件。重新排列图像。
  • 提高KFAC的绩效,更多信息请参见KFAC.py
  • 运行所有游戏和算法的评估

可视化

为了可视化结果,使用可视化.ipynb.

培训

阿塔里

A2C型

python main.py--环境名称"PongNoFrameskip-v4"

PPO公司

python main.py--环境名称"PongNoFrameskip-v4"--algo ppo--use-gae--lr 2.5e-4--clip-param 0.1--value-loss-coef 0.5--num-process 8--num-steps 128--num-mini-bactch 4--log-interval 1--use-linar-lr-decay--entropy-coef 0.01

确认

python main.py--环境名称"PongNoFrameskip-v4"--algo acktr--进程数32--步骤数20

MuJoCo公司

请始终尝试使用--使用-保护时间限制标志。它可以正确处理部分轨迹(请参见https://github.com/sfujim/TD3/blob/master/main.py#L123).

A2C型

python main.py--环境名称"收割机-v2"--num-env-steps 1000000

PPO公司

python main.py--环境名称"收割机-v2"--algo ppo--use-gae--log-interval 1--num-steps 2048--num-process 1--lr 3e-4--entropy-coef 0--value-loss-coef 0.5--ppo-epoch 10--num-mini-batch 32--gamma 0.99--gae-lambda 0.95--num-env-steps 1000000--use-linar lr-decay--use-proper-time-limits

确认

ACKTR要求针对MuJoCo进行一些修改。但目前,我希望尽可能保持代码的统一。因此,我将寻找更好的方法将其集成到代码库中。

享受

阿塔里

python enjoy.py--加载目录trained_models/a2c--env-name"PongNoFrameskip-v4"

MuJoCo公司

python enjoy.py--加载目录trained_models/ppo--env-name"收割机-v2"

结果

A2C型

突破NoFrameskip-v4

SeaquestNoFrameskip-v4

QbertNoFrameskip-v4版

波束覆盖器无帧skip-v4

PPO公司

无框架中断-v4

SeaquestNoFrameskip-v4请求

QbertNoFrameskip-v4版

波束覆盖器无帧skip-v4

确认

无框架中断-v4

SeaquestNoFrameskip-v4请求

QbertNoFrameskip-v4版

波束覆盖器无帧skip-v4

关于

PyTorch实现了Advantage Actor Critical(A2C)、Proximal Policy Optimization(PPO)、Scalable trust region method for deep reinforcement learning using Kronecker-factored approximation(ACKTR)和Generative Adversarial Immutation learning(GAIL)。

话题

资源

许可证

星星

观察者

叉子

发布

未发布版本

包装

未发布包