deep-reinforcement-learning
Udacity 官方 RL 学习路径,从动态规划到 DQN/DDPG/PPO,手把手用 PyTorc
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Udacity 官方 RL 学习路径,从动态规划到 DQN/DDPG/PPO,手把手用 PyTorc
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:训练后的智能体(Agents)—— 在 Unity ML-Agents 仿真环境中,DQN 算法驱动的机械臂学会了精确到达目标位置。## 为什么这个项目至今仍值得学习?深度强化学习在 2018-2023 年间经历了爆发式增长,AlphaGo、Dota Five、AlphaStar、机器人灵巧操作……这些里程碑背后无一例外依赖 RL 技术。而 Udacity 的这套课程,覆盖了从经典到前沿的主流算法路线——(1)经典强化学习基石(动态规划 + 蒙特卡洛 + TD)课程的前半部分从强化学习的数学基础讲起:动态规划(Policy Iteration、Value Iteration)让你理解「当环境完全已知时,如何最优决策」;蒙特卡洛方法让你学会「从真实经验中估计价值函数」;Temporal Difference(TD)则融合了二者,用自举法(Bootstrapping)实现高效的在线学习。配套的 OpenAI Gym 经典环境(CartPole、Mountain Car、FrozenLake)让你在 Jupyter Notebook 里亲眼看到算法从「随机乱撞」到「找到最优策略」的完整过程。(2)深度 Q 网络(DQN)—— 让 AI 在高维感知中做决策DQN 是课程的核心转折点:它将 Q-Learning 与深度卷积神经网络结合,使得智能体能够在「直接感知像素」的情况下做出决策——就像人脑一样,看见画面就知道该怎么做。课程在 Unity ML-Agents 仿真环境中训练 agent 收集黄色香蕉、避开蓝色香蕉,训练过程清晰地展示了 Experience Replay(经验回放)和 Fixed Q-Targets(固定Q目标)两大技巧如何让神经网络稳定收敛。这是 RL 与深度学习结合的开山之作,也是后续所有算法的技术基石。
图2:DQN 架构示意图——卷积层将原始像素压缩为特征向量,全连接层输出每个可能动作的价值 Q(a|s),智能体据此选择最优动作。****(3)策略梯度(REINFORCE)—— 直接「猜」最优动作DQN 适合离散动作空间(如上下左右),但在连续控制场景(机械臂角度、车辆方向盘角度)中,策略梯度方法才是正道。REINFORCE 算法通过蒙特卡洛采样估计策略梯度,直接优化「哪套动作序列更可能带来高奖励」。课程从经典的 REINFORCE 出发,让你理解 Policy Gradient 的核心思想:为好的轨迹增加概率,为差的轨迹降低概率——就像进化算法在策略空间里做自然选择。(4)DDPG(深度确定性策略梯度)—— 工业机器人的首选DDPG 是连续控制任务的工业标准。它将 Actor-Critic 架构与 DQN 的经验回放、固定目标网络结合,既能处理高维连续动作空间,又保持了样本高效的优点。课程在 OpenAI Gym 的 Pendulum(倒立摆)和 BipedalWalker(双足步行机器人)两个经典环境中让你亲手训练:前者只需几百步,后者则需要数十万步——亲眼见证 agent 从「站都站不稳」到「稳稳走完全程」的成长曲线,成就感十足。(5)PPO(近端策略优化)—— 当前最主流的 RL 算法PPO 是 OpenAI、DeepMind 等顶级实验室在训练大规模模型时的首选 RL 算法。它的核心思想是「保守的策略更新」:每次更新不能离旧策略太远,否则训练会崩溃。课程对 PPO 的讲解结合了理论推导和实际代码,让你理解 Clipped Surrogate Objective(裁剪替代目标)背后的直觉,同时上手用 PPO 训练自己的智能体。## 技术架构:Jupyter Notebook 即教室这个仓库不是一个可以直接运行的项目,而是一个交互式学习环境。每一讲都设计为「先讲解原理 → 给出核心代码框架 → 让你补全关键函数 → 运行验证」的闭环。目录结构按算法类型组织:| 目录 | 内容 | 代表算法 ||------|------|---------|| dynamic-programming/ | 动态规划 | Policy Iteration, Value Iteration || monte-carlo/ | 蒙特卡洛方法 | First-visit MC, Off-policy MC || temporal-difference/ | 时序差分 | Q-Learning, Sarsa, Expected Sarsa || discretization/ | 状态空间离散化 | 网格离散化 + Q-Learning || tile-coding/ | 瓦片编码 | 泛化性更强的状态离散化 || dqn/ | 深度 Q 网络 | DQN + Unity ML-Agents || hill-climbing/ | 爬山算法 | 随机策略搜索 + 自适应噪声 || cross-entropy/ | 交叉熵方法 | CEM 在连续动作空间的应用 || reinforce/ | 策略梯度 | REINFORCE || ddpg-pendulum/ | DDPG 倒立摆 | Actor-Critic + DQN 技巧 || ddpg-bipedal/ | DDPG 双足步行 | 真实连续控制任务 || p1_navigation/ | Unity Banana Collector | DQN 项目实战 || p2_continuous-control/ | 机械臂连续控制 | DDPG/PPO 项目实战 || p3_collab-compet/ | 多智能体网球对打 | MADDPG 项目实战 || cheatsheet/ | 算法速查表 | PDF + LaTeX 源码 |代码主要使用 PyTorch 0.4(发布于 2018 年)和 Python 3 编写。核心依赖包括 PyTorch、TensorFlow 1.7、Numpy、OpenAI Gym,以及可选的 Unity ML-Agents(用于 Unity 仿真环境)。python/unityagents 子包提供了与 Unity 环境通信的 Python API,封装了环境启动、状态获取、动作发送等底层逻辑。## 上手门槛:适合谁,不适合谁适合你,如果:- 有 Python 基础,了解基本的概率和线性代数,能看懂「期望值」「梯度下降」这些术语- 对 RL 感兴趣,想从理论到代码完整理解主流算法,而不是停留在「调 API」层面- 正在准备 RL 相关面试或研究,希望通过大量练习题(Labs)巩固知识体系不太适合你,如果:- 期待一行命令直接跑出效果——这不是一个开箱即用的工具库,你需要跟着 Notebooks 一步步写代码- 想要最新的 RL 算法(SAC、TD3、IMPALA 等 2019 年之后的进展)—— 这个仓库最后一次更新停在 2023 年,PPO 部分标注为「即将上线」- 没有 GPU 环境——虽然基础实验 CPU 可跑,但 DQN 和 DDPG 的神经网络训练在 GPU 上会快 5-10 倍## 局限与注意事项代码老化是最大的坑。 2025 年回头看,PyTorch 0.4 和 TensorFlow 1.7 都已经是 7 年前的版本了,很多 API 早已变更。直接 pip install -r requirements.txt 大概率会报错。建议在 Python 3.6 虚拟环境中操作,或自行升级到新版 PyTorch(课程的核心逻辑不受版本影响)。Unity ML-Agents 环境配置复杂。 p1/p2/p3 三个实战项目依赖 Unity Editor 导出的 Linux 仿真环境,Udacity 官方提供了预编译的 Linux 可执行文件,但配置路径需要注意。另外,Unity ML-Agents 仓库本身也经历了重大 API 变更,配套的 python/unityagents 代码在运行新版 Unity 环境时可能存在兼容性问题。「纳米学位」付费项目已停售。 这个 GitHub 仓库的付费课程内容已于 2023 年底下架,目前仓库中的全部材料均为免费开源状态——相当于 Udacity 送给大家的遗产。所以你现在不需要花 1699 美元,也能获得这套完整的学习资料。## 行业意义:一份标注清晰的 RL 知识地图深度强化学习在 2018-2024 年间渗透到了游戏 AI、机器人控制、自动驾驶、金融交易等众多领域。这套课程的独特价值在于覆盖了从「经典 RL 数学」到「深度 RL 工程」的完整光谱:- 入门者:从动态规划出发,建立对 RL 核心概念(状态、动作、奖励、策略、价值函数)的直觉- 进阶者:通过 DQN→DDPG→PPO 的演进,理解深度 RL 在连续控制任务中的技术路线- 研究者:cheatsheet/ 目录下的 LaTeX 源码提供了所有核心算法的数学公式速查,是写论文、做 PPT 的利器MIT License 开源意味着任何人都可以 fork 这套代码,将其嵌入自己的课程、博客或公司内训。作为学习素材,它的组织方式(理论 → 代码框架 → 练习 → 解答)经过数万名学员验证,是目前公开可获取的 RL 学习路径中,代码与理论结合最紧密的资源之一。## 总结Deep Reinforcement Learning Nanodegree 是一个「教育产品」,而非「生产级工具」。它的价值不在于提供了多么先进的算法实现,而在于用精心设计的练习题(Labs)和结构化的代码框架,把强化学习从高深莫测的论文变成了有章可循的学习路径。无论你是 AI 爱好者想了解 RL 的核心思想,还是开发者想系统掌握 DQN、DDPG、PPO 等主流算法的工程实现,这套材料都值得你花时间完整过一遍——前提是你愿意动手写代码,而不是只期待一键运行的效果。---本项目最后一次活跃更新:2023 年 11 月(push 到 master 分支)。课程配套的纳米学位付费项目已下架,仓库现有内容完全免费开源。