Reinforcement-Learning
Reinforcement-Learning 是一个专为希望在 60 天内系统掌握深度强化学习(Deep RL)的开发者与研究爱好者打造的开源教程项目。它巧妙结合了神经网络与强化学习理论,旨在帮助用户理解并复现如 AlphaGo Zero 和 OpenAI Dota 2 等前沿成果背后的核心技术。
该项目主要解决了初学者在面对复杂强化学习算法时“理论难懂、代码难写”的痛点。通过结构化的周计划课程,它引导用户从基础的 Q-learning 入手,逐步进阶到深度 Q 网络(DQN)、A2C、PPO 等高级策略梯度算法。所有示例均使用 Python 和 PyTorch 编写,并在 OpenAI Gym 的 RoboSchool 及 Atari 环境中进行了实战测试,确保理论与实践紧密结合。
资源内容精选自 DeepMind 和伯克利大学的公开讲座,不仅提供了清晰的算法实现,还配套了详细的学习路径索引。此外,作者还出版了相关专著以供深入研读。无论是具备一定 Python 和深度学习基础的工程师,还是希望将通用智能技术应用于现实问题的研究人员,都能在此找到宝贵的学习素材。加入该项目的学习挑战,你将获得一套完整的技术栈,从而自信地开启自己的智能体开发之旅。
使用场景
某自动驾驶初创公司的算法工程师正致力于训练一个能在复杂城市路口自主决策的智能驾驶代理,以应对多变的交通流和突发状况。
没有 Reinforcement-Learning 时
- 规则编写陷入死胡同:工程师试图用硬编码规则(if-else)处理所有路况,但面对加塞、鬼探头等长尾场景,规则库变得臃肿且难以维护,系统极易崩溃。
- 缺乏连续决策能力:传统的监督学习仅能模仿历史数据,无法让车辆在未见过的动态环境中进行多步推理和长期回报优化,导致车辆在路口犹豫不决。
- 试错成本极高:在真实道路上测试未成熟的策略风险巨大,而现有的仿真环境缺乏高效的自学习机制,人工调整参数如同大海捞针,研发周期被无限拉长。
- 理论落地门槛高:团队虽知晓 PPO、DQN 等前沿算法,但缺乏从 DeepMind 或伯克利课程到 PyTorch 代码实现的系统性桥梁,复现顶级论文效果遥遥无期。
使用 Reinforcement-Learning 后
- 算法快速复现与验证:利用工具中提供的 DQN、PPO 及 Actor-Critic 等成熟 PyTorch 实现,工程师直接在 OpenAI Gym 仿真环境中部署了基于深度神经网络的决策模型,无需从零造轮子。
- 实现端到端自适应学习:智能体通过 60 天挑战式的系统训练,学会了在动态博弈中平衡安全与效率,能够自主处理从未见过的复杂交互场景,不再依赖僵硬的规则。
- 低成本高频迭代:借助 RoboSchool 和 Atari 等测试基准,团队在虚拟环境中完成了数百万次的试错训练,将原本需要数月实车测试的验证过程压缩至数天。
- 理论与实践无缝衔接:结合配套的深度讲解视频与代码示例,团队成员迅速掌握了从马尔可夫决策过程到黑盒优化的核心逻辑,显著提升了算法调优效率。
Reinforcement-Learning 将原本依靠人工经验堆砌的驾驶规则,转化为具备自我进化能力的智能决策系统,大幅降低了高阶自动驾驶算法的研发门槛与时间成本。
运行环境要求
- 未说明
未说明 (项目基于 PyTorch 并在 OpenAI Gym/Atari 上测试,通常建议使用支持 CUDA 的 NVIDIA GPU 以加速训练,但 README 未明确具体型号或显存要求)
未说明

快速开始

