Practical_RL
Practical_RL 是一门面向实战的强化学习开源课程,旨在帮助学习者掌握在真实场景中应用强化学习的技术与方法。它由俄罗斯高等经济学院(HSE)和 Яндекс数据学校(YSDA)联合打造,不仅服务于校内学生,也充分照顾在线学习者的需求,提供英文与俄文双语支持。
本课程重点解决传统强化学习教学中“理论多、实践少”的问题,强调“实用性优先”。每一核心概念都配有对应的实验环节,让学习者通过动手操作深入理解算法原理,例如使用 OpenAI Gym 实现表格型与深度交叉熵方法、比较 Q-learning 与 SARSA 的表现、构建带有经验回放和目标网络的深度 Q 网络等。
Practical_RL 特别适合具备一定编程基础的开发者和研究人员,尤其是希望系统掌握强化学习并快速上手的工程师或学生。课程采用"Git 协作”模式,鼓励社区贡献,内容持续更新,涵盖从基础马尔可夫决策过程到前沿深度强化学习技巧(如 Double DQN、Dueling Network 等)。此外,课程还提供 Google Colab 环境配置指南和本地部署建议,降低学习门槛。
无论你是想入门强化学习,还是希望提升实际项目中的算法应用能力,Practical_RL 都是一个结构清晰、资源丰富、注重实践的理想选择。
使用场景
某初创公司的算法工程师团队正尝试为仓储物流机器人开发一套动态路径规划系统,以应对复杂多变的仓库环境。
没有 Practical_RL 时
- 团队成员需从零散的博客和论文中拼凑强化学习理论,缺乏系统化的课程指引,导致基础概念理解偏差。
- 在将理论转化为代码时,因缺少针对 OpenAI Gym 等环境的实战实验室(Lab),难以直观感受价值迭代或 Q-learning 的实际效果。
- 面对深度强化学习中的经验回放、目标网络等关键技巧,只能自行摸索,极易陷入训练不收敛的困境且无从排查。
- 遇到环境配置报错或公式笔误时,缺乏活跃的社区支持和即时修正机制,严重拖慢研发进度。
使用 Practical_RL 后
- 依托其结构化的周度大纲,团队从随机优化到深度近似 RL 循序渐进,快速建立了完整的知识体系。
- 通过每周配套的 Seminar 实验代码,工程师直接在 CartPole 和 Atari 等环境中“手感”验证了 SARSA 与 DQN 的差异,大幅缩短调试周期。
- 课程明确涵盖了双 DQN、Dueling Network 等工业界实用的启发式技巧,帮助机器人策略在连续状态空间中迅速收敛。
- 借助其开放的 Git 协作模式,团队不仅修复了本地运行的小问题,还直接复用了社区贡献的最新框架版本,确保持续集成顺畅。
Practical_RL 通过将前沿理论与“野性”实战紧密结合,让团队在极低成本下完成了从学术认知到工业落地的跨越。
运行环境要求
- Linux
- macOS
- Windows
未说明(课程涵盖深度强化学习,建议具备支持 CUDA 的 NVIDIA GPU 以运行 Atari 等复杂实验,但非绝对必需)
未说明(建议 8GB 以上以运行深度学习模型)

