训练简单小游戏的强化学习工具箱

发布时间:2018-09-17
技术:Python3.6 tensorflow-gpu

概述

无论是深度学习还是强化学习,超参数的选择都是决定模型表现至关重要的因素,但是模型涉及到的超参数数量往往较多,而且目前还缺乏系统科学的超参数调节方法。另外在强化学习中,机制例如激励机制的设置对于最后学习的效果也是极其关键的。例如,当容错率过低的时候,算法由于对状态空间的学习不足,最终表现往往不佳;激励机制如果设置过于复杂,游戏AI有可能会因为神经网络本身的高复杂性而出现“颤抖”现象。因此算法设计观察多种参数组合和激励机制的表现,因此统一调参和机制设计过程有助于减少开发时间。   尽管如今支持深度学习的模块有很多,例如tensorflow, keras, pytorch等,但是一方面,复杂的数学理论和编程实现会成为大众了解和接触强化学习该前沿领域的门槛。另一方面,这些模块更加侧重于支持深度学习,而缺乏对强化学习尤其是在游戏AI方面的特有支持,例如尽管我们可以通过tensorboard可视化网络参数学习过程,但是却没有成型的工具来便捷展示游戏AI的训练分数。同时项目的开发往往需要多位开发者共同协作,但是一直缺乏相应的共享工具。另外在实际使用过程中我们也发现,由于训练过程过长,暂停训练并实现重新加载成为开发者迫切需要的功能,但是目前没有统一的平台来支持。最后,强化学习需要构建学习池来储存已经产生的结果用于之后的学习,一旦退出训练过程,保存在内存中的学习池会全部清空,下一次即便加载模型继续学习,也会因为学习池“冷启动”造成前期学习效果不佳,并造成时间浪费。   因此设计出了深度强化学习工具箱,在实现了DeepMind公司提出的深度强化学习算法,并且编写出两款简单小游戏用于作为算法测试环境后,我们最终编写出一个统一的可视化窗口来整合算法内核、游戏以及其他开发支持功能,包括用于记录游戏AI在训练过程中每一局的表现并通过服务器实时更新,便于其他开发者在自己设备上查看结果;实现训练项目化,即将每一次训练视为一次项目,如需暂停训练,工具箱可以自动保存此次训练的参数设置、测试游戏、训练状态等,便于开发者下一次重新加载项目文件继续训练过程;统一化参数调节等功能,并提供统一框架,开发者只需要按照命名要求将自己的游戏放入并进行相应的路径设置,工具箱可以自动识别并学习新游戏。希望能够为其他学生接触和学习强化学习提供便利。   因为我们自己水平有限,发布在Demo大师上不是为了赚钱,而且希望和大家一起交流提升。项目包括深度强化学习、pygame、PyQt5、数据库、多线程多进程以及简单服务器等的使用,涵盖的范围比较广,对于python初学者应该能有一定的帮助作用。我们的项目地址为https://github.com/qq303067814/DQLearning-Toolbox 。项目的完整代码可以在github上查看,此处只展示较为关键的部分。希望大家多多star~

详细

本实例支付的费用只是购买源码的费用,如有疑问欢迎在文末留言交流,如需作者在线代码指导、定制等,在作者开启付费服务后,可以点击“购买服务”进行实时联系,请知悉,谢谢
手机上随时阅读、收藏该文章 ?请扫下方二维码