相信大家都经历过这样的过程:每次想使用某一个强化学习算法时,先在百度或者Github上搜索一通,找到各种各样的算法实现,下载下来后遇到各种包报错、代码太复杂、代码不稳定等问题。最终花上大半天的时间,才从n多种实现方案中选出一种差强人意的代码。整个过程十分痛苦...
因此,我对现有的一些重要强化学习算法进行了整理、实现。在实现过程中,我十分注重以下几个问题:
- 轻便:每个算法的实现都仅用23个 python脚本,让大家可以轻松上手,而不是先去啃代码。其中,main.py用于环境互动,算法.py(如DQN.py)用于封装算法,ultils.py用于放一些简单的辅助函数
- 鲁棒:在算法实现时,我已经对超参数进行了细调,保证每个算法在同一组超参数前提下,在各个环境上的表现大于等于原始论文。同时,算法的稳定性也纳入了调参范围之内
- 统一:在实现各算法时,我尽量保证整体框架的统一,让大家用一份代码后,也能对其他代码的使用方法有大致的了解
- 明确:各实现对算法的使用方法,代码的依赖包都有明确的声明。同时,我在实现时,尽量只选择一些常用的Python依赖包,如 numpy, pytorch, gym等
话不多说,上代码链接:https://github.com/XinJingHao/RL-Algorithms-by-Pytorch
链接中有仿真实验结果