2、强化学习基础回顾:马尔可夫决策过程、策略、价值函数、贝尔曼方程、探索与利用权衡、常见算法分类(基于值、基于策略、Actor-Critic)
深度强化学习工程化项目的落地,要求工程师不仅会调用算法库,更要理解算法背后的数学假设与工程约束。本章作为基础回顾,聚焦于将强化学习的核心概念转化为工程决策的语言:马尔可夫决策过程(MDP)定义了问题边界,策略与价值函数构成了学习的目标体系,贝尔曼方程提供了迭代求解的数学工具,探索与利用的权衡则直接决定了训练效率与最终性能。我们将从工程视角重新审视这些概念,并梳理基于值、基于策略与 Actor-Critic 三大算法族的设计逻辑与适用场景,为后续章节的实战项目打下坚实的认知基础。
2.1 马尔可夫决策过程:问题建模的工程边界
在工程化项目中,MDP 不仅是数学定义,更是对真实系统进行抽象和边界划分的工具。一个完整的 MDP 由五元组 (S, A, P, R, γ) 构成,其中状态空间 S 定义了智能体可观测的环境信息,动作空间 A 定义了可执行的控制指令,状态转移概率 P(s'|s,a) 描述了环境对动作的响应规律,奖励函数 R(s,a,s') 则量化了每一步决策的即时反馈,折扣因子 γ 平衡了短期收益与长期回报的重要性。工程实践中,MDP 建模的核心挑战在于状态空间的合理设计——过细的状态划分会导致维度灾难,过粗则可能丢失关键决策信息。
2.2 策略与价值函数:学习目标的数学表达
策略 π(a|s) 定义了智能体在状态 s 下选择动作 a 的概率分布,它是强化学习最终要优化的对象。价值函数则从"期望回报"的角度评估状态或状态-动作对的优劣。状态价值函数 V_π(s) 表示从状态 s 出发,遵循策略 π 所能获得的期望折扣回报;动作价值函数 Q_π(s,a) 则进一步考虑了在状态 s 下先执行动作 a、之后遵循策略 π 的期望回报。两者的关系通过优势函数 A(s,a) = Q(s,a) - V(s) 联系起来,优势函数在 Actor-Critic 算法中用于降低策略梯度的方差。
| 价值函数类型 | 数学定义 | 工程用途 | 典型算法 |
|---|---|---|---|
| V(s) | E[G_t | s_t=s] | 评估状态本身的好坏 | DQN 的辅助输出 |
| Q(s,a) | E[G_t | s_t=s, a_t=a] | 选择最优动作 | DQN, DDQN |
| A(s,a) | Q(s,a) - V(s) | 降低策略梯度方差 | A2C, PPO |
2.3 贝尔曼方程:迭代求解的数学引擎
贝尔曼方程揭示了价值函数之间的递归关系:当前状态的价值等于即时奖励加上折扣后的下一状态价值期望。这一性质使得我们可以通过动态规划或时序差分方法迭代逼近真实价值函数。在工程实现中,贝尔曼方程是 Q-learning、DQN 等算法的核心更新规则。对于大规模状态空间,我们使用函数逼近器(如神经网络)来近似价值函数,并通过最小化贝尔曼误差来训练网络参数。
# DQN 中的贝尔曼更新伪代码
target = reward + gamma * max(Q_target(next_state, a'))
loss = MSE(Q_online(state, action), target.detach())
2.4 探索与利用权衡:训练策略的调优艺术
探索与利用的平衡是强化学习训练中最具工程挑战性的问题之一。过度探索会导致样本效率低下,而过度利用则可能陷入局部最优。常用的探索策略包括 ε-greedy(以 ε 概率随机动作)、UCB(置信上界)、熵正则化(在策略损失中加入熵项)以及参数空间噪声(如 NoisyNet)。在工程实践中,探索策略的选择需要根据任务特性动态调整:训练初期应加大探索力度,后期逐渐降低。
2.5 常见算法分类与选型指南
根据优化对象的不同,强化学习算法可分为三大类:基于值的方法(如 DQN、DDQN、Dueling DQN)直接学习最优价值函数,通过贪心策略导出最优动作;基于策略的方法(如 REINFORCE、PPO)直接参数化策略并沿着期望回报的梯度方向优化;Actor-Critic 方法则结合两者,使用 Critic 网络估计价值函数来降低策略梯度的方差,同时使用 Actor 网络更新策略。选型时需考虑任务特性:离散动作空间优先考虑基于值的方法,连续动作空间则更适合基于策略或 Actor-Critic 方法。
| 算法类别 | 适用场景 | 优点 | 缺点 | 工程注意点 |
|---|---|---|---|---|
| 基于值 (DQN) | 离散动作、状态空间大 | 样本效率较高 | 无法处理连续动作 | 经验回放缓冲区大小建议 1e5~1e6 |
| 基于策略 (PPO) | 连续动作、高维策略 | 稳定性好、实现简单 | 样本效率相对低 | clip 参数 ε 通常取 0.2 |
| Actor-Critic (SAC) | 连续动作、需要高探索 | 鲁棒性强、自动调节熵 | 超参数较多 | 学习率建议 3e-4,target_entropy 设为 -dim(A) |
2.6 案例拆解:CartPole 平衡控制的算法对比
以经典的 CartPole 环境为例,我们对比 DQN、PPO 和 SAC 三种算法的工程实现效果。任务目标是通过左右移动小车,保持杆子竖直不倒。状态空间为 4 维连续变量(位置、速度、角度、角速度),动作空间为 2 个离散动作(左移/右移)。
- 初始现象:随机策略下,杆子在 200 步内倒下,平均回报约 20。
- 关键参数:DQN 使用两层 64 单元网络,学习率 1e-3,ε 从 1.0 衰减至 0.01;PPO 使用 clip=0.2,学习率 3e-4;SAC 使用自动熵调节,学习率 3e-4。
- 分析判断:DQN 在 5000 步后达到 200 分满分,PPO 需要 8000 步,SAC 需要 6000 步。DQN 收敛最快但稳定性稍差,PPO 训练曲线最平滑。
- 实际操作:对 DQN 增加 Double DQN 和 Dueling 结构后,训练速度提升 20%;对 PPO 调整 GAE 参数 λ=0.95 后,方差降低 15%。
- 结果对比:最终三种算法均能达到满分,但 DQN 对随机种子敏感,SAC 对奖励缩放敏感。
- 复盘经验:对于简单离散任务,DQN 足够;若需迁移到连续控制,建议直接使用 SAC 或 TD3,避免从 DQN 改造的额外成本。