强化学习基础:马尔可夫决策过程(MDP)
好,咱们正式开始聊强化学习的核心框架。
你想想看,机器人要在未知环境里做决策,每一步都得考虑「现在该干啥」和「未来会怎样」。这听起来是不是有点像下棋?你走一步,对手回一步,然后你根据棋盘状态决定下一步。强化学习里,这个「下棋」的过程被抽象成了一个数学模型——马尔可夫决策过程,简称 MDP。
我个人习惯把 MDP 理解为「带记忆的决策游戏」。为什么说带记忆?因为 MDP 有一个关键假设:未来只取决于当前状态,跟过去无关。这就是马尔可夫性。嗯,这里要注意,这个假设在真实世界里不一定成立,但它是我们简化问题的利器。
MDP 的五要素
一个标准的 MDP 由五个东西组成。我当年刚接触时觉得这五个概念太抽象,后来在项目中调机器人抓取时才发现,其实每个概念都对应着真实世界里的一个东西。
| 要素 | 符号 | 通俗理解 |
|---|---|---|
| 状态 | S | 机器人当前「看到」的一切 |
| 动作 | A | 机器人能做的操作 |
| 奖励 | R | 环境给机器人的反馈分数 |
| 策略 | π | 机器人的决策规则 |
| 价值函数 | V 或 Q | 对未来的「估值」 |
状态:机器人眼里的世界
状态就是机器人当前所处的「快照」。比如一个移动机器人,它的状态可能是当前位置坐标 (x, y)、朝向角度 θ、电池电量。我做过一个仓储机器人项目,状态里还得加上「当前是否载货」这个布尔值。
状态设计的好坏,直接决定了学习能不能收敛。我曾经犯过一个错:把摄像头原始像素全塞进状态里,结果维度爆炸,训练了三天都没收敛。后来我把像素降维成几个关键特征,效果立竿见影。
动作:机器人能做什么
动作就是机器人可以执行的操作。对于机械臂,动作可能是「关节1旋转30度」;对于自动驾驶小车,动作可能是「油门踩0.5,方向盘左转15度」。
动作可以是离散的(左转、右转、直行),也可以是连续的(转向角度精确到小数点后两位)。离散动作好处理,但连续动作更贴近真实世界。我个人习惯在项目初期先用离散动作验证可行性,再切换到连续动作提升精度。
奖励:环境的反馈信号
奖励是强化学习的「指挥棒」。机器人做对了,给正奖励;做错了,给负奖励。说白了,奖励函数就是告诉机器人「什么是对的」。
我见过很多新手把奖励函数设计得太复杂,结果机器人学会了「钻空子」。比如你给机器人设了「到达目标点 +10,碰到障碍物 -1」,它可能为了避开障碍物绕远路,反而浪费更多时间。所以奖励设计要简洁、明确、无歧义。
策略:机器人的决策规则
策略 π 就是机器人的「大脑」。它告诉机器人在某个状态下应该选哪个动作。策略可以是确定性的(状态 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 到底怎么运行的:
- 机器人处于状态 s
- 根据策略 π,选择动作 a
- 环境执行动作 a,返回新状态 s' 和奖励 r
- 机器人更新自己的策略和价值函数
- 重复步骤 1-4,直到任务完成
这个循环就是强化学习的「学习-执行」闭环。我刚开始做轨迹规划时,总觉得这个循环太简单,后来才发现,真正的难点在于如何高效地更新策略和价值函数。
这张图展示了 MDP 的核心循环。你看,策略 π 决定动作 a,环境反馈奖励 r 和新状态 s',然后价值函数和策略根据反馈更新。这个循环不断重复,机器人的表现就会越来越好。
好了,MDP 的基础概念就聊到这里。记住一句话:强化学习的本质,就是在 MDP 框架下找到最优策略。后面的章节我们会在这个框架上搭建各种算法,从 Q-learning 到策略梯度,一步步深入。
可可精品资料库