深度强化学习课程
探索神经网络与强化学习的结合。 Python 和 PyTorch 中的算法和示例
您是否听说过 Deepmind 与 AlphaGo Zero 以及 OpenAI 在 Dota 2 中取得的惊人成绩?这都是关于深度神经网络和强化学习的。您想了解更多吗?
这是您最终学习深度强化学习并将其用于令人兴奋的新项目和应用程序的绝佳机会。
在这里您将找到对这些算法的深入介绍。其中你将学习q学习、深度q学习、PPO、演员评论家,并使用Python和PyTorch实现它们。
最终目标是使用这些通用技术并将其应用于各种重要的现实世界问题。黛米斯·哈萨比斯
该存储库包含:
讲座(及其他内容)主要来自 DeepMind 和 Berkley Youtube 频道。
在 PyTorch 中实现的算法(如 DQN、A2C 和 PPO)并在 OpenAI Gym:RoboSchool 和 Atari 上进行测试。
请继续关注并关注我#60DaysRLChallenge
现在我们还有一个Slack 频道。要获取邀请,请发送电子邮件至 [email protected]。另外,如果您有任何想法、建议或改进,请给我发电子邮件。
要学习深度学习、计算机视觉或自然语言处理,请查看我的1 年 ML 之旅
开始之前..先决条件
- Python 和 PyTorch 的基础水平
- 机器学习
- 深度学习基础知识(MLP、CNN 和 RNN)
小提示:我的新书已经出版了!
要更深入地学习强化学习和深度强化学习,请查看我的书《Python 强化学习算法》!
目录
- 强化学习的前景
- 实施 RL Cycle 和 OpenAI Gym
- 用动态规划解决问题
- Q 学习和 SARSA 应用
- 深度Q网络
- 学习随机和 DDPG 优化
- TRPO 和 PPO 实施
- DDPG 和 TD3 应用
- 基于模型的强化学习
- 使用 DAgger 算法进行模仿学习
- 了解黑盒优化算法
- 开发 ESBAS 算法
- 解决强化学习挑战的实际实施
索引 - 强化学习
- 第一周 -简介
- 第 2 周 -强化学习基础知识
- 第 3 周 -基于价值的算法 - DQN
- 第 4 周 -策略梯度算法 - REINFORCE 和 A2C
- 第 5 周 -高级策略梯度 - PPO
- 第 6 周 -进化策略和遗传算法 - ES
- 第 7 周 -基于模型的强化学习 - MB-MF
- 第 8 周 -高级概念和您选择的项目
- 过去 4 天 -回顾 + 分享
- 最好的资源
- 其他资源
第一周 - 简介
- 为什么强化学习如此重要的学习方法 - 一个简单的解释
- 简介和课程概述 - CS294,作者:Levine,伯克利
- 深度强化学习:Karpathy 的 Pixels 中的 Pong
其他资源
- 强化学习的“圣经”:第一章 - Sutton & Barto
- 很棒的介绍性论文:深度强化学习:概述
- 开始编码:从头开始:用 50 行 Python 实现 AI 平衡
第 2 周 - 强化学习基础: MDP、动态规划和无模型控制
那些不记得过去的人注定要重蹈覆辙——乔治·桑塔亚纳
本周,我们将学习强化学习的基本模块,从问题的定义开始,一直到用于表达政策或状态质量的函数的估计和优化。
讲座 - 理论
- 马尔可夫决策过程 - David Silver (DeepMind)
- 动态规划规划 - David Silver (DeepMind)
- 无模型预测 - David Silver (DeepMind)
- 无模型控制 - David Silver (DeepMind)
- Ɛ-贪婪策略迭代
- GLIE 蒙特卡罗搜索
- 非典
- 重要性抽样
本周项目 - Q-learning
Q-learning 应用于 FrozenLake - 作为练习,您可以使用 SARSA 解决游戏或自己实现 Q-learning。在前一种情况下,只需要进行很少的更改。
其他资源
- 强化学习的“圣经”:第 3 章和第 4 章 - Sutton 和 Barto
- 价值函数介绍 - DRL UC Berkley by Sergey Levine
第 3 周 - 基于价值的算法 - DQN
本周我们将学习更多高级概念并将深度神经网络应用于 Q 学习算法。
讲座 - 理论
- 价值函数近似 - David Silver (DeepMind)
- 高级 Q 学习算法 - Sergey Levine(加州大学伯克利分校)
- 重放缓冲区
- 双Q学习
- 连续动作(NAF、DDPG)
- 实用技巧
本周项目 - DQN 及其变体
DQN 和一些应用于 Pong 的变体- 本周的目标是开发 DQN 算法来玩 Atari 游戏。为了使它更有趣,我开发了 DQN 的三个扩展:双 Q 学习、多步学习、决斗网络和噪声网络。与它们一起玩,如果您有信心,您可以实施优先重放、决斗网络或分布式强化学习。要了解有关这些改进的更多信息,请阅读论文!
文件
必读
- 使用深度强化学习玩 Atari - 2013
- 通过深度强化学习进行人性化控制 - 2015
- Rainbow:结合深度强化学习的改进 - 2017
DQN 的扩展
- 使用双 Q 学习的深度强化学习 - 2015
- 优先体验重播 - 2015
- 深度强化学习的决斗网络架构 - 2016
- 用于探索的嘈杂网络 - 2017
- 分位数回归的分布强化学习 - 2017
其他资源
- 强化学习的“圣经”:第 5 章和第 6 章 - Sutton 和 Barto
- 企业中的深度强化学习:弥合游戏与工业之间的差距
第 4 周 - 策略梯度算法 - REINFORCE 和 A2C
第四周介绍策略梯度方法,一类直接优化策略的算法。此外,您还将了解 Actor-Critic 算法。这些算法结合了策略梯度(参与者)和价值函数(批评者)。
讲座 - 理论
- 策略梯度方法 - David Silver (DeepMind)
- 有限差分策略梯度
- 蒙特卡罗策略梯度
- 演员-评论家政策梯度
- 政策梯度介绍 - Sergey Levine(回顾,可选)
- 策略梯度(REINFORCE 和 Vanilla PG)
- 方差减少
- 演员评论家 - 谢尔盖·莱文(更深入)
- 演员评论家
- 折扣系数
- Actor-Critic算法设计(批处理模式或在线)
- 状态相关基线
本周项目 - Vanilla PG 和 A2C
Vanilla PG 和 A2C 应用于 CartPole - 本周的练习是实施策略梯度方法或更复杂的 actor-critic。在存储库中,您可以找到 PG 和 A2C 的实现版本。错误警报!注意 A2C 给了我奇怪的结果。如果您发现PG和A2C的实现很容易,您可以尝试使用异步版本的A2C(A3C)。
文件
- 函数逼近强化学习的策略梯度方法
- 深度强化学习的异步方法
其他资源
- 强化学习的“圣经”:第 9 章和第 10 章 - Sutton & Barto
- 直观强化学习:优势-行动者-批评者 (A2C) 简介
- 异步 Actor-Critic 代理 (A3C)
第 5 周 - 高级策略梯度 - PPO
本周介绍的是先进的政策梯度方法,可提高“普通”政策梯度方法的稳定性和收敛性。您将学习并实现 PPO,这是一种由 OpenAI 开发并在 OpenAI Five 中采用的 RL 算法。
讲座 - 理论
- 高级政策梯度 - Sergey Levine(加州大学伯克利分校)
- “普通”策略梯度方法的问题
- 政策绩效界限
- 单调改进理论
- 算法:NPO、TRPO、PPO
- 自然策略梯度、TRPO、PPO - John Schulman(伯基 DRL 训练营) -(回顾,可选)
- “普通”策略梯度方法的局限性
- 自然政策梯度
- 信任域策略优化,TRPO
- 近端策略优化,PPO
本周项目 - PPO
PPO 应用于 BipedalWalker - 本周,您必须实施 PPO 或 TRPO。我建议使用 PPO,因为它很简单(与 TRPO 相比)。在项目文件夹 Week5 中,您可以找到学习玩 BipedalWalker 的 PPO实现。此外,在该文件夹中,您可以找到有助于您开发项目的其他资源。玩得开心!
要了解有关 PPO 的更多信息,请阅读论文并观看 Arxiv Insights 的视频
文件
- 信托区域政策优化 - 2015
- 近端策略优化算法 - 2017
其他资源
- 更好地理解PPO和TRPO:(机器人)幸福的追求
- 深度强化学习的具体细节
- PPO 最佳实践:使用近端策略优化进行训练
- Arxiv Insights 对 PPO 算法的解释
第 6 周 - 进化策略和遗传算法 - ES
去年,进化策略(ES)和遗传算法(GA)已被证明可以取得与强化学习方法相当的结果。它们是无衍生的黑盒算法,需要比 RL 更多的数据来学习,但能够扩展到数千个 CPU。本周我们将研究这个黑盒算法。
讲座和文章 - 理论
- 进化策略
- ES 简介:进化策略可视化指南
- ES for RL:不断发展的稳定策略
- 无导数方法 - 讲座
- 进化策略(论文讨论)
- 遗传算法
本周项目 - ES
应用于 LunarLander 的进化策略- 本周该项目将实施 ES 或 GA。在Week6 文件夹中,您可以找到论文 Evolution Strategies as a Scalable Alternative to Reinforcement Learning 的基本实现,以解决 LunarLanderContinously 问题。您可以修改它以玩更困难的环境或添加您的想法。
文件
- 深度神经进化:遗传算法是训练深度神经网络进行强化学习的有竞争力的替代方案
- 进化策略作为强化学习的可扩展替代方案
其他资源
第 7 周 - 基于模型的强化学习 - MB-MF
到目前为止研究的算法是无模型的,这意味着它们只在给定状态下选择更好的动作。这些算法取得了非常好的性能,但需要大量的训练数据。相反,基于模型的算法可以学习环境并根据所学习的模型规划下一步行动。这些方法比无模型方法的样本效率更高,但总体性能最差。本周,您将学习这些方法背后的理论并实现最后的算法之一。
讲座 - 理论
- 基于模型的强化学习,David Silver (DeepMind)(简洁版)
- 基于模型的强化学习,Sergey Levine(加州大学伯克利分校)(深入版本)
- 从数据中学习动力系统
- 基于模型的强化学习概述
- 全球和本地模型
- 使用本地模型和信任区域学习
- 通过模仿最优控制器来学习策略
- 使用学习模型反向传播到策略中
- 引导策略搜索算法
- 使用 DAgger 模拟最优控制
- 高级模型学习和图像
本周项目 - MB-MF
MB-MF 应用于 RoboschoolAnt - 本周我选择实现本文中描述的基于模型的算法。您可以在这里找到我的实现。注意:我没有像论文中那样在 Mujoco 上实现,而是使用 RoboSchool,这是一个与 OpenAI Gym 集成的开源机器人模拟器。
文件
- 用于深度强化学习的想象力增强代理 - 2017
- 无监督辅助任务的强化学习 - 2016
- 用于基于模型的深度强化学习和无模型微调的神经网络动力学 - 2018
其他资源
- 强化学习的“圣经”:第 8 章 - Sutton 和 Barto
- 世界模特 - 特工可以在自己的梦中学习吗?
第 8 周 - 高级概念和您选择的项目
上周是关于高级强化学习概念和您选择的项目。
讲座 - 理论
- 谢尔盖·莱文(伯克利)
- 推理与控制之间的联系
- 逆向强化学习
- 探索(第 1 部分)
- 探索(第 2 部分)和迁移学习
- 多任务学习和迁移
- 元学习和并行性
- 高级模仿学习和开放问题
- 大卫·西尔弗(DeepMind)
最终项目
在这里您可以找到一些项目想法。
- Pommerman(多人)
- 人工智能假肢挑战赛(挑战)
- Word 模型(论文实现)
- 请求研究 OpenAI(研究)
- 复古大赛(迁移学习)
其他资源
- 阿尔法狗零式
- 纸
- DeepMind 博客文章:AlphaGo Zero:从头开始学习
- Arxiv Insights 视频:AlphaGo Zero 的工作原理 - Google DeepMind
- 开放人工智能五
- OpenAI 博客文章:OpenAI 5
- Arxiv Insights 视频:OpenAI Five:在 Dota II 中面对人类职业选手
过去 4 天 - 回顾 + 分享
恭喜您完成 60 天 RL 挑战!!如果您喜欢它并分享,请告诉我!
再见!
最好的资源
强化学习:简介 - Sutton 和 Barto。强化学习的“圣经”。在这里您可以找到第二版的 PDF 草稿。
深度强化学习实践 - 作者:Maxim Lapan
深度学习——伊恩·古德费洛
深度强化学习 - Levine 的加州大学伯克利分校课程,请在此处查看他们的网站。
强化学习课程 - 由 DeepMind 的 David Silver 教授。 AlphaGo 首席研究员 Silver 的精彩介绍性讲座。他们遵循 Sutton 和 Barto 所著的《强化学习》一书。
其他资源
很棒的强化学习。专门用于强化学习的精选资源列表
强化学习上的 GroundAI。强化学习论文
一杯咖啡☕
任何贡献都将受到高度赞赏!干杯!