17种深度强化学习算法用Pytorch实现

2019 年 9 月 16 日 新智元
17种深度强化学习算法用Pytorch实现



   新智元报道  

来源:github
编辑:肖琴
【新智元导读】深度强化学习已经在许多领域取得了瞩目的成就,并且仍是各大领域受热捧的方向之一。本文推荐一个用PyTorch实现了17种深度强化学习算法的教程和代码库,帮助大家在实践中理解深度RL算法。


深度强化学习已经在许多领域取得了瞩目的成就,并且仍是各大领域受热捧的方向之一。本文推荐一个包含了 17 种深度强化学习算法实现的 PyTorch 代码库。



已实现的算法包括:


  1. Deep Q Learning (DQN) (Mnih et al. 2013)

  2. DQN with Fixed Q Targets (Mnih et al. 2013)

  3. Double DQN (DDQN) (Hado van Hasselt et al. 2015)

  4. DDQN with Prioritised Experience Replay (Schaul et al. 2016)

  5. Dueling DDQN (Wang et al. 2016)

  6. REINFORCE (Williams et al. 1992)

  7. Deep Deterministic Policy Gradients (DDPG) (Lillicrap et al. 2016 )

  8. Twin Delayed Deep Deterministic Policy Gradients (TD3) (Fujimoto et al. 2018)

  9. Soft Actor-Critic (SAC & SAC-Discrete) (Haarnoja et al. 2018)

  10. Asynchronous Advantage Actor Critic (A3C) (Mnih et al. 2016)

  11. Syncrhonous Advantage Actor Critic (A2C)

  12. Proximal Policy Optimisation (PPO) (Schulman et al. 2017)

  13. DQN with Hindsight Experience Replay (DQN-HER) (Andrychowicz et al. 2018)

  14. DDPG with Hindsight Experience Replay (DDPG-HER) (Andrychowicz et al. 2018 )

  15. Hierarchical-DQN (h-DQN) (Kulkarni et al. 2016)

  16. Stochastic NNs for Hierarchical Reinforcement Learning (SNN-HRL) (Florensa et al. 2017)

  17. Diversity Is All You Need (DIAYN) (Eyensbach et al. 2018)


所有的实现都能够快速解决 Cart Pole (离散动作)、 Mountain Car (连续动作)、 Bit Flipping (动态目标的离散动作) 或 Fetch Reach (动态目标的连续动作) 等任务。本 repo 还会添加更多的分层 RL 算法。


已实现的环境:
  1. Bit Flipping 游戏 (Andrychowicz et al. 2018)

  2. Four Rooms 游戏 (Sutton et al. 1998)

  3. Long Corridor 游戏 (Kulkarni et al. 2016)

  4. Ant-{Maze, Push, Fall} (Nachum et al. 2018)


结果


1. Cart Pole 和 Mountain Car


下面展示了各种 RL 算法成功学习离散动作游戏 Cart Pole 或连续动作游戏 Mountain Car 的结果。使用 3 个随机种子运行算法的平均结果如下图所示,阴影区域表示正负 1 标准差。使用的超参数可以在 results/cart_pol .py results/Mountain_Car.py 文件中找到。



2. 事后经验重演 (HER) 实验


下面展示了 DQN 和 DDPG 在 Bit Flipping (14 bits) 和 Fetch Reach 环境中的表现,这些环境在论文 Hindsight Experience Replay 和 Multi-Goal Reinforcement Learning 中有详细描述。这些结果复现了论文中发现的结果,并展示了添加 HER 可以如何让一个 agent 解决它原本无法解决的问题。请注意,在每对 agents 中都使用了相同的超参数,因此它们之间的唯一区别是是否使用了 hindsight。



3. 分层强化学习实验


下图左边的结果显示了在 Long Corridor 环境中 DQN 和 Kulkarni 等人在 2016 年提出的 hierarchy -DQN 算法的性能。该环境要求 agent 在返回之前走到走廊的尽头,以便获得更大的奖励。这种延迟满足和状态的混叠使得它在某种程度上是 DQN 不可能学习的游戏,但是如果我们引入一个元控制器 (如 h-DQN) 来指导低层控制器如何行动,就能够取得更大的进展。这与论文中发现的结果一致。


下图右边的结果显示了 Florensa 等人 2017 年提出的 DDQN 算法和用于分层强化学习的随机神经网络 (SNN-HRL) 的性能。使用 DDQN 作为比较,因为 SSN-HRL 的实现使用了其中的 2 种 DDQN 算法。



用法


存储库的高级结构是:
├── agents                        ├── actor_critic_agents       ├── DQN_agents             ├── policy_gradient_agents    └── stochastic_policy_search_agents ├── environments   ├── results                 └── data_and_graphs        ├── tests├── utilities                 └── data structures