快速开始
实用强化学习
一门关于实战强化学习的开放课程。 该课程在HSE和YSDA校内授课,并特别为线上学生设计,提供英俄双语支持。
理念:
- 以好奇心为导向。 对于所有未详细讲解的内容,我们都提供了更多资料和相关资源的链接(D.Silver/Sutton/博客等)。作业中还设有拓展部分,供有兴趣深入研究的同学选择。
- 实践优先。 凡是解决强化学习问题所必需的知识点都会被提及。我们不会回避技巧和启发式方法的介绍。对于每一个重要概念,都会有一项实验让你通过实际问题去“感受”它。
- Git驱动的课程。 想要改进课程吗?发现公式中的拼写错误?找到有用的链接?让代码更易读?或者为其他框架编写版本?太棒了!请提交拉取请求!
课程信息
匿名反馈表单。
虚拟课程环境:
- Google Colab - 打开 -> github -> yandexdataschool/pracical_rl -> {分支名称},然后选择任意笔记本即可。
- 本地安装依赖(推荐)。
- 另一种选择:Azure Notebooks。
补充材料
课程大纲
本大纲仅供参考:讲座顺序可能会略有调整,某些主题可能需要两周时间来完成。
week01_intro 导论
- 讲座:身边的强化学习问题。决策过程。随机优化、交叉熵方法。参数空间搜索与动作空间搜索的区别。
- 研讨课:初识OpenAI Gym。针对Taxi-v0的表格型CEM,以及针对Box2D环境的深度CEM。
- 作业说明见week1/README.md。
week02_value_based 基于价值的方法
- 讲座:折扣奖励马尔可夫决策过程。基于价值的方法。值迭代。策略迭代。折扣奖励的局限性。
- 研讨课:值迭代。
- 作业说明见week2/README.md。
week03_model_free 无模型强化学习
- 讲座:Q-learning。SARSA。离策略与在线策略算法。N步算法。TD(Lambda)。
- 研讨课:Qlearning、SARSA与期望值SARSA的对比。
- 作业说明见week3/README.md。
recap_deep_learning 深度学习回顾
- 讲座:深度学习入门。
- 研讨课:PyTorch/TensorFlow简介,使用卷积网络进行简单的图像分类。
week04_approx_rl 近似(深度)强化学习
- 讲座:无限/连续状态空间。价值函数近似。收敛条件。多智能体技巧;经验回放、目标网络、双/决斗/DQN等。
- 研讨课:带有经验回放的近似Q-learning。(CartPole、Atari)
-
- 讲座:上下文相关的赌博机问题。汤普森采样、UCB、贝叶斯UCB。基于模型的强化学习中的探索,MCTS。“深度”的探索启发式方法。
- 研讨课:上下文相关赌博机问题的贝叶斯探索。MCTS的UCB。
week06_policy_based 基于策略的梯度方法
- 讲座:基于策略的原因、策略梯度、对数导数技巧、REINFORCE/交叉熵方法、方差缩减(基线)、优势演员-评论家(包括GAE)。
- 研讨课:REINFORCE、优势演员-评论家。
week07_seq2seq 序列模型的强化学习
- 讲座:序列数据的问题。循环神经网络。时间反向传播。梯度消失与爆炸。LSTM、GRU。梯度裁剪。
- 研讨课:字符级RNN语言模型。
week08_pomdp 部分可观测马尔可夫决策过程
- 讲座:POMDP简介。带记忆的智能体的POMDP学习。POMDP规划(POMCP等)。
- 研讨课:使用循环A3C和DRQN进行深度功夫与毁灭任务。
week09_policy_II 高级基于策略的方法
- 讲座:信任域策略优化。NPO/PPO。确定性策略梯度。DDPG。
- 研讨课:简单机器人控制的近似TRPO。
week10_planning 基于模型的强化学习及其他
- 讲座:基于模型的强化学习、一般规划、模仿学习与逆强化学习。
- 研讨课:用于玩具任务的MCTS。
yet_another_week 逆强化学习与模仿学习
- 所有那些你在这门课程里学不到的酷炫强化学习内容 :)
课程团队
课程材料及教学由以下人员负责:【非排序】
- Pavel Shvechikov - 讲课、研讨课、作业批改、读书会组织
- Nikita Putintsev - 研讨课、作业批改、整理我们的混乱局面
- Alexander Fritsler - 讲课、研讨课、作业批改
- Oleg Vasilev - 研讨课、作业批改、技术支持
- Dmitry Nikulin - 大量修复工作,遍布各处
- Mikhail Konobeev - 研讨课、作业批改
- Ivan Kharitonov - 研讨课、作业批改
- Ravil Khisamov - 研讨课、作业批改
- Anna Klepova - 作业批改
- Fedor Ratnikov - 行政事务
贡献
- 使用了来自Berkeley AI课程的图片。
- 大量参考了CS294的内容。
- 几个TensorFlow作业由Scitator完成。
- arogozhnikov提供了大量修复。
- 其他优秀贡献者:详见GitHub上的贡献者列表。
- Alexey Umnov在2018年春季为我们提供了大量帮助。
版本历史
spring202020/08/04spring192019/06/17常见问题
相似工具推荐
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 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器