openssl 添加自定义算法_GitHub:用PyTorch实现17种深度强化学习算法
【新智元导读】深度强化学习已经在许多领域取得了瞩目的成就,并且仍是各大领域受热捧的方向之一。本文推荐一个用 PyTorch 实现了 17 种深度强化学习算法的教程和代码库,帮助大家在实践中理解深度 RL 算法。
深度强化学习已经在许多领域取得了瞩目的成就,并且仍是各大领域受热捧的方向之一。本文推荐一个包含了 17 种深度强化学习算法实现的 PyTorch 代码库。
已实现的算法包括:
- Deep Q Learning (DQN) (Mnih et al. 2013)
- DQN with Fixed Q Targets (Mnih et al. 2013)
- Double DQN (DDQN) (Hado van Hasselt et al. 2015)
- DDQN with Prioritised Experience Replay (Schaul et al. 2016)
- Dueling DDQN (Wang et al. 2016)
- REINFORCE (Williams et al. 1992)
- Deep Deterministic Policy Gradients (DDPG) (Lillicrap et al. 2016 )
- Twin Delayed Deep Deterministic Policy Gradients (TD3) (Fujimoto et al. 2018)
- Soft Actor-Critic (SAC & SAC-Discrete) (Haarnoja et al. 2018)
- Asynchronous Advantage Actor Critic (A3C) (Mnih et al. 2016)
- Syncrhonous Advantage Actor Critic (A2C)
- Proximal Policy Optimisation (PPO) (Schulman et al. 2017)
- DQN with Hindsight Experience Replay (DQN-HER) (Andrychowicz et al. 2018)
- DDPG with Hindsight Experience Replay (DDPG-HER) (Andrychowicz et al. 2018 )
- Hierarchical-DQN (h-DQN) (Kulkarni et al. 2016)
- Stochastic NNs for Hierarchical Reinforcement Learning (SNN-HRL) (Florensa et al. 2017)
- Diversity Is All You Need (DIAYN) (Eyensbach et al. 2018)
所有的实现都能够快速解决Cart Pole(离散动作)、Mountain Car (连续动作)、Bit Flipping(动态目标的离散动作) 或Fetch Reach(动态目标的连续动作) 等任务。本 repo 还会添加更多的分层 RL 算法。
已实现的环境:
- Bit Flipping 游戏 (Andrychowicz et al. 2018)
- Four Rooms 游戏 (Sutton et al. 1998)
- Long Corridor 游戏 (Kulkarni et al. 2016)
- 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_Implementationsconda create --name myenvname
y
conda activate myenvnamepip3 install -r requirements.txtpython Results/Cart_Pole.py
对于其他游戏,将最后一行更改为结果文件夹中的其他文件就行。
ii) 训练智能体实现另一种游戏
Open AI gym 上的环境都是有效的,你所需要做的就是更改config.environment字段。
如果你创建了一个继承自 gym.Env 的单独类,那么还可以使用自己的自定义游戏。请参阅Environments/Four_Rooms_Environment.py自定义环境的示例,然后查看脚本Results/Four_Rooms.py了解如何让 agents 运行环境。
GitHub 地址:
p-christ/Deep-Reinforcement-Learning-Algorithms-with-PyTorchgithub.com
openssl 添加自定义算法_GitHub:用PyTorch实现17种深度强化学习算法相关推荐
- 17种深度强化学习算法用Pytorch实现(附链接)
来源:新智元 本文约1300字,建议阅读5分钟. 本文为你介绍一个用PyTorch实现了17种深度强化学习算法的教程和代码库,帮助大家在实践中理解深度RL算法. [ 导读 ]深度强化学习已经在许多领域 ...
- 【重磅】Tensorflow2.0实现29种深度强化学习算法大汇总
点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要3分钟 Follow小博主,每天更新前沿干货 来源:深度强化学习实验室 作者:王健树 [导读]今天给大家推荐一个超赞的强化学习项目资料,该项目 ...
- 两种深度强化学习算法在网络调度上的应用与优化(DQN A3C)
首先给出论文地址和代码, Reinforcement Learning Based Scheduling Algorithm for Optimizing Age of Information in ...
- 【招聘推荐】启元世界招聘深度强化学习算法工程师
深度强化学习实验室 官网:http://www.neurondance.com/ 论坛:http://deeprl.neurondance.com/ 编辑.排版:DeepRL 深度强化学习算法工程师 ...
- 深度强化学习算法调参
深度强化学习调参技巧:以D3QN.TD3.PPO.SAC算法为例 这个参考链接. 如何选择深度强化学习算法? 参考链接. 影响PPO算法性能的10个关键技巧(附PPO算法简洁Pytorch实现) 主要 ...
- 近端策略优化深度强化学习算法
PPO:Proximal Policy Optimization Algorithms,其优化的核心目标是: ppo paper 策略梯度 以下是马尔可夫决策过程MDP的相关基础以及强化学习的优化目标 ...
- 【假期学习计划】深度强化学习算法与应用培训班
深度强化学习应用与实战培训班内容 一.强化学习概述 二.马尔科夫决策过程 1.马尔可夫性 2.马尔可夫决策过程 3.策略与价值 4.最优化原理 5.MDPs扩展 三.动态规划 1.动态规划 2.价值迭 ...
- 基于值的深度强化学习算法
目录 DQN2013 -- Playing Atari with Deep Reinforcement Learning DQN2015 -- Human-level control through ...
- 学界 | 量化深度强化学习算法的泛化能力
来源:AI 科技评论 OpenAI 近期发布了一个新的训练环境 CoinRun,它提供了一个度量智能体将其学习经验活学活用到新情况的能力指标,而且还可以解决一项长期存在于强化学习中的疑难问题--即使是 ...
最新文章
- python SSL error: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590) 解决方法
- MVC layout 命名空间引用问题
- 表的基本查询(数据库篇)
- 工业以太网交换机的安全问题详解
- mongo-express 远程代码执行漏洞(CVE-2019-10758)
- Pandas 文本数据方法 cat()
- C++复习(二)——绘制余弦函数图像
- Webmin远程命令执行漏洞(CVE-2019-15107 )复现
- JavaScript将小写金额转换成大写
- 运行java -version出错 Error: could not open `\lib\amd64\jvm.cfg‘
- 【可靠性评估】电力系统可靠性评估matlab仿真
- 光环JAVA_【- Light 计划 -】新建了一台Linux云服务器我该干嘛
- 《FireShot》一键滚动截屏整个网页
- 实训周实验(eNSP安装+简单使用+实验项目)总结
- 《无尽之刃》中采用的提高效率的美术制作技巧
- SQL Sever 远程计算机拒绝网络连接,错误:1225 具体解决步骤。
- 旅行商问题的蚁群算法
- 商汤科技视觉定位组招收实习生
- 借用立创商城在AD中建立元器件原理图库及封装库
- 试用 Code With Me 果然很牛!
热门文章
- JavaScript判断浏览器类型及版本(新增谷歌的Chrome)
- java中Mark接口_JVM源码分析之Java对象头实现
- dbscan论文_论文分享 :Linkage Based Face Clustering via GCN
- php正则替换模板变量,php正则替换变量指定字符的方法
- java tree json,基于jstree使用JSON数据组装成树
- java与c语言工作量对比比例,对比平台-- C ++与Java之间的差异
- swift 过滤字符串_使用Swift提取字符串中的最后一个单词
- USACO Training Section 1.3混合牛奶 Mixing Milk
- 疯子的算法总结(六) 简单排序总 选择排序+插入排序+比较排序+冒泡排序
- C语言中如何使用宏连接多个字符串(#和##的用法)