i) 观看智能体学习上述游戏


观看所有不同的智能体学习 Cart Pole,请遵循以下步骤:


git clone https://github.com/p-christ/Deep_RL_Implementations.gitcd Deep_RL_Implementations
conda create --name myenvnameyconda activate myenvname
pip3 install -r requirements.txt
python Results/Cart_Pole.py
对于其他游戏,将最后一行更改为结果文件夹中的其他文件就行。


ii) 训练智能体实现另一种游戏


Open AI gym 上的环境都是有效的,你所需要做的就是更改 config.environment 字段。


如果你创建了一个继承自 gym.Env 的单独类,那么还可以使用自己的自定义游戏。请参阅 Environments/Four_Rooms_Environment.py 自定义环境的示例,然后查看脚本 Results/Four_Rooms.py 了解如何让 agents 运行环境。

GitHub地址:
https://github.com/p-christ/Deep-Reinforcement-Learning-Algorithms-with-PyTorch


登录查看更多
21

相关内容

深度强化学习 (DRL) 是一种使用深度学习技术扩展传统强化学习方法的一种机器学习方法。 传统强化学习方法的主要任务是使得主体根据从环境中获得的奖赏能够学习到最大化奖赏的行为。然而,传统无模型强化学习方法需要使用函数逼近技术使得主体能够学习出值函数或者策略。在这种情况下,深度学习强大的函数逼近能力自然成为了替代人工指定特征的最好手段并为性能更好的端到端学习的实现提供了可能。
小贴士
相关资讯
PyTorch实现多种深度强化学习算法
专知
33+阅读 · 2019年1月15日
RL 真经
CreateAMind
4+阅读 · 2018年12月28日
OpenAI官方发布:强化学习中的关键论文
专知
10+阅读 · 2018年12月12日
OpenAI丨深度强化学习关键论文列表
中国人工智能学会
14+阅读 · 2018年11月10日
【OpenAI】深度强化学习关键论文列表
专知
9+阅读 · 2018年11月10日
【代码集合】深度强化学习Pytorch实现集锦
机器学习算法与Python学习
7+阅读 · 2018年10月23日
【深度强化学习教程】高质量PyTorch实现集锦
机器学习的Pytorch实现资源集合
专知
11+阅读 · 2018年9月1日
论文结果难复现?本文教你完美实现深度强化学习算法DQN
中国人工智能学会
4+阅读 · 2017年11月24日
相关VIP内容
专知会员服务
99+阅读 · 2020年2月1日
专知会员服务
45+阅读 · 2020年1月16日
一网打尽!100+深度学习模型TensorFlow与Pytorch代码实现集合
《动手学深度学习》(Dive into Deep Learning)PyTorch实现
专知会员服务
76+阅读 · 2019年12月31日
【强化学习】深度强化学习初学者指南
专知会员服务
102+阅读 · 2019年12月14日
强化学习最新教程,17页pdf
专知会员服务
69+阅读 · 2019年10月11日
MIT新书《强化学习与最优控制》
专知会员服务
142+阅读 · 2019年10月9日
专知会员服务
81+阅读 · 2019年8月30日
相关论文
Fréderic Godin,Anjishnu Kumar,Arpit Mittal
3+阅读 · 2019年2月26日
Rui Zhao,Volker Tresp
3+阅读 · 2018年10月8日
Hierarchical Deep Multiagent Reinforcement Learning
Hongyao Tang,Jianye Hao,Tangjie Lv,Yingfeng Chen,Zongzhang Zhang,Hangtian Jia,Chunxu Ren,Yan Zheng,Changjie Fan,Li Wang
6+阅读 · 2018年9月25日
Image Captioning based on Deep Reinforcement Learning
Haichao Shi,Peng Li,Bo Wang,Zhenyu Wang
7+阅读 · 2018年9月13日
Bipedal Walking Robot using Deep Deterministic Policy Gradient
Arun Kumar,Navneet Paul,S N Omkar
3+阅读 · 2018年7月16日
The Bottleneck Simulator: A Model-based Deep Reinforcement Learning Approach
Iulian Vlad Serban,Chinnadhurai Sankar,Michael Pieper,Joelle Pineau,Yoshua Bengio
9+阅读 · 2018年7月12日
CIRL: Controllable Imitative Reinforcement Learning for Vision-based Self-driving
Xiaodan Liang,Tairui Wang,Luona Yang,Eric Xing
4+阅读 · 2018年7月10日
Furu Wei
4+阅读 · 2018年5月10日
Zhiyuan Xu,Jian Tang,Jingsong Meng,Weiyi Zhang,Yanzhi Wang,Chi Harold Liu,Dejun Yang
7+阅读 · 2018年1月17日
Melrose Roderick,James MacGlashan,Stefanie Tellex
3+阅读 · 2017年11月20日
Top