Project Icon

DQN-Atari-Agents

丰富DQN算法库,实现模块化训练与高效并行

该项目提供了多种DQN算法的模块化训练方法,支持从原始像素或内存数据进行训练,并提高了训练速度。可选版本包括DDQN、Dueling DDQN等,可以通过组合Noisy layer、PER、多步目标等扩展为Rainbow算法。项目详细介绍了各类算法的使用方法及其在Atari和CartPole环境中的性能表现,适合用于研究和项目应用。

项目介绍:DQN-Atari-Agents

DQN-Atari-Agents 是一个用于模块化训练不同 DQN 算法的项目。这个项目包含了一些对基础 DQN 算法的扩展功能。所有版本可以由一个脚本进行训练,用户可以选择从原始像素或内存数据中进行训练。最近,该项目增添了多进程的能力,可以并行运行多个环境以加速训练过程。

支持的 DQN 版本

项目中包含以下 DQN 版本:

  • DDQN(双重深度 Q 网络)
  • Dueling DDQN(决斗双重深度 Q 网络)

这两个版本还可以通过添加一些增强功能来进一步提升性能,如 Noisy 层优先体验回放(Per)多步目标(Multistep Targets),以及训练为 分类版本(C51)。将这些全部结合起来会形成目前价值导向方法中的 state-of-the-art 算法:Rainbow

计划中的功能扩展

  • 并行环境以加速训练(基于实际时间) [已实现]
  • Munchausen RL [未实现]
  • DRQN(递归深度 Q 网络) [未实现]
  • Soft-DQN [未实现]
  • 好奇心探索,目前仅限于 DQN [已实现]

如何训练您的代理

依赖环境

训练和测试环境:

  • Python 3.6
  • PyTorch 1.4.0
  • Numpy 1.15.2
  • gym 0.10.11

要训练基础的 DDQN,只需运行命令 python run_atari_dqn.py。同时可以通过以下参数修改并训练您自己的 Atari 代理:

例如: python run_atari_dqn.py -env BreakoutNoFrameskip-v4 -agent dueling -u 1 -eps_frames 100000 -seed 42 -info Breakout_run1

其中参数包括:

  • agent: 指定要训练的 DQN 代理类型,默认是 DQN - 基准版。可选输入有:dqndqn+pernoisy_dqn 等。
  • env: Atari 环境的名称,默认是 PongNoFrameskip-v4。
  • frames: 要训练的帧数,默认是 500 万帧。
  • 其他参数还包括 seedbatch_sizelayer_size 等一系列可调参数,用于细化模型训练。

使用 Tensorboard 查看训练进度

运行命令 tensorboard --logdir=runs/ 可以查看训练过程中的数据。

Atari 游戏的性能表现

Pong 游戏

使用以下超参数进行训练:

  • batch_size: 32
  • seed: 1
  • layer_size: 512
  • frames: 300000
  • lr: 1e-4

CartPole 环境的收敛证明

尽管 Atari 算法的训练需要大量时间,但在 CartPole-v0 环境中可以快速证明收敛性。其中,Rainbow 方法表现优于其他两种方法(Dueling DQN 和 DDQN)。

并行环境

为了减少训练时间,项目实现了并行环境。以下图表显示了不同数量的工作线程对 CartPole-v0 和 LunarLander-v2 环境的训练加速效果。

帮助与问题反馈

开发者开放接受反馈、bug 的提交和改进建议,请随时联系他。

参考文献

在项目中引用了一些重要的论文,包括对 DQN、Dueling DQN、Noisy Layer、C51、PER 和 Rainbow 的介绍。作者鼓励大家在自己的项目或研究中使用这段代码。

作者

  • Sebastian Dittert

用户可以自由地在自己的项目中使用这段代码,若需引用,请参照以下信息:

@misc{DQN-Atari-Agents,
  author = {Dittert, Sebastian},
  title = {DQN-Atari-Agents:   Modularized PyTorch implementation of several DQN Agents, i.a. DDQN, Dueling DQN, Noisy DQN, C51, Rainbow and DRQN},
  year = {2020},
  publisher = {GitHub},
}
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号