深度强化学习
Deep_Reinforcement_Learning/Deep_Reinforcement_Learning.md深度强化学习(Deep Reinforcement Learning, DRL)是一个极具挑战性但也充满魅力的领域。它结合了深度学习的感知能力和强化学习的决策能力,是目前通向通用人工智能(AGI)的重要路径之一。
下面这套四阶段学习计划以"理论+代码实践"为主线,因为强化学习的难点往往在于代码的调试(俗称"炼丹")。
第一阶段:夯实基础(先修知识储备)
在直接跳入强化学习之前,确保你具备以下基础,否则后续看论文或推导公式会非常吃力。
- 编程基础:精通 Python。
- 数学基础:
- 线性代数(矩阵运算、特征值)。
- 概率论与数理统计(期望、方差、马尔可夫链、条件概率)。
- 微积分(偏导数、链式法则)。
- 深度学习基础:
- 理解多层感知机(MLP)、卷积神经网络(CNN)的工作原理。
- 理解反向传播(Backpropagation)和梯度下降(Gradient Descent)。
- 熟练使用 PyTorch(目前 DRL 研究和工业界的主流框架)。
第二阶段:经典强化学习(RL)理论
这个阶段暂不涉及深度神经网络,重点是理解强化学习的核心思想和数学框架。
- 核心概念:智能体(Agent)、环境(Environment)、状态(State)、动作(Action)、奖励(Reward)。
- 马尔可夫决策过程(MDP):理解 MDP 的五元组 。
- 贝尔曼方程(Bellman Equation):这是整个强化学习的灵魂,理解状态价值函数 和动作价值函数 。
- 动态规划(Dynamic Programming):策略评估、策略迭代(Policy Iteration)、价值迭代(Value Iteration)。
- 无模型(Model-Free)预测与控制:
- 蒙特卡洛方法(Monte Carlo Methods)。
- 时序差分学习(Temporal Difference, TD Learning)。
- 经典算法:Q-Learning 和 SARSA。
- 实践任务:不使用深度学习框架,纯手工用 NumPy 在 OpenAI Gymnasium 的表格型环境(如 CliffWalking, FrozenLake)中实现 Q-Learning 算法。
第三阶段:深度强化学习进阶(DRL)
1. 基于价值的方法(Value-Based Methods)
主要用于离散动作空间。
- DQN (Deep Q-Network):理解经验回放(Experience Replay)和目标网络(Target Network)两大创新。
- DQN 的改进:Double_DQN(解决过估计)、Dueling_DQN(网络结构优化)、PER(优先经验回放)。
- 集大成者:Rainbow_DQN(融合 DQN + DDQN + Dueling + PER + Multi-step TD + C51 + Noisy Nets)。
- 进阶变种:DRQN(LSTM 应对部分可观测)、QR_DQN(分位数回归 RL)。
- 实践任务:用 PyTorch 实现 DQN,在 Gymnasium 的 CartPole 或 Atari 游戏中训练一个能通关的智能体。
2. 基于策略的方法与演员-评论家算法(Policy-Based & Actor-Critic)
主要用于连续动作空间。
- 策略梯度(Policy Gradient, PG):理解 REINFORCE 算法。
- Actor-Critic (AC) 架构:结合 Value-Based 和 Policy-Based 的优势。Actor 负责选择动作,Critic 负责评估动作。
- NPG(Natural Policy Gradient):限制 KL 散度的数学源头,TRPO 和 PPO 的理论亲爹。
- 前沿主流算法(重点掌握):
3. 混合动作空间
当游戏既需要选离散技能、又需要指定连续参数时(如《王者荣耀》的"放火球+瞄准坐标"):
第四阶段:实战演练与前沿探索
1. 工业级 DRL 库
- Stable Baselines3:基于 PyTorch 的工业级 RL 算法库,API 极其友好。
- Ray RLlib:适合大规模分布式强化学习训练。
2. 多智能体强化学习(MARL)
当环境里有多个智能体时(5v5 电竞、多机器人协同),单机算法直接失效。MARL 引入 CTDE 架构(集中训练,分布式执行) 解决非平稳性问题。
4. 基于模型的强化学习(World Models)
让 AI 在脑海的"潜空间"中做梦推演未来,被视为通往 AGI 的关键路径。
- DreamerV2:分类潜空间封神。
- DreamerV3:Symlog 实现跨域通杀。
- HarmonyDream:端水大师,自适应平衡观测/奖励 Loss。
6. 模仿学习(Imitation Learning)
在奖励函数难以定义时,直接让 AI 模仿专家行为(BC / IRL / GAIL)。
7. 自我对弈 (Self-Play)
左脚踩右脚的极致:神经网络 + MCTS + 虚拟自我对弈,AlphaGo Zero 与 AlphaStar 的灵魂。
📚 推荐学习资源
- 视频课程:
- 李宏毅老师的《深度强化学习》课程:通俗易懂,非常适合入门(B站可搜)。
- CS285 (UC Berkeley): Deep Reinforcement Learning:偏硬核,适合进阶(YouTube/B站有搬运)。
- David Silver 的 RL 课程 (UCL):经典中的经典,主要针对第二阶段的理论。
- 书籍:
- 《Reinforcement Learning: An Introduction》 (Sutton & Barto):强化学习领域的"圣经",必读。
- 《动手学强化学习》 (张伟楠等):结合了 PyTorch 代码,非常适合实操。
- 代码与教程:
- Spinning Up in Deep RL (OpenAI):OpenAI 出品,代码极其干净,是学习 PPO/SAC/DDPG 源码的最佳去处。
完整 46+ 个算法的分层总结与对比详见 深度强化学习算法全图鉴。
子节点
- Deep_Reinforcement_Learning/Deep_Reinforcement_Learning/A2C.md
- Deep_Reinforcement_Learning/Deep_Reinforcement_Learning/Algorithm_Compendium.md
- Deep_Reinforcement_Learning/Deep_Reinforcement_Learning/AlphaZero.md
- Deep_Reinforcement_Learning/Deep_Reinforcement_Learning/Bellman_Equation.md
- Deep_Reinforcement_Learning/Deep_Reinforcement_Learning/DDPG.md
- Deep_Reinforcement_Learning/Deep_Reinforcement_Learning/DQN.md
- Deep_Reinforcement_Learning/Deep_Reinforcement_Learning/Dynamic_Programming.md
- Deep_Reinforcement_Learning/Deep_Reinforcement_Learning/Imitation_Learning.md
- Deep_Reinforcement_Learning/Deep_Reinforcement_Learning/MARL.md
- Deep_Reinforcement_Learning/Deep_Reinforcement_Learning/Model_Based.md
- Deep_Reinforcement_Learning/Deep_Reinforcement_Learning/Monte_Carlo_Methods.md
- Deep_Reinforcement_Learning/Deep_Reinforcement_Learning/Offline_RL.md
- Deep_Reinforcement_Learning/Deep_Reinforcement_Learning/PG.md
- Deep_Reinforcement_Learning/Deep_Reinforcement_Learning/PPO.md
- Deep_Reinforcement_Learning/Deep_Reinforcement_Learning/P_DQN.md
- Deep_Reinforcement_Learning/Deep_Reinforcement_Learning/Ray_RLlib.md
- Deep_Reinforcement_Learning/Deep_Reinforcement_Learning/SAC.md
- Deep_Reinforcement_Learning/Deep_Reinforcement_Learning/Stable_Baselines3.md
- Deep_Reinforcement_Learning/Deep_Reinforcement_Learning/Temporal_Difference_Learning.md
- Deep_Reinforcement_Learning/Deep_Reinforcement_Learning/Visual_RL.md
出链
- [[Bellman_Equation]]
- [[Dynamic_Programming]]
- [[Monte_Carlo_Methods]]
- [[Temporal_Difference_Learning]]
- [[DQN]]
- [[Double_DQN]]
- [[Dueling_DQN]]
- [[PER_DQN]]
- [[Rainbow_DQN]]
- [[DRQN]]
- [[QR_DQN]]
- [[PG]]
- [[A2C]]
- [[NPG]]
- [[PPO]]
- [[PPO_KL]]
- [[PPG]]
- [[SAC]]
- [[DDPG]]
- [[TD3]]
- [[P_DQN]]
- [[MP_DQN]]
- [[SP_DQN]]
- [[Stable_Baselines3]]
- [[Ray_RLlib]]
- [[MARL]]
- [[MAPPO]]
- [[QMIX]]
- [[VDN]]
- [[WQMIX]]
- [[QTRAN]]
- [[VDAC]]
- [[IQL]]
- [[IAC]]
- [[IPPO]]
- [[IDDPG]]
- [[ISAC]]
- [[MADDPG]]
- [[MATD3]]
- [[MASAC]]
- [[COMA]]
- [[MFQ]]
- [[MFAC]]
- [[IC3Net]]
- [[DCG]]
- [[Offline_RL]]
- [[CQL]]
- [[TD3_BC]]
- [[Model_Based]]
- [[DreamerV2]]
- [[DreamerV3]]
- [[HarmonyDream]]
- [[Visual_RL]]
- [[CURL]]
- [[DrQ]]
- [[SPR]]
- [[Imitation_Learning]]
- [[AlphaZero]]
- [[Algorithm_Compendium]]