跳转至

强化学习

强化学习机制

核心思想是:智能体(Agent)通过与环境(Environment)不断进行交互(试错),学习如何做出决策,以获得最大的累积奖励。

强化学习的几个核心要素:
智能体 (Agent):负责做出决策的AI大脑(比如游戏里的马里奥、自动驾驶汽车)。
环境 (Environment):智能体所处的、能与之互动的世界(比如游戏关卡、真实的公路)。
状态 (\(S_t\)):环境在时间 \(t\) 给出的当前情况(比如马里奥看到的前方画面)。
动作 (\(A_t\)):智能体在当前状态下选择的反应(比如向左走、跳跃)。
* 奖励 (\(R_{t+1}\)):环境对智能体刚才动作的反馈打分(比如吃到金币得+1分,掉进坑里得-1分)。

学习路线

以下学习路线理论均参考蘑菇书(EasyRL)、实践部分参考磨菇书和仓库Reinforcement_Learning。 蘑菇书的目录结构在中间部分(第四章到第九章)出现了一个在很多教程中常见的“跳跃”。它将策略梯度(第4章)和PPO(第5章)放在了 DQN(第6-8章)和 A2C(第9章)之前。从学习者的认知规律来看,由于你在第三章刚刚学完基于价值的 Q-learning,直接顺延去学基于深度学习的 DQN 会顺畅得多;另外,PPO 本质上是 Actor-Critic(演员-评论员)架构的进阶版,如果在懂 A2C(第9章)之前直接去啃 PPO(第5章),会觉得十分吃力。
因此重新梳理了这本教程的五步学习路线,将章节进行了重新编排,并明确了每个阶段的实践目标:

第一阶段:夯实马尔可夫与表格型基石

这个阶段的核心是搞懂“状态、动作、奖励”如何在数学上流转,暂时不碰神经网络。

  • 理论 → 📒 RL基础与MDP笔记
  • 对应章节:第一章(基础) \(\rightarrow\) 第二章(MDP) \(\rightarrow\) 第三章(表格型方法)
  • 学习重点:理解贝尔曼方程;明白 Q-Table 是如何通过试错一步步更新的。

  • 实践 → 📒 表格型方法笔记

  • 跑通配套代码值迭代算法Sarsa蒙特卡洛
  • 核心项目攻坚:完成 Q-learning算法实战。使用Q-learning解决悬崖寻路问题

第二阶段:跨越到深度学习(基于价值)

  • 理论 → 📒 DQN系列算法笔记
    注意:这里建议直接跳到第六章。 当状态太多(比如几十万个),表格装不下时,自然而然需要引入神经网络来代替表格,这就是 DQN。
  • 对应章节:第六章(DQN基本概念) \(\rightarrow\) 第七章(DQN进阶技巧)
  • 学习重点:理解 DQN 成功的两大基石——经验回放(Replay Buffer)和目标网络(Target Network)。

  • 实践

  • 跑通配套代码:先跑通基础 DQN,然后观察 Double DQNDueling DQN 等进阶技巧是如何提升稳定性的。
  • 核心项目攻坚:完成 DQN算法实战。尝试自己调整神经网络的层数和经验回放池的大小,观察训练曲线的变化。
  • 达成效果:掌握强化学习与深度学习结合的“Hello World”,能够解决离散动作空间下的复杂任务(如控制小车倒立摆)。
  • 代码学习
对应仓库目录 核心算法 解决的核心问题 / 痛点 实战建议与目标
01_CartPole-reinforcement-learning 基础 DQN 离散状态空间太大,表格装不下,引入神经网络拟合 Q 值。 必练:重点搞懂经验回放池 (Replay Memory)目标网络 (Target Network) 是如何用代码实现的。
02_CartPole_DDQN Double DQN 解决基础 DQN 容易“盲目乐观”(高估未来 Q 值)的问题。 观察:对比 01 和 02 的代码,看看“动作选择”与“价值计算”分离只需改动哪几行代码。
03_CartPole...Dueling_DDQN Dueling DQN 优化网络结构,分别评估“当前状态好不好”和“这个动作好不好”。 了解:学习如何通过修改神经网络的输出层架构来提升强化学习的性能。
05_CartPole...PER_D3QN PER_D3QN 随机抽样效率低,让 AI 优先学习那些“出乎意料”的经验。 进阶:了解优先级经验回放 (PER) 以及它背后的 SumTree 数据结构(代码略有难度,可作为选修)。
06_CartPole...CNN
07_Pong...DQN_CNN
DQN + CNN 状态不再是简单的几个坐标数组,而是真正的游戏画面像素 实践:学习如何用卷积神经网络(CNN)提取图像特征,然后把特征喂给 DQN 决策网络。

