强化学习基础:马尔可夫决策过程(MDP)

好,咱们正式开始聊强化学习的核心框架。

你想想看,机器人要在未知环境里做决策,每一步都得考虑「现在该干啥」和「未来会怎样」。这听起来是不是有点像下棋?你走一步,对手回一步,然后你根据棋盘状态决定下一步。强化学习里,这个「下棋」的过程被抽象成了一个数学模型——马尔可夫决策过程,简称 MDP。

我个人习惯把 MDP 理解为「带记忆的决策游戏」。为什么说带记忆?因为 MDP 有一个关键假设:未来只取决于当前状态,跟过去无关。这就是马尔可夫性。嗯,这里要注意,这个假设在真实世界里不一定成立,但它是我们简化问题的利器。

MDP 的五要素

一个标准的 MDP 由五个东西组成。我当年刚接触时觉得这五个概念太抽象,后来在项目中调机器人抓取时才发现,其实每个概念都对应着真实世界里的一个东西。

要素 符号 通俗理解
状态 S 机器人当前「看到」的一切
动作 A 机器人能做的操作
奖励 R 环境给机器人的反馈分数
策略 π 机器人的决策规则
价值函数 V 或 Q 对未来的「估值」

状态:机器人眼里的世界

状态就是机器人当前所处的「快照」。比如一个移动机器人,它的状态可能是当前位置坐标 (x, y)、朝向角度 θ、电池电量。我做过一个仓储机器人项目,状态里还得加上「当前是否载货」这个布尔值。

状态设计的好坏,直接决定了学习能不能收敛。我曾经犯过一个错:把摄像头原始像素全塞进状态里,结果维度爆炸,训练了三天都没收敛。后来我把像素降维成几个关键特征,效果立竿见影。

避坑指南:状态空间不要太大,也不要太小。太大导致学习慢,太小导致信息不足。我一般遵循「能解决问题的最小状态集」原则。

动作:机器人能做什么

动作就是机器人可以执行的操作。对于机械臂,动作可能是「关节1旋转30度」;对于自动驾驶小车,动作可能是「油门踩0.5,方向盘左转15度」。

动作可以是离散的(左转、右转、直行),也可以是连续的(转向角度精确到小数点后两位)。离散动作好处理,但连续动作更贴近真实世界。我个人习惯在项目初期先用离散动作验证可行性,再切换到连续动作提升精度。

奖励:环境的反馈信号

奖励是强化学习的「指挥棒」。机器人做对了,给正奖励;做错了,给负奖励。说白了,奖励函数就是告诉机器人「什么是对的」。

我见过很多新手把奖励函数设计得太复杂,结果机器人学会了「钻空子」。比如你给机器人设了「到达目标点 +10,碰到障碍物 -1」,它可能为了避开障碍物绕远路,反而浪费更多时间。所以奖励设计要简洁、明确、无歧义。

我的经验:奖励函数最好只包含 2-3 个核心指标。多了反而让机器人困惑。我曾经在项目中用了 7 个奖励项,结果机器人学会了原地打转——因为原地打转能获得多个小奖励的叠加。

策略:机器人的决策规则

策略 π 就是机器人的「大脑」。它告诉机器人在某个状态下应该选哪个动作。策略可以是确定性的(状态 s 下永远选动作 a),也可以是随机性的(状态 s 下有 70% 概率选 a,30% 概率选 b)。

随机策略在探索阶段特别有用。你想想看,如果机器人永远选它认为最好的动作,那它永远发现不了更好的选择。所以训练初期,我通常让策略带点随机性,后期再逐渐收敛到确定性策略。

价值函数:对未来的估值

价值函数是强化学习里最核心的概念之一。它回答一个问题:「我现在处于这个状态,未来能拿到多少总奖励?」

有两种价值函数:

  • 状态价值函数 V(s):从状态 s 开始,按照策略 π 行动,未来能获得的期望总奖励。
  • 动作价值函数 Q(s, a):在状态 s 下执行动作 a,然后按照策略 π 行动,未来能获得的期望总奖励。

Q 函数比 V 函数多了一个「当前动作」的信息,所以在做决策时更直接。我常用的 DQN 算法就是基于 Q 函数的。

核心公式(贝尔曼方程):
V(s) = R(s) + γ * Σ P(s'|s,a) * V(s')
其中 γ 是折扣因子,控制机器人是「目光短浅」还是「高瞻远瞩」。

MDP 的完整流程

咱们把上面这些概念串起来,看看 MDP 到底怎么运行的:

  1. 机器人处于状态 s
  2. 根据策略 π,选择动作 a
  3. 环境执行动作 a,返回新状态 s' 和奖励 r
  4. 机器人更新自己的策略和价值函数
  5. 重复步骤 1-4,直到任务完成

这个循环就是强化学习的「学习-执行」闭环。我刚开始做轨迹规划时,总觉得这个循环太简单,后来才发现,真正的难点在于如何高效地更新策略和价值函数。

状态 s 动作 a 环境 策略 π 价值函数 V/Q 奖励 r, 新状态 s' MDP 核心循环:状态 → 动作 → 环境反馈 → 更新策略

这张图展示了 MDP 的核心循环。你看,策略 π 决定动作 a,环境反馈奖励 r 和新状态 s',然后价值函数和策略根据反馈更新。这个循环不断重复,机器人的表现就会越来越好。

避坑指南:我曾经在项目中忽略了「折扣因子 γ」的调参。γ 太大(接近 1),机器人会过度关注远期奖励,导致训练不稳定;γ 太小(接近 0),机器人变得短视,只关注眼前利益。我一般从 0.9 开始调,根据任务复杂度上下浮动。

好了,MDP 的基础概念就聊到这里。记住一句话:强化学习的本质,就是在 MDP 框架下找到最优策略。后面的章节我们会在这个框架上搭建各种算法,从 Q-learning 到策略梯度,一步步深入。

可可精品资料库