项目介绍:Pytorch-RL
Pytorch-rl 是一个实现深度强化学习算法的开源项目,项目采用了 Pytorch 框架。Pytorch-rl 特别注重于连续动作空间的算法,因此在处理涉及连续动作的任务时,能够高效地在 CPU 或 GPU 上进行训练。此外,pytorch-rl 直接兼容 OpenAI Gym,这让算法的评估和修改变得非常简单。同时,用户可以根据自己的需求扩展此项目。
安装指南
Pytorch-rl 可以通过 Pypi 安装,推荐使用以下命令进行安装:
pip install pytorch-policy
依赖项
为了成功运行 pytorch-rl,需要以下依赖项:
- Pytorch
- Gym (OpenAI)
- mujoco-py(用于物理仿真和 Gym 中的机器人环境)
- Pybullet(即将支持)
- MPI(仅支持 mpi backend 下的 Pytorch 安装)
- Tensorboardx
支持的强化学习算法
pytorch-rl 支持多种强化学习算法,以下列出了一些主要算法:
- DQN(配合双 Q 学习)
- DDPG
- DDPG与HER(用于OpenAI Fetch环境)
- 层次化强化学习
- 优先经验回放 + DDPG
- DDPG 与优先后见经验回放(研究中)
- Neural Map 与 A3C(即将支持)
- Rainbow DQN(即将支持)
- PPO
- 自注意力目标替换的 HER(研究中)
- A3C(即将支持)
- ACER(即将支持)
- DARLA
- TDM
- 世界模型
- 软演员评论家算法
- 赋能驱动探索
支持的环境
此项目支持多种强化学习环境,其中包括:
- Breakout
- Pong(即将支持)
- 手部操作机器人任务
- Fetch-Reach 机器人任务
- 手部到达机器人任务
- 块操作机器人任务
- Montezuma's Revenge(当前研究)
- Pitfall
- Gravitar
- CarRacing
- Super Mario Bros(须安装 gym-retro)
- OpenSim 人工义肢挑战
环境建模
Pytorch-rl 项目使用了多种 GAN 训练技巧,以解决生成器和判别器训练不稳定的问题。尽管如此,训练 GAN 到收敛仍然非常困难。不过,采用 Spectral Normalization 技术后,infogan 成功收敛。在图像到图像转换任务和一般 VAE 训练过程中,使用 Skip Connection 表现出色。
一些包含的建模技术有:
- beta-VAE
- InfoGAN
- CVAE-GAN
- 流生成模型(研究中)
- SAGAN
- 顺序关注、推理、重复
- 好奇心驱动探索
- 参数空间噪声用于探索
- 噪声网络
参考文献
在开发 pytorch-rl 的过程中,参考了如下主要文献,涵盖了强化学习和生成模型等多个领域的重要研究成果:
- Playing Atari with Deep Reinforcement Learning, Mnih et al., 2013
- Human-level control through deep reinforcement learning, Mnih et al., 2015
- 深度强化学习与双 Q 学习, van Hasselt et al., 2015
- 深度强化学习进行连续控制, Lillicrap et al., 2015
- CVAE-GAN: 通过不对称训练实现精细图像生成, Bao et al., 2017
- beta-VAE: 采用约束变分框架学习基础视觉概念, Higgins et al., 2017
- 后见经验回放, Andrychowicz et al., 2017
- InfoGAN: 通过信息最大化生成对抗性网络实现可解释的表示学习, Chen et al., 2016
- 世界模型, Ha et al., 2018
- 生成对抗网络的谱归一化, Miyato et al., 2018
- 自注意力生成对抗网络, Zhang et al., 2018
- 自我监督预测的好奇心驱动探索, Pathak et al., 2017
- 软演员评论家:使用随机演员的离策略最大熵深度强化学习, Haarnoja et al., 2018
- 用于探索的参数空间噪声, Plappert et al., 2018
- 用于探索的噪声网络, Fortunato et al., 2018
- 近端策略优化算法, Schulman et al., 2017
- 无监督实时控制通过变分赋能, Karl et al., 2017
- 相互信息神经估计, Belghazi et al., 2018
- 通过相互信息估计进行赋能驱动探索, Kumar et al., 2018
Pytorch-rl 项目为深度强化学习领域的研究和应用提供了强大的工具,便于开发者在各种复杂环境中测试和验证算法的性能。