第三阶段:策略流派

  • 理论 → 📒 策略梯度笔记 | Actor-Critic笔记 | PPO笔记
    注意:现在调头回到第四、九、五章。 DQN 只能处理离散动作(比如上下左右),如果面临连续动作(比如方向盘转多少度),就需要直接优化“策略”本身。
  • 对应章节:第四章(策略梯度) \(\rightarrow\) 第九章(演员-评论员 A2C) \(\rightarrow\) 第五章(近端策略优化 PPO)
  • 学习重点:理解为什么策略梯度方差大(第4章),A2C 是如何通过引入“评论员”来降低方差的(第9章),以及 PPO 是如何限制更新步长防止模型崩盘的(第5章)。

  • 实践

  • 跑通配套代码:重点调试 A2CPPO。PPO 是目前工业界(包括大模型 RLHF)最核心的算法,务必逐行理解其代码逻辑,尤其是目标函数的计算。
  • 达成效果:掌握目前主流的深度强化学习架构,理解 Actor-Critic 思想。
  • 代码学习:
对应仓库目录 核心算法 解决的核心问题 / 痛点 实战建议与目标
08_Pong-v0_Policy_gradient PG (REINFORCE) 应对高维或连续动作空间,直接对策略网络进行梯度上升。 体验:跑一下纯策略梯度算法,感受它的“高方差”和极慢的收敛速度,理解为什么需要进阶算法。
09_Pong-v0_A2C A2C PG 方差太大,引入 Critic(评论员网络)给 Actor(演员网络)打分。 重点:仔细研读 Actor 和 Critic 是如何配合计算 Advantage(优势函数)来指导更新的。
10_Pong-v0_A3C A3C 打破经验数据的时间相关性,多开几个游戏副本同时训练。 了解:理解多线程异步 (Asynchronous) 训练和分布式强化学习的基本思想。
11_Pong-v0_PPO PPO 防止策略网络更新时“步子迈得太大”导致模型直接崩溃。 核心必练:逐行读懂 PPO 中的 Clip(截断)机制。这是大模型 RLHF 及目前各大 AI 公司的核心底座算法。

第四阶段:连续控制与高级难题

  • 理论 → 📒 DDPG与连续控制笔记 | 稀疏奖励与模仿学习笔记

  • 对应章节:第八章(DQN连续动作) \(\rightarrow\) 第十二章(DDPG) \(\rightarrow\) 第十章(稀疏奖励) \(\rightarrow\) 第十一章(模仿学习)

  • 学习重点:掌握确定性策略梯度(DDPG);了解如果环境很难给出奖励(比如走迷宫走到终点才给1分,中间全是0分)该怎么引导智能体。

  • 实践

  • 核心项目攻坚:完成 DDPG算法实战。这是你接触的第一个专门针对连续动作空间的大型实战。
  • 达成效果:具备解决机器人控制等连续动作任务的能力,了解处理稀疏奖励的进阶手段。
  • 代码学习:
对应仓库目录 核心算法 解决的核心问题 / 痛点 实战建议与目标
LunarLander-v2_PPO PPO 复杂应用 解决复杂的离散/连续混合控制(控制登月舱在重力下喷气平稳降落)。 观察:观察模型如何学会在重力、惯性等多重物理约束下找到平衡策略。
BipedalWalker-v3_PPO PPO 连续控制 解决纯连续动作空间问题(输出机器人关节的具体扭矩大小,如0.58N·m)。 学习:研究代码中 PPO 是如何通过输出高斯分布(均值和方差)来控制连续变量的。

第五阶段:前沿视野开拓

  • 对应章节:第十三章(AlphaStar)及之后的论文解读。
  • 学习建议:这一部分不需要写代码。把它们当作扩展阅读,了解强化学习在星际争霸、MineCraft 这种极其复杂的环境里是如何应用的,以及“世界模型”这种前沿概念。