2、马尔可夫决策过程:MDP五元组、状态转移概率、奖励函数、折扣因子、策略和价值函数

好,咱们正式开始啃强化学习里最核心的一块骨头——马尔可夫决策过程,简称 MDP。

说实话,我刚开始接触强化学习那会儿,看了不少论文,满篇的公式和符号,头都大了。后来我发现,MDP 其实就是一套描述“智能体怎么跟环境打交道”的数学框架。你把它想明白了,后面什么 Q-learning、策略梯度,理解起来就顺了。

2.1 MDP 五元组:一个完整的决策故事

一个 MDP 可以用五个要素来定义,也就是我们常说的五元组。我个人习惯把它记作 (S, A, P, R, γ),咱们一个一个拆开看。

符号 含义 大白话解释
S 状态空间 (State Space) 智能体当前所处的所有可能情况
A 动作空间 (Action Space) 智能体可以做的所有操作
P 状态转移概率 (State Transition Probability) 做了动作后,环境会变成什么样
R 奖励函数 (Reward Function) 这一步做得好不好,给个分数
γ 折扣因子 (Discount Factor) 未来的奖励,现在值多少钱

你想想看,机器人路径规划里,状态 S 就是机器人当前的位置坐标,动作 A 就是“往前走一步”、“向左转”这些指令。环境根据你的动作,告诉你新位置在哪,这就是 P。如果撞墙了,给个负奖励,这就是 R

2.2 状态转移概率:环境的不确定性

状态转移概率 P(s' | s, a) 描述的是:你在状态 s 执行了动作 a 之后,环境会把你带到状态 s' 的概率。

这里有个坑,我必须要提醒你。很多初学者以为动作是确定性的,比如“我让机器人往前走一步,它肯定往前走一步”。但现实世界不是这样的。

⚠️ 我曾经踩过的坑: 在真实机器人上做路径规划时,地面有摩擦、轮子会打滑。你发出“前进”指令,它可能只前进了 0.9 米,甚至偏了一点。如果你在仿真里假设转移概率是 1.0,那代码一上真机,立马翻车。

所以,P 必须是一个概率分布。比如:

P(s' = 前方格子 | s = 当前格子, a = 前进) = 0.8
P(s' = 左侧格子 | s = 当前格子, a = 前进) = 0.1
P(s' = 右侧格子 | s = 当前格子, a = 前进) = 0.1

嗯,这才符合真实情况。

2.3 奖励函数:告诉智能体什么是对的

奖励函数 R(s, a, s') 是智能体学习的“指挥棒”。说白了,你设计什么样的奖励,智能体就学会什么样的行为。

我见过不少项目,算法本身没问题,但奖励函数设计得一塌糊涂,结果智能体学会了“钻空子”。比如你让机器人去送快递,奖励只给“到达目的地”,它可能学会了原地转圈,因为转圈也能触发某些奖励信号。

💡 我的个人经验: 奖励函数要稀疏但明确。路径规划里,我通常这样设计:
  • 到达目标点:+100
  • 撞到障碍物:-10
  • 每走一步:-1(鼓励走最短路径)
这样机器人就会学会“尽快到达,别撞墙”。

2.4 折扣因子:未来的钱不值钱

折扣因子 γ ∈ [0, 1] 决定了智能体有多“短视”。

  • γ = 0:只看眼前利益,只关心下一步的奖励。
  • γ = 1:目光长远,未来的奖励和现在一样重要。
  • γ = 0.9:比较折中,未来的奖励会打点折扣。

为什么会这样?因为很多任务里,你希望智能体不要只顾眼前。比如路径规划,如果 γ 太小,机器人可能选择一条“先撞墙再绕路”的路径,因为撞墙的负奖励是未来的,它不在乎。

我建议初学者先设 γ = 0.950.99,效果一般都不错。

2.5 策略:智能体的行为准则

策略 π(a | s) 就是智能体的“大脑”。它告诉智能体:在状态 s 下,你应该选择哪个动作 a

策略分两种:

  • 确定性策略π(s) = a,给定状态,动作是唯一的。比如“看到红灯就刹车”。
  • 随机性策略π(a | s) 是一个概率分布。比如“有 80% 概率前进,20% 概率左转”。

路径规划里,我常用确定性策略做最终部署,但训练时用随机性策略,让机器人多探索探索。

2.6 价值函数:评估状态的好坏

价值函数是 MDP 里最核心的概念之一。它回答一个问题:“我现在这个状态,到底值多少钱?”

价值函数分为两种:

名称 符号 含义
状态价值函数 V(s) 从状态 s 开始,按照策略 π 行动,能获得的累计折扣奖励的期望
动作价值函数 Q(s, a) 在状态 s 执行动作 a 后,再按照策略 π 行动,能获得的累计折扣奖励的期望

公式长这样:

V(s) = E[ R_t + γ * V(s_{t+1}) | s_t = s ]
Q(s, a) = E[ R_t + γ * max_{a'} Q(s_{t+1}, a') | s_t = s, a_t = a ]

别被公式吓到。说白了,V(s) 就是“站在这个位置,未来能拿多少分”。Q(s, a) 就是“在这个位置,做这个动作,未来能拿多少分”。

🔑 核心理解: 强化学习的本质,就是通过不断与环境交互,去估计出准确的 V(s)Q(s, a),然后根据这些价值函数来改进策略 π

嗯,到这里,MDP 的五元组、状态转移、奖励、折扣、策略和价值函数,咱们都过了一遍。你想想看,其实整个强化学习就是在玩这个框架:定义好 (S, A, P, R, γ),然后想办法找到最优的 π

下一章,咱们会聊怎么求解这个 MDP,也就是传说中的“动态规划”和“贝尔曼方程”。到时候你会发现,今天这些概念,一个都跑不掉。