2、强化学习基础回顾:马尔可夫决策过程、策略、价值函数、贝尔曼方程、探索与利用权衡、常见算法分类(基于值、基于策略、Actor-Critic)

深度强化学习工程化项目的落地,要求工程师不仅会调用算法库,更要理解算法背后的数学假设与工程约束。本章作为基础回顾,聚焦于将强化学习的核心概念转化为工程决策的语言:马尔可夫决策过程(MDP)定义了问题边界,策略与价值函数构成了学习的目标体系,贝尔曼方程提供了迭代求解的数学工具,探索与利用的权衡则直接决定了训练效率与最终性能。我们将从工程视角重新审视这些概念,并梳理基于值、基于策略与 Actor-Critic 三大算法族的设计逻辑与适用场景,为后续章节的实战项目打下坚实的认知基础。

强化学习核心概念与算法分类工程视图 马尔可夫决策过程 (MDP) • 状态 S, 动作 A, 奖励 R • 转移概率 P(s'|s,a) • 折扣因子 γ ∈ [0,1] • 马尔可夫性质: P(s_t+1|s_t,a_t) 策略 π(a|s) • 确定性策略: a = μ(s) • 随机策略: a ~ π(·|s) • 目标: 最大化期望回报 • 回报 G_t = Σγ^k r_t+k 价值函数 • V_π(s) = E[G_t|s_t=s] • Q_π(s,a) = E[G_t|s_t=s,a_t=a] • Advantage A = Q - V • 用于评估策略优劣 贝尔曼方程 V(s) = E[r + γV(s')] Q(s,a) = E[r + γmax Q(s',a')] • 动态规划的基础 • 迭代求解的收敛保证 探索 vs 利用 • ε-greedy: 以ε概率随机探索 • UCB: 置信上界选择 • 熵正则化: 保持策略多样性 • 温度参数 τ 控制随机性 常见算法分类 基于值 DQN, DDQN, DDPG 基于策略 REINFORCE, PPO Actor-Critic A2C, A3C, SAC, TD3

2.1 马尔可夫决策过程:问题建模的工程边界

在工程化项目中,MDP 不仅是数学定义,更是对真实系统进行抽象和边界划分的工具。一个完整的 MDP 由五元组 (S, A, P, R, γ) 构成,其中状态空间 S 定义了智能体可观测的环境信息,动作空间 A 定义了可执行的控制指令,状态转移概率 P(s'|s,a) 描述了环境对动作的响应规律,奖励函数 R(s,a,s') 则量化了每一步决策的即时反馈,折扣因子 γ 平衡了短期收益与长期回报的重要性。工程实践中,MDP 建模的核心挑战在于状态空间的合理设计——过细的状态划分会导致维度灾难,过粗则可能丢失关键决策信息。

工程判断方法:在构建 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())
风险提示:贝尔曼方程中的 max 操作会导致过估计问题,尤其在函数逼近场景下。工程中常采用 Double DQN 或 Clipped Double Q-learning 来缓解这一偏差。此外,目标网络的软更新参数 τ 通常设为 0.005~0.01,过大的 τ 会导致训练不稳定。

2.4 探索与利用权衡:训练策略的调优艺术

探索与利用的平衡是强化学习训练中最具工程挑战性的问题之一。过度探索会导致样本效率低下,而过度利用则可能陷入局部最优。常用的探索策略包括 ε-greedy(以 ε 概率随机动作)、UCB(置信上界)、熵正则化(在策略损失中加入熵项)以及参数空间噪声(如 NoisyNet)。在工程实践中,探索策略的选择需要根据任务特性动态调整:训练初期应加大探索力度,后期逐渐降低。

实战经验:在连续控制任务中,SAC 算法通过熵系数 α 自动调节探索程度,避免了手动衰减 ε 的繁琐调参。对于离散动作空间,建议使用 ε-greedy 并配合 ε 的线性或指数衰减,衰减速率通常设置为训练总步数的 1/10 到 1/5 完成从 1.0 到 0.01 的过渡。

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 个离散动作(左移/右移)。

  1. 初始现象:随机策略下,杆子在 200 步内倒下,平均回报约 20。
  2. 关键参数:DQN 使用两层 64 单元网络,学习率 1e-3,ε 从 1.0 衰减至 0.01;PPO 使用 clip=0.2,学习率 3e-4;SAC 使用自动熵调节,学习率 3e-4。
  3. 分析判断:DQN 在 5000 步后达到 200 分满分,PPO 需要 8000 步,SAC 需要 6000 步。DQN 收敛最快但稳定性稍差,PPO 训练曲线最平滑。
  4. 实际操作:对 DQN 增加 Double DQN 和 Dueling 结构后,训练速度提升 20%;对 PPO 调整 GAE 参数 λ=0.95 后,方差降低 15%。
  5. 结果对比:最终三种算法均能达到满分,但 DQN 对随机种子敏感,SAC 对奖励缩放敏感。
  6. 复盘经验:对于简单离散任务,DQN 足够;若需迁移到连续控制,建议直接使用 SAC 或 TD3,避免从 DQN 改造的额外成本。
常见误区:许多初学者在工程中盲目堆叠算法复杂度,却忽略了基础概念的调优。实际上,调整奖励函数形状、优化状态归一化、合理设置折扣因子 γ(通常 0.99~0.995)往往比更换算法带来更显著的性能提升。此外,训练过程中的梯度裁剪(clip_norm=0.5)和网络权重初始化(Xavier 或 He)也是保证稳定性的关键细节。