专栏首页CDA数据分析师17种深度强化学习算法用Pytorch实现

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.git
cd Deep_RL_Implementations

conda create --name myenvname
y
conda 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

本文分享自微信公众号 - CDA数据分析师(cdacdacda)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 猫奴的自我修养,教你如何用机器学习识别猫的品种

    之前我进行过一个简单的机器学习实验,来判断图像是否为墨西哥卷饼。 使用相同的基于云的认知机器学习技术 Custom Vision,我想处理一个更复杂的场景。 如...

    CDA数据分析师
  • 非计算机专业如何转行AI,找到算法offer?

    目前,各行业都在尝试着用机器学习/深度学习来解决自身行业的需求。在这个过程中,最为稀缺的也是高质量人工智能人才。 这一年我们见证了不断有非计算机专业学生转行人工...

    CDA数据分析师
  • 14种机器学习常见算法分类汇总!

    机器学习无疑是当前数据分析领域的一个热点内容。很多人在平时的工作中都或多或少会用到机器学习的算法。这里总结一下常见的机器学习算法,以供您在工作和学习中参考。 机...

    CDA数据分析师
  • 17种深度强化学习算法用Pytorch实现

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

    代码医生工作室
  • IEEE--关于音频信号处理的机器学习

    IEEE Journal于近日发布 - Special Issue on Machine Learning for Audio Processing。

    用户6026865
  • LeCun推荐:最新PyTorch图神经网络库,速度快15倍(GitHub+论文)

    过去十年来,深度学习方法(例如卷积神经网络和递归神经网络)在许多领域取得了前所未有的成就,例如计算机视觉和语音识别。

    磐创AI
  • 资源 | 如何开启深度学习之旅?这三大类125篇论文为你导航(附资源下载)

    选自Github 作者:songrotek 机器之心编译 参与:晏奇、黄小天 如果你现在还是个深度学习的新手,那么你问的第一个问题可能是「我应该从哪篇文章开始...

    机器之心
  • 【每周CV论文推荐】 初学深度学习单张图像三维人脸重建需要读的文章

    欢迎来到《每周CV论文推荐》。在这个专栏里,还是本着有三AI一贯的原则,专注于让大家能够系统性完成学习,所以我们推荐的文章也必定是同一主题的。

    用户1508658
  • 10 款实用的jquery插件

    jquery 的流行造就了诸多令人称奇的插件,这里选出10款实用插件供大家参考使用。 本文翻译自国外技术博客,欢迎热心ITer参与我们的翻译工作,提供更多...

    用户1177380
  • 斯坦福教授用新算法做药物研发,只需少量训练数据 | 论文+代码

    李杉 李林 编译整理 量子位 报道 | 公众号 QbitAI 深度学习可以通过看脸认出不同的人,帮医生检查医疗影像识别病变,将语音转成文字……在各种领域,都有着...

    量子位

扫码关注云+社区

领取腾讯云代金券