[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"tool-yandexdataschool--Practical_RL":3,"similar-yandexdataschool--Practical_RL":114},{"id":4,"github_repo":5,"name":6,"description_en":7,"description_zh":8,"ai_summary_zh":9,"readme_en":10,"readme_zh":11,"quickstart_zh":12,"use_case_zh":13,"hero_image_url":14,"owner_login":15,"owner_name":16,"owner_avatar_url":17,"owner_bio":18,"owner_company":19,"owner_location":19,"owner_email":20,"owner_twitter":19,"owner_website":21,"owner_url":22,"languages":23,"stars":40,"forks":41,"last_commit_at":42,"license":43,"difficulty_score":44,"env_os":45,"env_gpu":46,"env_ram":47,"env_deps":48,"category_tags":59,"github_topics":61,"view_count":44,"oss_zip_url":19,"oss_zip_packed_at":19,"status":71,"created_at":72,"updated_at":73,"faqs":74,"releases":105},8585,"yandexdataschool\u002FPractical_RL","Practical_RL","A course in reinforcement learning in the wild","Practical_RL 是一门面向实战的强化学习开源课程，旨在帮助学习者掌握在真实场景中应用强化学习的技术与方法。它由俄罗斯高等经济学院（HSE）和 Яндекс数据学校（YSDA）联合打造，不仅服务于校内学生，也充分照顾在线学习者的需求，提供英文与俄文双语支持。\n\n本课程重点解决传统强化学习教学中“理论多、实践少”的问题，强调“实用性优先”。每一核心概念都配有对应的实验环节，让学习者通过动手操作深入理解算法原理，例如使用 OpenAI Gym 实现表格型与深度交叉熵方法、比较 Q-learning 与 SARSA 的表现、构建带有经验回放和目标网络的深度 Q 网络等。\n\nPractical_RL 特别适合具备一定编程基础的开发者和研究人员，尤其是希望系统掌握强化学习并快速上手的工程师或学生。课程采用\"Git 协作”模式，鼓励社区贡献，内容持续更新，涵盖从基础马尔可夫决策过程到前沿深度强化学习技巧（如 Double DQN、Dueling Network 等）。此外，课程还提供 Google Colab 环境配置指南和本地部署建议，降低学习门槛。\n\n无论你是想入门强化学习，还是希望提","Practical_RL 是一门面向实战的强化学习开源课程，旨在帮助学习者掌握在真实场景中应用强化学习的技术与方法。它由俄罗斯高等经济学院（HSE）和 Яндекс数据学校（YSDA）联合打造，不仅服务于校内学生，也充分照顾在线学习者的需求，提供英文与俄文双语支持。\n\n本课程重点解决传统强化学习教学中“理论多、实践少”的问题，强调“实用性优先”。每一核心概念都配有对应的实验环节，让学习者通过动手操作深入理解算法原理，例如使用 OpenAI Gym 实现表格型与深度交叉熵方法、比较 Q-learning 与 SARSA 的表现、构建带有经验回放和目标网络的深度 Q 网络等。\n\nPractical_RL 特别适合具备一定编程基础的开发者和研究人员，尤其是希望系统掌握强化学习并快速上手的工程师或学生。课程采用\"Git 协作”模式，鼓励社区贡献，内容持续更新，涵盖从基础马尔可夫决策过程到前沿深度强化学习技巧（如 Double DQN、Dueling Network 等）。此外，课程还提供 Google Colab 环境配置指南和本地部署建议，降低学习门槛。\n\n无论你是想入门强化学习，还是希望提升实际项目中的算法应用能力，Practical_RL 都是一个结构清晰、资源丰富、注重实践的理想选择。","# Practical_RL\n\nAn open course on reinforcement learning in the wild.\nTaught on-campus at [HSE](https:\u002F\u002Fcs.hse.ru) and [YSDA](https:\u002F\u002Fyandexdataschool.com\u002F)  and maintained to be friendly to online students (both english and russian).\n\n\n#### Manifesto:\n* __Optimize for the curious.__ For all the materials that aren’t covered in detail there are links to more information and related materials (D.Silver\u002FSutton\u002Fblogs\u002Fwhatever). Assignments will have bonus sections if you want to dig deeper.\n* __Practicality first.__ Everything essential to solving reinforcement learning problems is worth mentioning. We won't shun away from covering tricks and heuristics. For every major idea there should be a lab that makes you to “feel” it on a practical problem.\n* __Git-course.__ Know a way to make the course better? Noticed a typo in a formula? Found a useful link? Made the code more readable? Made a version for alternative framework? You're awesome! [Pull-request](https:\u002F\u002Fhelp.github.com\u002Farticles\u002Fabout-pull-requests\u002F) it!\n\n[![Github contributors](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002Fyandexdataschool\u002FPractical_RL.svg?logo=github&logoColor=white)](https:\u002F\u002Fgithub.com\u002Fyandexdataschool\u002FPractical_RL\u002Fgraphs\u002Fcontributors)\n\n# Course info\n\n* __FAQ:__ [About the course](https:\u002F\u002Fgithub.com\u002Fyandexdataschool\u002FPractical_RL\u002Fwiki\u002FPractical-RL), [Technical issues thread](https:\u002F\u002Fgithub.com\u002Fyandexdataschool\u002FPractical_RL\u002Fissues\u002F1), [Lecture Slides](https:\u002F\u002Fyadi.sk\u002Fd\u002FloPpY45J3EAYfU), [Online Student Survival Guide](https:\u002F\u002Fgithub.com\u002Fyandexdataschool\u002FPractical_RL\u002Fwiki\u002FOnline-student's-survival-guide)\n\n* Anonymous [feedback form](https:\u002F\u002Fdocs.google.com\u002Fforms\u002Fd\u002Fe\u002F1FAIpQLSdurWw97Sm9xCyYwC8g3iB5EibITnoPJW2IkOVQYE_kcXPh6Q\u002Fviewform).\n\n* Virtual course environment: \n    * [__Google Colab__](https:\u002F\u002Fcolab.research.google.com\u002F) - set open -> github -> yandexdataschool\u002Fpracical_rl -> {branch name} and select any notebook you want.\n    * [Installing dependencies](https:\u002F\u002Fgithub.com\u002Fyandexdataschool\u002FPractical_RL\u002Fissues\u002F1) on your local machine (recommended).\n    * Alternative: [Azure Notebooks](https:\u002F\u002Fnotebooks.azure.com\u002F).\n\n\n# Additional materials\n* [RL reading group](https:\u002F\u002Fgithub.com\u002Fyandexdataschool\u002FPractical_RL\u002Fwiki\u002FRL-reading-group)\n\n\n# Syllabus\n\nThe syllabus is approximate: the lectures may occur in a slightly different order and some topics may end up taking two weeks.\n\n* [__week01_intro__](.\u002Fweek01_intro) Introduction\n  * Lecture: RL problems around us. Decision processes. Stochastic optimization, Crossentropy method. Parameter space search vs action space search.\n  * Seminar: Welcome into openai gym. Tabular CEM for Taxi-v0, deep CEM for box2d environments.\n  * Homework description - see week1\u002FREADME.md. \n\n* [__week02_value_based__](.\u002Fweek02_value_based) Value-based methods\n  * Lecture: Discounted reward MDP. Value-based approach. Value iteration. Policy iteration. Discounted reward fails.\n  * Seminar: Value iteration.  \n  * Homework description - see week2\u002FREADME.md. \n  \n* [__week03_model_free__](.\u002Fweek03_model_free) Model-free reinforcement learning\n  * Lecture: Q-learning. SARSA. Off-policy Vs on-policy algorithms. N-step algorithms. TD(Lambda).\n  * Seminar: Qlearning Vs SARSA Vs Expected Value SARSA\n  * Homework description - see week3\u002FREADME.md. \n\n* [__recap_deep_learning__](.\u002Fweek04_\\[recap\\]_deep_learning) - deep learning recap \n  * Lecture: Deep learning 101\n  * Seminar: Intro to pytorch\u002Ftensorflow, simple image classification with convnets\n\n* [__week04_approx_rl__](.\u002Fweek04_approx_rl) Approximate (deep) RL\n  * Lecture: Infinite\u002Fcontinuous state space. Value function approximation. Convergence conditions. Multiple agents trick; experience replay, target networks, double\u002Fdueling\u002Fbootstrap DQN, etc.\n  * Seminar:  Approximate Q-learning with experience replay. (CartPole, Atari)\n  \n* [__week05_explore__](.\u002Fweek05_explore) Exploration\n  * Lecture: Contextual bandits. Thompson Sampling, UCB, bayesian UCB. Exploration in model-based RL, MCTS. \"Deep\" heuristics for exploration.\n  * Seminar: bayesian exploration for contextual bandits. UCB for MCTS.\n\n* [__week06_policy_based__](.\u002Fweek06_policy_based) Policy Gradient methods\n  * Lecture: Motivation for policy-based, policy gradient, logderivative trick, REINFORCE\u002Fcrossentropy method, variance reduction(baseline), advantage actor-critic (incl. GAE)\n  * Seminar: REINFORCE, advantage actor-critic\n\n* [__week07_seq2seq__](.\u002Fweek07_seq2seq) Reinforcement Learning for Sequence Models\n  * Lecture: Problems with sequential data. Recurrent neural networks. Backprop through time. Vanishing & exploding gradients. LSTM, GRU. Gradient clipping\n  * Seminar: character-level RNN language model\n\n* [__week08_pomdp__](.\u002Fweek08_pomdp) Partially Observed MDP\n  * Lecture: POMDP intro. POMDP learning (agents with memory). POMDP planning (POMCP, etc)\n  * Seminar: Deep kung-fu & doom with recurrent A3C and DRQN\n  \n* [__week09_policy_II__](.\u002Fweek09_policy_II) Advanced policy-based methods\n  * Lecture: Trust region policy optimization. NPO\u002FPPO. Deterministic policy gradient. DDPG\n  * Seminar: Approximate TRPO for simple robot control.\n\n* [__week10_planning__](.\u002Fweek10_planning) Model-based RL & Co\n  * Lecture: Model-Based RL, Planning in General, Imitation Learning and Inverse Reinforcement Learning\n  * Seminar: MCTS for toy tasks\n\n* [__yet_another_week__](.\u002Fyet_another_week) Inverse RL and Imitation Learning\n  * All that cool RL stuff that you won't learn from this course :)\n\n\n# Course staff\nCourse materials and teaching by: _[unordered]_\n- [Pavel Shvechikov](https:\u002F\u002Fgithub.com\u002Fpshvechikov) - lectures, seminars, hw checkups, reading group\n- [Nikita Putintsev](https:\u002F\u002Fgithub.com\u002Fqwasser) - seminars, hw checkups, organizing our hot mess\n- [Alexander Fritsler](https:\u002F\u002Fgithub.com\u002FFritz449) - lectures, seminars, hw checkups\n- [Oleg Vasilev](https:\u002F\u002Fgithub.com\u002FOmrigan) - seminars, hw checkups, technical support\n- [Dmitry Nikulin](https:\u002F\u002Fgithub.com\u002Fpastafarianist) - tons of fixes, far and wide\n- [Mikhail Konobeev](https:\u002F\u002Fgithub.com\u002FMichaelKonobeev) - seminars, hw checkups\n- [Ivan Kharitonov](https:\u002F\u002Fgithub.com\u002Fneer201) - seminars, hw checkups\n- [Ravil Khisamov](https:\u002F\u002Fgithub.com\u002Fzshrav) - seminars, hw checkups\n- [Anna Klepova](https:\u002F\u002Fgithub.com\u002Fq0o0p) - hw checkups\n- [Fedor Ratnikov](https:\u002F\u002Fgithub.com\u002Fjustheuristic) - admin stuff\n\n# Contributions\n* Using pictures from [Berkeley AI course](http:\u002F\u002Fai.berkeley.edu\u002Fhome.html)\n* Massively refering to [CS294](http:\u002F\u002Frll.berkeley.edu\u002Fdeeprlcourse\u002F)\n* Several tensorflow assignments by [Scitator](https:\u002F\u002Fgithub.com\u002FScitator)\n* A lot of fixes from [arogozhnikov](https:\u002F\u002Fgithub.com\u002Farogozhnikov)\n* Other awesome people: see github [contributors](https:\u002F\u002Fgithub.com\u002Fyandexdataschool\u002FPractical_RL\u002Fgraphs\u002Fcontributors)\n* [Alexey Umnov](https:\u002F\u002Fgithub.com\u002Falexeyum) helped us a lot during spring2018\n\n","# 实用强化学习\n\n一门关于实战强化学习的开放课程。\n该课程在[HSE](https:\u002F\u002Fcs.hse.ru)和[YSDA](https:\u002F\u002Fyandexdataschool.com\u002F)校内授课，并特别为线上学生设计，提供英俄双语支持。\n\n\n#### 理念：\n* __以好奇心为导向。__ 对于所有未详细讲解的内容，我们都提供了更多资料和相关资源的链接（D.Silver\u002FSutton\u002F博客等）。作业中还设有拓展部分，供有兴趣深入研究的同学选择。\n* __实践优先。__ 凡是解决强化学习问题所必需的知识点都会被提及。我们不会回避技巧和启发式方法的介绍。对于每一个重要概念，都会有一项实验让你通过实际问题去“感受”它。\n* __Git驱动的课程。__ 想要改进课程吗？发现公式中的拼写错误？找到有用的链接？让代码更易读？或者为其他框架编写版本？太棒了！请提交[拉取请求](https:\u002F\u002Fhelp.github.com\u002Farticles\u002Fabout-pull-requests\u002F)！\n\n[![GitHub贡献者](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002Fyandexdataschool\u002FPractical_RL.svg?logo=github&logoColor=white)](https:\u002F\u002Fgithub.com\u002Fyandexdataschool\u002FPractical_RL\u002Fgraphs\u002Fcontributors)\n\n# 课程信息\n\n* __常见问题：__ [课程简介](https:\u002F\u002Fgithub.com\u002Fyandexdataschool\u002FPractical_RL\u002Fwiki\u002FPractical-RL)、[技术问题讨论区](https:\u002F\u002Fgithub.com\u002Fyandexdataschool\u002FPractical_RL\u002Fissues\u002F1)、[讲义](https:\u002F\u002Fyadi.sk\u002Fd\u002FloPpY45J3EAYfU)、[在线学生生存指南](https:\u002F\u002Fgithub.com\u002Fyandexdataschool\u002FPractical_RL\u002Fwiki\u002FOnline-student's-survival-guide)\n\n* 匿名[反馈表单](https:\u002F\u002Fdocs.google.com\u002Fforms\u002Fd\u002Fe\u002F1FAIpQLSdurWw97Sm9xCyYwC8g3iB5EibITnoPJW2IkOVQYE_kcXPh6Q\u002Fviewform)。\n\n* 虚拟课程环境：\n    * [__Google Colab__](https:\u002F\u002Fcolab.research.google.com\u002F) - 打开 -> github -> yandexdataschool\u002Fpracical_rl -> {分支名称}，然后选择任意笔记本即可。\n    * [本地安装依赖](https:\u002F\u002Fgithub.com\u002Fyandexdataschool\u002FPractical_RL\u002Fissues\u002F1)（推荐）。\n    * 另一种选择：[Azure Notebooks](https:\u002F\u002Fnotebooks.azure.com\u002F)。\n\n\n# 补充材料\n* [强化学习读书会](https:\u002F\u002Fgithub.com\u002Fyandexdataschool\u002FPractical_RL\u002Fwiki\u002FRL-reading-group)\n\n\n# 课程大纲\n\n本大纲仅供参考：讲座顺序可能会略有调整，某些主题可能需要两周时间来完成。\n\n* [__week01_intro__](.\u002Fweek01_intro) 导论\n  * 讲座：身边的强化学习问题。决策过程。随机优化、交叉熵方法。参数空间搜索与动作空间搜索的区别。\n  * 研讨课：初识OpenAI Gym。针对Taxi-v0的表格型CEM，以及针对Box2D环境的深度CEM。\n  * 作业说明见week1\u002FREADME.md。\n\n* [__week02_value_based__](.\u002Fweek02_value_based) 基于价值的方法\n  * 讲座：折扣奖励马尔可夫决策过程。基于价值的方法。值迭代。策略迭代。折扣奖励的局限性。\n  * 研讨课：值迭代。\n  * 作业说明见week2\u002FREADME.md。\n\n* [__week03_model_free__](.\u002Fweek03_model_free) 无模型强化学习\n  * 讲座：Q-learning。SARSA。离策略与在线策略算法。N步算法。TD(Lambda)。\n  * 研讨课：Qlearning、SARSA与期望值SARSA的对比。\n  * 作业说明见week3\u002FREADME.md。\n\n* [__recap_deep_learning__](.\u002Fweek04_\\[recap\\]_deep_learning) 深度学习回顾\n  * 讲座：深度学习入门。\n  * 研讨课：PyTorch\u002FTensorFlow简介，使用卷积网络进行简单的图像分类。\n\n* [__week04_approx_rl__](.\u002Fweek04_approx_rl) 近似（深度）强化学习\n  * 讲座：无限\u002F连续状态空间。价值函数近似。收敛条件。多智能体技巧；经验回放、目标网络、双\u002F决斗\u002FDQN等。\n  * 研讨课：带有经验回放的近似Q-learning。（CartPole、Atari）\n\n* [__week05_explore__](.\u002Fweek05_explore) 探索\n  * 讲座：上下文相关的赌博机问题。汤普森采样、UCB、贝叶斯UCB。基于模型的强化学习中的探索，MCTS。“深度”的探索启发式方法。\n  * 研讨课：上下文相关赌博机问题的贝叶斯探索。MCTS的UCB。\n\n* [__week06_policy_based__](.\u002Fweek06_policy_based) 基于策略的梯度方法\n  * 讲座：基于策略的原因、策略梯度、对数导数技巧、REINFORCE\u002F交叉熵方法、方差缩减（基线）、优势演员-评论家（包括GAE）。\n  * 研讨课：REINFORCE、优势演员-评论家。\n\n* [__week07_seq2seq__](.\u002Fweek07_seq2seq) 序列模型的强化学习\n  * 讲座：序列数据的问题。循环神经网络。时间反向传播。梯度消失与爆炸。LSTM、GRU。梯度裁剪。\n  * 研讨课：字符级RNN语言模型。\n\n* [__week08_pomdp__](.\u002Fweek08_pomdp) 部分可观测马尔可夫决策过程\n  * 讲座：POMDP简介。带记忆的智能体的POMDP学习。POMDP规划（POMCP等）。\n  * 研讨课：使用循环A3C和DRQN进行深度功夫与毁灭任务。\n\n* [__week09_policy_II__](.\u002Fweek09_policy_II) 高级基于策略的方法\n  * 讲座：信任域策略优化。NPO\u002FPPO。确定性策略梯度。DDPG。\n  * 研讨课：简单机器人控制的近似TRPO。\n\n* [__week10_planning__](.\u002Fweek10_planning) 基于模型的强化学习及其他\n  * 讲座：基于模型的强化学习、一般规划、模仿学习与逆强化学习。\n  * 研讨课：用于玩具任务的MCTS。\n\n* [__yet_another_week__](.\u002Fyet_another_week) 逆强化学习与模仿学习\n  * 所有那些你在这门课程里学不到的酷炫强化学习内容 :) \n\n\n# 课程团队\n课程材料及教学由以下人员负责：_【非排序】_\n- [Pavel Shvechikov](https:\u002F\u002Fgithub.com\u002Fpshvechikov) - 讲课、研讨课、作业批改、读书会组织\n- [Nikita Putintsev](https:\u002F\u002Fgithub.com\u002Fqwasser) - 研讨课、作业批改、整理我们的混乱局面\n- [Alexander Fritsler](https:\u002F\u002Fgithub.com\u002FFritz449) - 讲课、研讨课、作业批改\n- [Oleg Vasilev](https:\u002F\u002Fgithub.com\u002FOmrigan) - 研讨课、作业批改、技术支持\n- [Dmitry Nikulin](https:\u002F\u002Fgithub.com\u002Fpastafarianist) - 大量修复工作，遍布各处\n- [Mikhail Konobeev](https:\u002F\u002Fgithub.com\u002FMichaelKonobeev) - 研讨课、作业批改\n- [Ivan Kharitonov](https:\u002F\u002Fgithub.com\u002Fneer201) - 研讨课、作业批改\n- [Ravil Khisamov](https:\u002F\u002Fgithub.com\u002Fzshrav) - 研讨课、作业批改\n- [Anna Klepova](https:\u002F\u002Fgithub.com\u002Fq0o0p) - 作业批改\n- [Fedor Ratnikov](https:\u002F\u002Fgithub.com\u002Fjustheuristic) - 行政事务\n\n# 贡献\n* 使用了来自[Berkeley AI课程](http:\u002F\u002Fai.berkeley.edu\u002Fhome.html)的图片。\n* 大量参考了[CS294](http:\u002F\u002Frll.berkeley.edu\u002Fdeeprlcourse\u002F)的内容。\n* 几个TensorFlow作业由[Scitator](https:\u002F\u002Fgithub.com\u002FScitator)完成。\n* [arogozhnikov](https:\u002F\u002Fgithub.com\u002Farogozhnikov)提供了大量修复。\n* 其他优秀贡献者：详见GitHub上的[贡献者列表](https:\u002F\u002Fgithub.com\u002Fyandexdataschool\u002FPractical_RL\u002Fgraphs\u002Fcontributors)。\n* [Alexey Umnov](https:\u002F\u002Fgithub.com\u002Falexeyum)在2018年春季为我们提供了大量帮助。","# Practical_RL 快速上手指南\n\nPractical_RL 是一门面向实战的强化学习开源课程，涵盖从基础表格方法到深度强化学习（DQN, A3C, PPO 等）的核心内容。本指南将帮助你快速搭建环境并运行第一个实验。\n\n## 环境准备\n\n本课程主要基于 Python 开发，推荐使用 **Python 3.8+**。虽然支持多种深度学习框架，但当前示例主要依赖 **PyTorch** 或 **TensorFlow**。\n\n**前置依赖：**\n*   Git\n*   Python 3.8 或更高版本\n*   pip 或 conda 包管理器\n*   (可选) CUDA 支持的 GPU（用于加速深度强化学习训练）\n\n> **国内开发者提示**：建议在安装 Python 依赖时使用国内镜像源（如清华源或阿里源）以加速下载。\n\n## 安装步骤\n\n你可以选择直接在本地机器安装，或使用 Google Colab 在线运行。推荐本地安装以获得更完整的控制体验。\n\n### 方案一：本地安装（推荐）\n\n1.  **克隆仓库**\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fyandexdataschool\u002FPractical_RL.git\n    cd Practical_RL\n    ```\n\n2.  **创建虚拟环境**\n    建议使用 `conda` 或 `venv` 隔离环境。\n    ```bash\n    # 使用 conda\n    conda create -n practical_rl python=3.9\n    conda activate practical_rl\n\n    # 或者使用 venv\n    python -m venv venv\n    source venv\u002Fbin\u002Factivate  # Windows: venv\\Scripts\\activate\n    ```\n\n3.  **安装依赖**\n    课程依赖包含 OpenAI Gym 及相关插件。由于网络原因，建议配置 pip 镜像源安装。\n\n    ```bash\n    # 使用清华镜像源安装核心依赖\n    pip install -r requirements.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n    \n    # 如果 requirements.txt 未覆盖所有环境，可能需要手动安装 gym 相关包\n    pip install gymnasium[atari,accept-rom-license] box2d-py -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n    ```\n    *注：部分旧版作业可能依赖 `gym` 而非 `gymnasium`，如遇兼容性问题，请参考具体周次的 `README.md` 调整版本。*\n\n4.  **验证安装**\n    进入第一周的练习目录，尝试运行一个简单的脚本：\n    ```bash\n    cd week01_intro\n    python seminar_cem_taxi.py\n    ```\n\n### 方案二：Google Colab 在线运行（免安装）\n\n如果你不想配置本地环境，可以直接在浏览器中运行：\n\n1.  访问 [Google Colab](https:\u002F\u002Fcolab.research.google.com\u002F)。\n2.  点击 **\"File\"** -> **\"Open notebook\"** -> **\"GitHub\"**。\n3.  输入仓库名 `yandexdataschool\u002FPractical_RL` 并选择对应分支（通常为 `master`）。\n4.  选择任意一周的 `.ipynb` 文件（例如 `week01_intro\u002Fseminar.ipynb`）即可开始运行。\n\n## 基本使用\n\n课程按周次组织，每周包含讲座笔记（Lecture）、研讨会代码（Seminar）和家庭作业（Homework）。以下以 **第一周：交叉熵方法 (CEM)** 为例演示基本使用流程。\n\n### 运行第一个强化学习实验\n\n进入第一周目录并打开对应的 Jupyter Notebook 或 Python 脚本。\n\n```bash\ncd week01_intro\njupyter notebook seminar.ipynb\n```\n\n**核心代码逻辑示例：**\n\n在 Notebook 中，你将通过以下步骤训练一个智能体（Agent）解决 Taxi 问题：\n\n1.  **初始化环境**：\n    ```python\n    import gym\n    env = gym.make(\"Taxi-v3\") # 注意：新版可能需使用 Taxi-v3 或根据作业要求调整\n    ```\n\n2.  **定义策略与采样**：\n    使用交叉熵方法（Cross-Entropy Method），通过采样表现最好的轨迹来更新策略参数。\n    ```python\n    # 伪代码示例，具体请参阅 seminar.ipynb\n    from rl_utils import generate_session, crossentropy_method\n    \n    # 生成若干回合的游戏数据\n    sessions = [generate_session(env, agent_params) for _ in range(n_samples)]\n    \n    # 筛选精英样本并更新参数\n    elite_sessions = select_elite(sessions, percentile=70)\n    agent_params = update_params(elite_sessions)\n    ```\n\n3.  **观察结果**：\n    运行单元格后，你将看到平均奖励（Reward）随迭代次数上升的曲线，以及智能体在环境中成功完成任务的可视化效果。\n\n### 进阶探索\n\n完成基础实验后，你可以：\n*   修改 `week02_value_based` 中的价值迭代算法。\n*   在 `week04_approx_rl` 中尝试使用神经网络构建 DQN 代理玩 Atari 游戏。\n*   阅读每个文件夹下的 `README.md` 获取详细的作业说明和理论背景链接。","某初创公司的算法工程师团队正尝试为仓储物流机器人开发一套动态路径规划系统，以应对复杂多变的仓库环境。\n\n### 没有 Practical_RL 时\n- 团队成员需从零散的博客和论文中拼凑强化学习理论，缺乏系统化的课程指引，导致基础概念理解偏差。\n- 在将理论转化为代码时，因缺少针对 OpenAI Gym 等环境的实战实验室（Lab），难以直观感受价值迭代或 Q-learning 的实际效果。\n- 面对深度强化学习中的经验回放、目标网络等关键技巧，只能自行摸索，极易陷入训练不收敛的困境且无从排查。\n- 遇到环境配置报错或公式笔误时，缺乏活跃的社区支持和即时修正机制，严重拖慢研发进度。\n\n### 使用 Practical_RL 后\n- 依托其结构化的周度大纲，团队从随机优化到深度近似 RL 循序渐进，快速建立了完整的知识体系。\n- 通过每周配套的 Seminar 实验代码，工程师直接在 CartPole 和 Atari 等环境中“手感”验证了 SARSA 与 DQN 的差异，大幅缩短调试周期。\n- 课程明确涵盖了双 DQN、Dueling Network 等工业界实用的启发式技巧，帮助机器人策略在连续状态空间中迅速收敛。\n- 借助其开放的 Git 协作模式，团队不仅修复了本地运行的小问题，还直接复用了社区贡献的最新框架版本，确保持续集成顺畅。\n\nPractical_RL 通过将前沿理论与“野性”实战紧密结合，让团队在极低成本下完成了从学术认知到工业落地的跨越。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fyandexdataschool_Practical_RL_57623c66.png","yandexdataschool","Yandex School of Data Analysis","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fyandexdataschool_d4fa4709.png","",null,"info@yandexdataschool.com","https:\u002F\u002Fyandexdataschool.com","https:\u002F\u002Fgithub.com\u002Fyandexdataschool",[24,28,32,36],{"name":25,"color":26,"percentage":27},"Jupyter Notebook","#DA5B0B",96.8,{"name":29,"color":30,"percentage":31},"Python","#3572A5",3,{"name":33,"color":34,"percentage":35},"Shell","#89e051",0.2,{"name":37,"color":38,"percentage":39},"Dockerfile","#384d54",0.1,6484,1799,"2026-04-17T09:52:23","Unlicense",2,"Linux, macOS, Windows","未说明（课程涵盖深度强化学习，建议具备支持 CUDA 的 NVIDIA GPU 以运行 Atari 等复杂实验，但非绝对必需）","未说明（建议 8GB 以上以运行深度学习模型）",{"notes":49,"python":50,"dependencies":51},"该课程主要基于 OpenAI Gym 环境。官方推荐使用 Google Colab 或 Azure Notebooks 在线运行以避免本地配置问题。若在本地运行，需自行安装依赖（参考 GitHub Issue #1）。课程内容同时支持 TensorFlow 和 PyTorch 框架。","未说明（根据依赖库推测需 Python 3.6+）",[52,53,54,55,56,57,58],"gym","tensorflow","pytorch","numpy","scipy","matplotlib","jupyter",[60],"开发框架",[62,63,64,65,66,67,53,54,68,69,70],"reinforcement-learning","course-materials","deep-learning","deep-reinforcement-learning","git-course","mooc","pytorch-tutorials","keras","hacktoberfest","ready","2026-03-27T02:49:30.150509","2026-04-18T02:20:33.526291",[75,80,85,90,95,100],{"id":76,"question_zh":77,"answer_zh":78,"source_url":79},38467,"第 6 周基于策略的作业中神经网络架构图缺失，或者我不知道该使用什么样的网络架构？","图片问题已修复。关于架构，许多用户成功使用了共享网络结构，即分别定义两个输出层（一个用于动作概率，一个用于状态价值），而不是使用单个输出层。参考代码如下：\n```python\nout1 = Dense(n_actions)(x)\nout2 = Dense(1)(x)\nself.network = Model(inp, [out1, out2])\n```\n这比使用 `self.network.add(Dense(n_actions+1, activation='linear'))` 的效果更好。","https:\u002F\u002Fgithub.com\u002Fyandexdataschool\u002FPractical_RL\u002Fissues\u002F70",{"id":81,"question_zh":82,"answer_zh":83,"source_url":84},38468,"Coursera 提交作业时频繁超时或报错，可能是什么原因？","如果遇到特定的类型错误（如截图所示），通常是因为传递了错误的数据类型。例如，在参数 `t_max` 中传递了 Numpy 数组而不是数字。请检查你的输入变量类型，确保它们是标量数值而非数组。如果是平台本身的间歇性超时，则可能是 Coursera 服务端的问题，建议在论坛反馈或稍后重试。","https:\u002F\u002Fgithub.com\u002Fyandexdataschool\u002FPractical_RL\u002Fissues\u002F125",{"id":86,"question_zh":87,"answer_zh":88,"source_url":89},38469,"我想在校外讲授这门课程，应该使用 Coursera 版本还是校内版本？两者有何区别？","建议不要完全照搬 Coursera 版本。Coursera 版本主要存在两个问题：1. 仍在使用 TensorFlow，而校内版本已迁移至 PyTorch；2. 难度显著低于校内版本。\n推荐方案：以 Coursera 版本为指南，但尽可能使用校内版本中的 PyTorch 作业。你可以参考 Issue #262 中的映射关系，找到对应的 PyTorch 作业。此外，建议补充一些校内版的 bonus 任务（如第 3 周的 Pacman）。\n维护者强烈建议从 TensorFlow 迁移到 PyTorch，因为 TF 日志噪音大、版本兼容性差、调试困难（尤其是 1.x 的懒执行模式导致 traceback 不准确）。","https:\u002F\u002Fgithub.com\u002Fyandexdataschool\u002FPractical_RL\u002Fissues\u002F328",{"id":91,"question_zh":92,"answer_zh":93,"source_url":94},38470,"MCTS 研讨会代码无法运行，提示 `close` 参数相关错误怎么办？","这是因为 OpenAI Gym 更新了接口，移除了 `render` 函数中的 `close` 关键字参数。\n解决方法：\n1. 如果是本地运行，确保拉取最新的代码合并（参考 Issue #262）并移除关于 `render(close=True)` 的注释。\n2. 如果在 Coursera 上遇到此问题，可以在 Jupyter 终端运行 `git checkout week6_outro\u002Fpractice_mcts.ipynb` 来重置文件，或者将修改后的文件重命名重新上传。\n3. 重要提示：在 Coursera 点击 \"Publish Workspace\" 后，需要在浏览器 URL 后添加 `?forceRefresh=true` 并刷新页面，否则更改可能不会生效。","https:\u002F\u002Fgithub.com\u002Fyandexdataschool\u002FPractical_RL\u002Fissues\u002F93",{"id":96,"question_zh":97,"answer_zh":98,"source_url":99},38471,"第 4 周 DQN (Breakout) 作业训练时间过长且不收敛，奖励波动大，这是正常的吗？","是的，这在一定程度上是预期的行为。该作业需要在训练时间和稳定性之间做出权衡，因此模型存在较多的启发式规则和不稳定性。即使经过 100k 步，平均奖励可能在 0 到 10 之间大幅波动，不一定能像描述中那样平滑地在 10k 步达到稳定。维护者承认这是一个已知问题，并计划后续改进笔记本的用户友好性和稳定性。如果遇到严重阻碍，可以关注仓库中由贡献者重构后的新版本笔记。","https:\u002F\u002Fgithub.com\u002Fyandexdataschool\u002FPractical_RL\u002Fissues\u002F72",{"id":101,"question_zh":102,"answer_zh":103,"source_url":104},38472,"Coursera 的自动评分系统似乎有 Bug，无法通过验证怎么办？","维护者已确认评分机制中存在多个 Bug 并正在修复中。如果你遇到评分失败，首先去课程论坛查看是否有其他人报告相同问题。对于部分已知问题，可以通过手动编辑提交脚本（submission scripts）来绕过。建议定期检查论坛公告，因为大部分主要问题已经解决或通过变通方法可解。","https:\u002F\u002Fgithub.com\u002Fyandexdataschool\u002FPractical_RL\u002Fissues\u002F68",[106,110],{"id":107,"version":108,"summary_zh":19,"released_at":109},306660,"spring20","2020-08-04T13:51:58",{"id":111,"version":112,"summary_zh":19,"released_at":113},306661,"spring19","2019-06-17T16:29:48",[115,126,134,143,151,160],{"id":116,"name":117,"github_repo":118,"description_zh":119,"stars":120,"difficulty_score":31,"last_commit_at":121,"category_tags":122,"status":71},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,"2026-04-06T06:32:30",[123,60,124,125],"Agent","图像","数据工具",{"id":127,"name":128,"github_repo":129,"description_zh":130,"stars":131,"difficulty_score":31,"last_commit_at":132,"category_tags":133,"status":71},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[60,124,123],{"id":135,"name":136,"github_repo":137,"description_zh":138,"stars":139,"difficulty_score":44,"last_commit_at":140,"category_tags":141,"status":71},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",159267,"2026-04-17T11:29:14",[60,123,142],"语言模型",{"id":144,"name":145,"github_repo":146,"description_zh":147,"stars":148,"difficulty_score":44,"last_commit_at":149,"category_tags":150,"status":71},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[60,124,123],{"id":152,"name":153,"github_repo":154,"description_zh":155,"stars":156,"difficulty_score":44,"last_commit_at":157,"category_tags":158,"status":71},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[159,123,124,60],"插件",{"id":161,"name":162,"github_repo":163,"description_zh":164,"stars":165,"difficulty_score":44,"last_commit_at":166,"category_tags":167,"status":71},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[159,60]]