深度强化学习课程
探索神经网络与强化学习的结合。Python & PyTorch 中的算法与示例
你是否听说过 DeepMind 用 AlphaGo Zero 以及 OpenAI 在 Dota 2 中 取得的惊人成果?这一切都离不开深度神经网络和强化学习。你想深入了解它们吗?
这是一个绝佳的机会,让你真正掌握深度强化学习,并将其应用于各种新颖而令人兴奋的项目和应用中。
在这里,你将找到对这些算法的深入介绍。其中包括 Q 学习、深度 Q 学习、PPO、Actor-Critic 等,并使用 Python 和 PyTorch 实现它们。
最终目标是利用这些通用技术,将其应用于各类重要的现实世界问题。 德米斯·哈萨比斯
本仓库包含:
主要来自 DeepMind 和 Berkley YouTube 频道的讲座(及其他内容)。
在 PyTorch 中实现的算法(如 DQN、A2C 和 PPO),并在 OpenAI Gym 的 RoboSchool 和 Atari 游戏上进行测试。
请持续关注并关注我: 和
#60DaysRLChallenge
现在我们还有一个 Slack 频道。如需邀请,请发送邮件至 andrea.lonza@gmail.com。如果你有任何想法、建议或改进意见,也欢迎随时联系我。
若想学习深度学习、计算机视觉或自然语言处理,可以查看我的 1-Year-ML-Journey
开始之前.. 先决条件
- 基础级别的 Python 和 PyTorch
- 机器学习
- 深度学习基础知识(MLP、CNN 和 RNN)
快速提醒:我的新书已出版!
若想更深入地学习强化学习和深度强化学习,不妨看看我的书 Reinforcement Learning Algorithms with Python!!
目录
- 强化学习概览
- 实现 RL 循环及 OpenAI Gym
- 使用动态规划解决问题
- Q 学习与 SARSA 的应用
- 深度 Q 网络
- 学习随机优化与 DDPG
- TRPO 和 PPO 的实现
- DDPG 和 TD3 的应用
- 基于模型的 RL
- 使用 DAgger 算法进行模仿学习
- 理解黑盒优化算法
- 开发 ESBAS 算法
- 解决 RL 挑战的实际应用
索引 - 强化学习
- 第 1 周 - 简介
- 第 2 周 - RL 基础
- 第 3 周 - 基于价值的算法 - DQN
- 第 4 周 - 策略梯度算法 - REINFORCE & A2C
- 第 5 周 - 高级策略梯度 - PPO
- 第 6 周 - 进化策略与遗传算法 - ES
- 第 7 周 - 基于模型的强化学习 - MB-MF
- 第 8 周 - 进阶概念与自选项目
- 最后 4 天 - 复习 + 分享
- 最佳资源
- 附加资源
第 1 周 - 简介
- 为什么强化学习是一种如此重要的学习方法 - 简单解释
- 简介及课程概述 - CS294 by Levine, Berkley
- 深度强化学习:从像素控制乒乓球 by Karpathy
其他资源
- :books: 强化学习“圣经”:第 1 章 - Sutton & Barto
- 优秀的入门论文:深度强化学习综述
- 开始编码:从零开始:用 50 行 Python 实现 AI 平衡动作
第 2 周 - RL 基础:MDP、动态规划和无模型控制
不记得过去的人注定要重蹈覆辙 - 乔治·桑塔亚纳
本周,我们将学习强化学习的基本组成部分,从问题的定义开始,一直到用于评估策略或状态质量的函数的估计和优化。
讲座 - 理论 
- 马尔可夫决策过程 - 大卫·西尔弗(DeepMind)
- 马尔可夫过程
- 马尔可夫决策过程
- 基于动态规划的规划 - 大卫·西尔弗(DeepMind)
- 策略迭代
- 值迭代
- 无模型预测 - 大卫·西尔弗(DeepMind)
- 蒙特卡洛学习
- 时间差分学习
- TD(λ)
- 无模型控制 - 大卫·西尔弗(DeepMind)
- ε-贪婪策略迭代
- GLIE蒙特卡洛搜索
- SARSA
- 重要性采样
本周项目 - Q-learning 
应用于FrozenLake的Q-learning - 作为练习,你可以使用SARSA来解决这个游戏,或者自己实现Q-learning。在前一种情况下,只需要进行少量修改。
其他资源
- :books: 强化学习“圣经”:第3章和第4章 - 萨顿与巴托
- :tv: 价值函数简介 - 加州大学伯克利分校深度强化学习课程,谢尔盖·列文主讲
第3周 - 基于值的算法 - DQN
本周我们将学习更高级的概念,并将深度神经网络应用于Q-learning算法。
讲座 - 理论 
- 价值函数近似 - 大卫·西尔弗(DeepMind)
- 可微函数近似器
- 增量式方法
- 批量式方法(DQN)
- 高级Q-learning算法 - 谢尔盖·列文(加州大学伯克利分校)
- 经验回放缓冲区
- 双重Q-learning
- 连续动作(NAF、DDPG)
- 实用技巧
本周项目 - DQN及其变体 
应用于Pong的DQN及其一些变体 - 本周的目标是开发一个DQN算法来玩Atari游戏。为了让它更有趣,我开发了DQN的三种扩展:双重Q-learning、多步学习、斗士网络和噪声网络。大家可以尝试这些改进,如果你有信心,还可以实现优先级经验回放、斗士网络或分布强化学习。要了解更多关于这些改进的信息,请阅读相关论文!
论文
必读
- 使用深度强化学习玩Atari游戏 - 2013年
- 通过深度强化学习达到人类水平的控制 - 2015年
- 彩虹:结合深度强化学习中的多项改进 - 2017年
DQN的扩展
- 深度强化学习中的双重Q-learning - 2015年
- 优先级经验回放 - 2015年
- 用于深度强化学习的斗士网络架构 - 2016年
- 用于探索的噪声网络 - 2017年
- 基于分位数回归的分布强化学习 - 2017年
其他资源
- :books: 强化学习“圣经”:第5章和第6章 - 萨顿与巴托
- :tv: 企业中的深度强化学习:弥合游戏与工业之间的鸿沟
第4周 - 策略梯度算法 - REINFORCE & A2C
第4周将介绍策略梯度方法,这是一类直接优化策略的算法。此外,你还将学习演员-评论家算法。这些算法结合了策略梯度(演员)和价值函数(评论家)。
讲座 - 理论 
- 策略梯度方法 - 大卫·西尔弗(DeepMind)
- 有限差分策略梯度
- 蒙特卡洛策略梯度
- 演员-评论家策略梯度
- 策略梯度简介 - 谢尔盖·列文(RECAP,可选)
- 策略梯度(REINFORCE和普通策略梯度)
- 方差减小
- 演员-评论家 - 谢尔盖·列文(更深入)
- 演员-评论家
- 折现因子
- 演员-评论家算法设计(批处理模式或在线模式)
- 与状态相关的基线
本周项目 - 普通策略梯度和A2C 
应用于CartPole的普通策略梯度和A2C - 本周的练习是实现一种策略梯度方法,或者更复杂的演员-评论家算法。在仓库中你可以找到策略梯度和A2C的实现版本。注意!A2C给我返回了一个奇怪的结果。 如果你觉得实现策略梯度和A2C很简单,可以尝试一下[A3C的异步版本](https://arxiv.org/pdf/1602.01783.pdf)。
论文
其他资源
- :books: 强化学习“圣经”:第9章和第10章 - 萨顿 & 巴托
- :books: 直观的强化学习:优势-演员-评论家(A2C)简介
- :books: 异步演员-评论家智能体(A3C)
第5周 - 高级策略梯度 - PPO
本周将介绍高级策略梯度方法,这些方法能够提高“普通”策略梯度方法的稳定性和收敛性。你将学习并实现PPO,这是一种由OpenAI开发并在OpenAI Five中采用的强化学习算法。
讲座 - 理论 
- 高级策略梯度 - 谢尔盖·列维纳(UC伯克利)
- “普通”策略梯度方法的问题
- 策略性能边界
- 单调改进理论
- 算法:NPO、TRPO、PPO
- 自然策略梯度、TRPO、PPO - 约翰·舒尔曼(伯克利DRL训练营) - (回顾,可选)
- “普通”策略梯度方法的局限性
- 自然策略梯度
- 信任域策略优化,TRPO
- 近端策略优化,PPO
本周项目 - PPO 
应用于BipedalWalker的PPO - 本周你需要实现PPO或TRPO。鉴于PPO相比TRPO更为简单,我建议选择PPO。在Week5项目文件夹中,你可以找到一个学习玩BipedalWalker的PPO实现。此外,该文件夹中还有其他资源,可以帮助你完成项目。祝你玩得开心!
要深入了解PPO,请阅读论文并观看Arxiv Insights的视频。
论文
其他资源
- :books: 为了更好地理解PPO和TRPO:追求(机器人)幸福
- :tv: 深度强化学习的要点
- :books: PPO最佳实践:使用近端策略优化进行训练
- :tv: Arxiv Insights对PPO算法的解释
第6周 - 进化策略与遗传算法 - ES
在过去一年里,进化策略(ES)和遗传算法(GA)已被证明能够达到与强化学习方法相当的效果。它们是无需导数的黑箱算法,虽然需要比强化学习更多的数据来学习,但能够在数千个CPU上扩展。本周我们将探讨这些黑箱算法。
讲座与文章 - 理论 
本周项目 - ES 
应用于LunarLander的进化策略 - 本周的项目是实现一个ES或GA。 在Week6文件夹中,你可以找到一篇论文进化策略作为强化学习的可扩展替代方案的基本实现,用于解决LunarLanderContinuous问题。你可以对其进行修改,以应对更复杂的环境,或者加入自己的想法。
论文
其他资源
- :books: 进化优化算法 - 丹·西蒙
第7周 - 基于模型的强化学习 - MB-MF
到目前为止所研究的算法都是无模型的,也就是说,它们只是根据当前状态选择最优动作。这些算法虽然性能很好,但需要大量的训练数据。而基于模型的算法则会学习环境,并根据所学模型规划下一步行动。这类方法比无模型方法更节省样本,但总体表现通常较差。本周你将学习这些方法背后的理论,并实现其中一种最新的算法。
讲座 - 理论 
- 基于模型的强化学习,戴维·西尔弗(DeepMind)(精简版)
- 整合学习与规划
- 基于模型的强化学习概述
- 集成架构
- 基于模拟的搜索
- 整合学习与规划
- 基于模型的强化学习,谢尔盖·列文(UC伯克利)(深入版)
- 从数据中学习动力学系统
- 基于模型的强化学习概述
- 全局模型与局部模型
- 使用局部模型和信任区域进行学习
- 通过模仿最优控制器来学习策略
- 利用已学习的模型对策略进行反向传播
- 引导式策略搜索算法
- 使用DAgger模仿最优控制
- 高级模型学习与图像
- 隐空间中的模型
- 直接在图像空间中的模型
- 逆模型
- 从数据中学习动力学系统
本周项目 - MB-MF 
MB-MF应用于RoboschoolAnt - 本周我选择实现这篇论文中描述的基于模型的算法。 我的实现可以在这里找到这里。 注意:我没有像论文中那样在Mujoco上实现,而是使用了RoboSchool,这是一个与OpenAI Gym集成的开源机器人模拟器。
论文
其他资源
- :books: 强化学习“圣经”:第8章 - 萨顿 & 巴托
- :books: 世界模型 - 智能体能否在自己的梦境中学习?
第8周 - 高级概念与自选项目
最后一周将围绕强化学习的高级概念以及你自选的项目展开。
讲座 - 理论 
- 谢尔盖·列文(伯克利)
- 戴维·西尔弗(DeepMind)
最终项目
这里有一些项目想法可供参考。
- Pommerman(多人游戏)
- 假肢人工智能挑战赛(挑战赛)
- Word Models(论文实现)
- OpenAI研究请求(研究)
- 复古竞赛(迁移学习)
其他资源
- AlphaGo Zero
- 论文
- DeepMind博客文章:AlphaGo Zero:从零开始学习
- Arxiv Insights视频:AlphaGo Zero的工作原理 - Google DeepMind
- OpenAI Five
- OpenAI博客文章:OpenAI Five
- Arxiv Insights视频:OpenAI Five:迎战Dota II人类职业选手
最后4天 - 复习 + 分享
恭喜你完成了60天强化学习挑战!!请告诉我你是否喜欢这次挑战,并分享给更多人!
再见!
最佳资源
:books: 强化学习:导论 - 萨顿 & 巴托著。强化学习领域的“圣经”。这里可以找到第二版的PDF草稿。
:books: 深度强化学习实战 - 马克西姆·拉潘著
:books: 深度学习 - 伊恩·古德费洛著
:tv: 深度强化学习 - UC伯克利列文教授的课程,详情请见他们的网站这里。
:tv: 强化学习课程 - 戴维·西尔弗,DeepMind。由AlphaGo的主要研究人员西尔弗主讲的优秀入门课程,内容遵循萨顿 & 巴托的《强化学习》一书。
补充资源
:books: 超赞的强化学习。一份专门针对强化学习的精选资源列表
:books: GroundAI上的RL。关于强化学习的论文
一杯咖啡 :coffee:
任何贡献都将不胜感激!干杯!
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
