想象你是一位外卖骑手,每天穿梭在城市的大街小巷。在每个路口,你只需要看当前的定位——“我在哪个街区、还剩多少时间”——就能决定往哪走,不必回忆从早上出发到现在的每一步轨迹。这个“只需关注当下”的直觉,正是马尔可夫决策过程(MDP)的灵魂。MDP 把复杂的决策问题浓缩成一套数学框架:状态、动作、转移概率、奖励和折扣因子。理解了它,就像拿到了揭开强化学习全貌的第一把钥匙——AlphaGo 的落子、自动驾驶的变道、推荐系统的排序,背后都是同一套决策逻辑在运转。

岗位关联

对 AI 从业者来说,MDP 是强化学习和序列决策问题的共同语言。掌握它的定义与性质,等于拿到了理解策略梯度、Q-learning、AlphaGo 等高级算法的地基,是从事智能决策系统工作的必备基础。

目录
  1. 可视化演示
  2. 马尔可夫性质
  3. MDP五元组
  4. 状态转移
  5. 回报与折扣
  6. 策略与决策
  7. 贝尔曼方程
  8. 变体与扩展
  9. 非马尔可夫处理
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

\u5c55\u793aMDP\u4e94\u5143\u7ec4(S,A,P,R,\u03b3)\u7684\u72b6\u6001\u8f6c\u79fb\u56fe\u4e0e\u8d1d\u5c14\u66fc\u65b9\u7a0b\u7684\u4ef7\u503c\u51fd\u6570\u8fed\u4ee3\u6536\u655b\u8fc7\u7a0b\u3002

本节配有交互动效(进入视口后自动加载,约 3KB)。

\u72b6\u6001\u8f6c\u79fb\u6a21\u5f0f 5\u4e2a\u72b6\u6001(S0-S4)\u30012\u4e2a\u52a8\u4f5c(a1/a2)\u3001\u6982\u7387\u8f6c\u79fbP \u7ea2\u8272\u7c92\u5b50=\u5f53\u524d\u6d3b\u8dc3\u8f6c\u79fb\uff0c\u6807\u7b7e\u663e\u793aR\u5956\u52b1 M=(S,A,P,R,\u03b3), P(s\'|s,a)

马尔可夫性质

骑手老张送外卖有个习惯:每到一个路口,只打开手机看当前定位和剩余时间,从不翻今天的完整行驶记录。问他为什么,他说:“我现在在哪儿、有几单要送,往哪走最优,跟两小时前闯没闯过红灯没关系。”这份“只看当下”的洒脱,就是马尔可夫性质的生活版本。

在随机过程理论中,马尔可夫性质用条件概率严格刻画:给定完整的历史状态序列,未来状态的条件分布与只给定最近状态的条件分布完全相同。这意味着历史信息被“压缩”进了当前状态中,不再需要追溯过去的轨迹。对建模者而言,这是巨大的解放——原本需要追踪随时间增长的完整历史,现在只需要维护一个固定维度的状态变量。

马尔可夫性质的数学表达简洁有力:

有了这个性质,骑手老张的决策模型从“无限记忆”变成“瞬时快照”:无论之前跑了多少路,只要告诉我现在在哪,我就能给出最优路线。马尔可夫性质将复杂的历史压缩成当前状态,这是 MDP 一切后续推导的前提。

P(st+1∣st,st−1,…,s0)=P(st+1∣st)\displaystyle P(s_{t+1} \mid s_t, s_{t-1}, \ldots, s_0) = P(s_{t+1} \mid s_t)
这个等式是说:想知道明天在哪,只看今天就够了,昨天的行程不会提供额外信息。这是 MDP 得以高效求解的理论根基。
  1. 左侧历史条件概率$\displaystyle P(s_{t+1} \mid s_t, s_{t-1}, \ldots, s_0)$ 表示给定从最初时刻到现在的全部状态序列,未来时刻处于某个状态的概率。
  2. 右侧马尔可夫简化$\displaystyle P(s_{t+1} \mid s_t)$ 表示只给定当前时刻的状态,未来状态的条件分布。
  3. 等式核心含义$\displaystyle =$ 说明左右两侧概率相等,即历史中更早的信息对未来预测没有额外贡献,当前状态已充分概括过去。

MDP五元组

如果把外卖配送装进一个标准化的决策系统,“五元组”就像这个系统的五张设计图纸。地图标注着所有可能的位置(状态集合),操作面板列出骑手可执行的动作(动作集合),路况模型预测各种选择的后果(转移概率),收入规则说明每单赚多少(奖励函数),还有一张偏好表决定骑手在意眼前暴富还是长期稳定(折扣因子)。

马尔可夫决策过程(MDP)正式定义为五元组:

五张图纸拼在一起,就构成了一台完整的“决策机器”。任何一个可以被这五个零件描述的决策场景——不管是游戏对战、机器人导航还是广告投放——都能用 MDP 这套统一语言来对话和求解。

⟨S,A,P,R,γ⟩\displaystyle \langle S, A, P, R, \gamma \rangle
五元组是 MDP 的“身份证”,任何满足这五个要素的序贯决策问题都可以纳入 MDP 框架统一研究。
  1. 状态集合 S$\displaystyle S$ 表示智能体所有可能处的环境状态,是决策的信息基础。
  2. 动作集合 A$\displaystyle A$ 表示在每个状态下可执行的动作全集,是决策的候选方案。
  3. 转移概率 P$\displaystyle P(s'|s,a)$ 描述在状态 $s$ 执行动作 $a$ 后转移到状态 $s'$ 的概率规律。
  4. 奖励函数 R$\displaystyle R(s,a,s')$ 为每次状态转移打分,是智能体优化目标的直接来源。
  5. 折扣因子 γ$\displaystyle \gamma \in [0,1]$ 表示未来奖励相对当前奖励的权重,γ 越小代表越看重眼前收益。

状态转移

老张每天最头疼的不是路线,而是路况。明明决定从商业区直奔住宅区,可能一路绿灯畅通到达,也可能被婚礼车队堵在半路。他无法百分之百控制结果,只能知道“大概率通畅、小概率拥堵”。这份不可控,正是状态转移概率要刻画的随机性。

MDP 中,状态转移由条件概率函数描述:给定当前状态和所选动作,下一个状态服从一个概率分布。这个分布可以写成转移矩阵,矩阵的行是当前状态与动作的组合,列是可能的下一个状态,每个元素就是转移概率。对固定的 $s$ 和 $a$,所有可能后继状态的概率之和必须等于 1——骑手无论堵不堵车,最终总要到达某个地点。

正式的转移概率定义为:

正是因为有了转移概率,MDP 才能把现实世界的不确定性纳入数学框架。老张不需要精确预知路况,只需要知道概率分布,就能在“平均意义”上做出最优选择——这也正是强化学习中“期望”无处不在的根本原因。

P(s′∣s,a)=Pr⁡(St+1=s′∣St=s,At=a)\displaystyle P(s' \mid s, a) = \Pr(S_{t+1} = s' \mid S_t = s, A_t = a)
这个公式是“路况随机性”的数学化身:同样的起点和同样的行动,结果不一定相同,但每种结果的概率是确定的。
  1. 状态转移函数$\displaystyle P(s' \mid s, a)$ 是 MDP 的核心动态模型,表示在当前状态 $s$ 下选择动作 $a$ 后转移到 $s'$ 的概率。
  2. 随机事件表达$\displaystyle \Pr(S_{t+1} = s' \mid S_t = s, A_t = a)$ 用概率论语言严格定义了这个事件的条件概率。
  3. 归一化约束$\displaystyle \sum_{s' \in S} P(s' \mid s, a) = 1$ 保证每个决策分支的总概率为 1,环境必然产生某个后继状态。

回报与折扣

老张在路口权衡时,心里打的算盘是:眼前这一单能赚 8 元,下一单可能赚 10 元,但那是半小时后的事了,夜长梦多,得打个折扣。于是他把未来的每笔收入都乘上一个小于 1 的系数——这就是折扣因子 γ 的直觉。γ 越接近 1,骑手越愿意为了远期的“大单”牺牲眼前的小利;γ 越接近 0,骑手越是“今朝有酒今朝醉”。

在 MDP 中,智能体的目标是最大化累积回报——从当前时刻开始,把未来的每一步奖励按折扣因子折算后加起来:

无限期任务中,折扣因子还有一个数学上的妙用:它保证无穷级数收敛,让“无限远端”的总收益不再发散为无穷大。老张虽然看不到十年后的终点,但 γ 这把“时间折现尺”让遥远的收益有了有限、可计算的当下价值。

Gt=Rt+1+γRt+2+γ2Rt+3+⋯=∑k=0∞γkRt+k+1\displaystyle G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots = \sum_{k=0}^{\infty} \gamma^k R_{t+k+1}
累积回报回答了一个核心问题:“如果我现在从这里出发,一路走下去总共能赚多少?”它是价值函数和贝尔曼方程的基础。
  1. 即时奖励项$\displaystyle R_{t+1}$ 是进入下一个状态时立刻收到的奖励,折扣因子 $\gamma^0 = 1$ 表示它不打折。
  2. 远期奖励衰减$\displaystyle \gamma^k R_{t+k+1}$ 表示第 $k$ 步后的奖励要被 $\gamma^k$ 衰减,时间越远折扣越狠。
  3. 无穷级数求和$\displaystyle \sum_{k=0}^{\infty}$ 把从当前直到未来的所有奖励累加,形成对长期收益的完整度量。

策略与决策

有的骑手风格激进,专挑近路走;有的保守,宁可绕远也走主干道。这种“在每个路口如何选择”的固定行为模式,就是策略——它是从状态到动作的映射规则,刻画了智能体的决策风格。

策略分为两种:确定性策略给定一个状态就确定一个动作,比如“住宅区永远直行”;随机策略则给出一个动作的概率分布,比如“商业区有 70% 概率左转、30% 概率直行”。随机策略并非毫无意义——在对手会预判你的博弈场景中,随机化恰恰是上策。

策略的形式化定义:

有了策略,MDP 就从“环境的物理规律”上升到“智能体的行为准则”。给定策略后,智能体在每个状态的价值是多少、整体表现如何,就可以被量化评估——这为下一步的贝尔曼方程铺平了道路。

π(a∣s)=Pr⁡(At=a∣St=s)\displaystyle \pi(a \mid s) = \Pr(A_t = a \mid S_t = s)
策略描述的不是“应该做什么”的绝对命令,而是“每种动作被选中的概率”。它是状态价值函数和贝尔曼方程中加权求和的权重来源。
  1. 策略函数$\displaystyle \pi(a \mid s)$ 表示在状态 $s$ 下选择动作 $a$ 的概率。
  2. 条件概率形式$\displaystyle \Pr(A_t = a \mid S_t = s)$ 明确了这是一个条件概率分布,对每个固定的 $s$,所有动作的概率之和为 1。
  3. 策略与决策闭环$\displaystyle \sum_{a \in A} \pi(a \mid s) = 1$ 保证策略总能在任何状态下给出可执行的动作选择。

贝尔曼方程

老张在路口评估“这条路值不值”时,心里在做一道递归题:当前路口的价值 = 这一单的期望收入 + 下一路口价值的折现。而下一路口的价值,又由再下一路口决定……如此层层嵌套,像剥洋葱一样把未来折叠进现在。这就是贝尔曼方程的直观思想——价值的递归分解。

状态价值函数 $V_\pi(s)$ 定义为遵循策略 $\pi$ 时从状态 $s$ 出发的期望累积回报。贝尔曼方程把它拆解为“即时奖励 + 折现后的未来价值”:

贝尔曼方程最大的意义在于把“不能直接求解的无穷级数”转化成“可以迭代逼近的递归等式”。老张不需要真的预测未来每一单,只需要在当下反复更新每个路口的价值估计,价值就会像潮水一样逐步逼近真实解——这正是价值迭代算法的雏形。

Vπ(s)=∑a∈Aπ(a∣s)∑s′∈SP(s′∣s,a)[R(s,a,s′)+γVπ(s′)]\displaystyle V_\pi(s) = \sum_{a \in A} \pi(a \mid s) \sum_{s' \in S} P(s' \mid s, a) \left[ R(s, a, s') + \gamma V_\pi(s') \right]
这个方程是强化学习大厦的承重墙:它把“无限远的未来”折叠成一个自洽的递归等式,让价值函数可以通过迭代方法求解。
  1. 外层动作求和$\displaystyle \sum_{a \in A} \pi(a \mid s)$ 按策略的概率权重,把不同动作选项的后果平均起来。
  2. 内层状态求和$\displaystyle \sum_{s' \in S} P(s' \mid s, a)$ 遍历所有可能的后继状态,按转移概率加权。
  3. 即时奖励$\displaystyle R(s, a, s')$ 是执行动作后环境立即反馈的奖励,相当于骑手这一单的到手收入。
  4. 折现未来价值$\displaystyle \gamma V_\pi(s')$ 把下一状态的价值按折扣因子折算到当前时刻,是“下一路口的潜在收益”。
  5. 递归自洽性$\displaystyle \left[ R(s, a, s') + \gamma V_\pi(s') \right]$ 将眼前收入与未来期望拼接,构成完整的“当下价值”。

变体与扩展

MDP 是决策模型的“主干家族”,但现实场景各有脾气,于是有了几位重要亲戚。如果骑行到下一个路口需要的时间是随机的——有时 2 分钟有时 10 分钟——普通的 MDP 无法表达“动作持续多久”,这就需要半马尔可夫决策过程(SMDP),它把动作的持续时间也纳入状态转移的随机变量。如果配送区域太大,骑手直接在底层路网做决策会累死,于是有了分层 MDP:区域组长先决定“去哪个商圈”,底层骑手再决定“走哪条街”,上层动作在下层被展开成一段子任务。

SMDP 的核心扩展是引入了动作持续时间的分布:

分层 MDP 则通过抽象动作(option / macro-action)实现多时间尺度的决策:高层策略选择子目标,低层策略负责子目标内的具体动作。这种化整为零的思路,让 MDP 家族能够驾驭超大规模的真实决策问题。

Q(s,a,s′,τ)=P(St+1=s′,持续 τ∣St=s,At=a)\displaystyle Q(s, a, s', \tau) = P(S_{t+1} = s', \text{持续 } \tau \mid S_t = s, A_t = a)
这个扩展让模型能处理“动作不是瞬间完成”的真实场景,代价是求解复杂度上升。
  1. 持续时间变量$\displaystyle \tau$ 表示动作从开始到完成所经过的时间,是 SMDP 新增的核心维度。
  2. 联合转移分布$\displaystyle Q(s, a, s', \tau)$ 同时描述后继状态和持续时间两个随机变量的联合分布。
  3. 与 MDP 的退化关系$\displaystyle \tau$ 恒为常量时,SMDP 退化为普通 MDP,体现家族模型的包含关系。

非马尔可夫处理

马尔可夫性质是 MDP 的基石,可现实常不给面子。老张发现:如果今天已经送过 5 单生鲜,冰箱容量告急,那么“下一单是否接生鲜”取决于今天的历史记录,而不仅仅是当前路口。此时当前状态信息不足,马尔可夫性质不成立了。

面对这种“历史很重要”的困境,工程师有几种修补手段。最直接的是状态增广——在状态里追加历史信息的摘要,比如“已送生鲜单数”,把原本丢失的记忆重新装回状态中。如果历史信息本质上无法被完整观测(比如对手的策略、环境的隐藏属性),就需要使用部分可观测马尔可夫决策过程(POMDP),它的元组在 MDP 基础上增加了观测集合和观测函数:

POMDP 的代价是求解复杂度远高于 MDP——连续信念空间让精确求解成为难题。因此工程中常以状态增广 + 历史窗口作为性价比更高的折中方案:把最近 K 步的状态拼接成新的特征,近似恢复马尔可夫性。老张的冰箱容量例子,加一个“剩余容量”字段就好了。

⟨S,A,O,T,R,Ω,γ⟩\displaystyle \langle S, A, O, T, R, \Omega, \gamma \rangle
上式中 $O$ 是观测集合,$\Omega(o \mid s, a)$ 是观测函数——状态 $s$ 下执行动作 $a$ 后观测到 $o$ 的概率。
  1. 观测集合 O$\displaystyle O$ 表示智能体通过传感器或感官能获得的所有观测信号,反映对真实状态的“窗口”。
  2. 观测函数 Ω$\displaystyle \Omega(o \mid s, a)$ 描述真实状态与观测之间的概率关系,刻画感知的不确定性。
  3. 信念状态$\displaystyle b(s)$ 是在观测历史下对真实状态的后验置信分布,POMDP 决策基于它而非直接基于状态。

AI 应用场景

自动驾驶巡航控制

阶段:环境建模与决策规划

解决的问题:传统规则式巡航无法优雅处理前车随机加减速。用 MDP 将车速离散化为状态、将油门/刹车作为动作、转移概率来自交通流统计,奖励函数对“平顺 + 高效”打分——自动驾驶系统就能在随机车流中做出最优速度决策。

具体案例:特斯拉等车企在自适应巡航控制中,将高速公路场景建模为 MDP:状态包括本车速度、前车相对距离与相对速度;动作为加速、保持、减速;转移概率由驾驶数据估计;奖励函数惩罚急刹、奖励巡航效率。价值迭代求解出的策略,成为“像老司机一样平顺”的控制律。

对话系统策略优化

阶段:对话策略学习

解决的问题:传统基于规则的对话策略在开放域场景下僵硬笨拙。用 MDP 将对话状态(用户意图、槽位填充情况)建模为状态,将系统动作(提问、确认、推荐)建模为动作,转移概率刻画用户响应的不确定性,奖励函数对“任务成功率 + 用户满意度”打分。

具体案例:智能客服机器人每轮对话都在做 MDP 决策:状态是“用户想查话费还是办宽带”的置信分布,动作是“追问细节”或“直接回答”。通过强化学习优化策略,机器人在多轮交互中逐步收敛到最高成功率的话术路径,与老张在路口反复权衡“问路还是导航”如出一辙。

Python 演示

python62 行
"""外卖骑手MDP价值迭代演示"""import random  class DeliveryMDP:    """一个简单的MDP:骑手在三个区域间流动"""    def __init__(self, gamma=0.9):        self.gamma = gamma        self.states = ['住宅区', '商业区', '工业区']        self.actions = ['继续配送', '回调度站']        self.P = {            '住宅区': {'继续配送': {'住宅区': 0.2, '商业区': 0.5, '工业区': 0.3},                      '回调度站': {'住宅区': 1.0}},            '商业区': {'继续配送': {'住宅区': 0.3, '商业区': 0.3, '工业区': 0.4},                      '回调度站': {'商业区': 1.0}},            '工业区': {'继续配送': {'住宅区': 0.5, '商业区': 0.2, '工业区': 0.3},                      '回调度站': {'工业区': 1.0}},        }        self.R = {            '住宅区': {'继续配送': {'住宅区': 1, '商业区': 2, '工业区': 0}},            '商业区': {'继续配送': {'住宅区': 1, '商业区': 1, '工业区': 3}},            '工业区': {'继续配送': {'住宅区': 2, '商业区': 1, '工业区': 0}},        }     def value_iteration(self, theta=1e-10, max_iter=1000):        """贝尔曼方程的价值迭代求解"""        V = {s: 0.0 for s in self.states}        for _ in range(max_iter):            delta = 0.0            for s in self.states:                v_old = V[s]                q_best = float('-inf')                for a in self.actions:                    q = 0.0                    for s_next in self.states:                        prob = self.P[s][a].get(s_next, 0.0)                        reward = self.R[s][a].get(s_next, 0.0)                        q += prob * (reward + self.gamma * V[s_next])                    q_best = max(q_best, q)                V[s] = q_best                delta = max(delta, abs(v_old - V[s]))            if delta < theta:                break        return V  if __name__ == '__main__':    mdp = DeliveryMDP(gamma=0.9)    V = mdp.value_iteration()    for s, v in V.items():        print(f'{s}: {v:.4f}')    # 随机游走模拟    state = '住宅区'    total = 0    random.seed(42)    for _ in range(10):        action = '继续配送'        probs = mdp.P[state][action]        s_next = random.choices(list(probs.keys()), weights=list(probs.values()))[0]        total += mdp.R[state][action][s_next]        print(f'{state} -> {s_next} | 奖励 +{mdp.R[state][action][s_next]} | 累积 {total}')        state = s_next
目的:实现一个三状态外卖 MDP,用贝尔曼方程的价值迭代求解每个状态的最优价值,再用随机游走验证收益累积过程。
  1. self.P[s][a].get(s_next, 0.0)读取状态转移概率,缺失的转移默认为 0,保证归一化。
  2. q += prob * (reward + self.gamma * V[s_next])这就是贝尔曼方程的核心:即时奖励加折现未来价值,按概率加权。
  3. d = max(delta, abs(v_old - V[s]))记录本轮最大价值变化,用于判断是否收敛。
  4. for _ in range(max_iter)迭代上限,防止极端情况死循环。
  5. random.choices(list(probs.keys()), weights=list(probs.values()))按转移概率采样下一个状态,模拟真实环境的随机性。

常见误区

误区马尔可夫性质听上去像要求智能体失去记忆——未来和过去完全没有关系,那状态机岂不等于一个“失忆症患者”?

正解马尔可夫性质不是“忘记历史”,而是把历史信息压缩进了当前状态。就像老张不看两小时前的轨迹,是因为他的当前位置已经蕴含了所有关键信息。原始数据被舍弃了,但信息量没有丢失——关键是状态表示要足够丰富。如果状态设计得不好导致信息丢失,马尔可夫性质就会失效。

为何常见:初学者容易被“未来只取决于现在”这句话误导,忽视了“状态必须充分”这一前提,把模型的性质误解为对智能体的能力限制。

误区很多初学者以为 MDP 要求环境完全已知,转移概率矩阵必须手工填写才能求解,否则模型无法工作。

正解MDP 是一个数学模型,它定义了问题框架,并不要求转移概率已知。当转移概率未知时,可以用 model-free 的强化学习方法(如 Q-learning、策略梯度)直接从与环境交互的数据中学习最优策略。就像老张不需要知道每条路拥堵概率的精确数值,多跑几趟也能摸清规律。

为何常见:课本为了推导方便,总是先假设 P 和 R 已知,导致学习者把“数学假设”误当成“现实前提”。

误区γ 越接近 1 代表越有远见,那是不是所有任务都应该把 γ 设成 0.99 甚至 0.999?

正解γ 是任务属性的数学表达,不是越高越好的超参数。在持续运行的推荐系统中,γ 太大会让价值估计对远期变化过于敏感、方差增大;在交易场景中,资金有时间成本,γ 应该反映真实的利率水平。老张如果明天就转行,γ 应该很小——因为明天的单跟他没关系了。

为何常见:强化学习教程常在“长期回报”语境下强调 γ 接近 1 的好处,让人误以为这是一个需要最大化的指标,而不是需要匹配任务的参数。

误区看到 $V_\pi(s)$ 就以为是“在这个状态能拿到的奖励”,把状态价值和一步奖励函数 R 混为一谈。

正解状态价值是从该状态出发、按策略继续走完的期望累积回报,它包含当前及未来所有折现奖励。一个状态即使即时奖励为 0,也可能因为通向高奖励区域而具有高价值——就像老张现在在偏僻小路(即时奖励为 0),但这条路通往写字楼聚集区(未来奖励巨大),所以状态价值很高。

为何常见:初学者容易把“状态”和“奖励”当作一一对应的静态关系,忽略了价值函数的时间累积本质。

误区部分可观测 MDP 听起来只是给 MDP 的状态观测叠加了一层随机噪声,用 MDP 的求解器也能凑合处理。

正解POMDP 与 MDP 有本质区别:POMDP 中智能体看到的不是真实状态,而是观测的对真实状态的后验置信(信念状态)。这个信念状态是高维连续的,导致求解复杂度远超 MDP。简单的“观测加噪声”完全无法捕捉 POMDP 的决策困境——噪声可以通过滤波去掉,而部分可观测意味着信息天生缺失。

为何常见:初学者看到“POMDP = MDP + 观测函数”,想当然地认为只是轻微扩展,忽略了信念状态带来的维度灾难。

面试题

Q1. 马尔可夫性质最核心的含义是?

单选题 · easy

  • A.过去状态不会影响未来决策
  • B.未来状态只依赖于当前状态← 正确答案
  • C.所有状态出现概率完全相同
  • D.状态转移是完全确定的轨迹

答案:B。马尔可夫性质说 $P(s_{t+1}|s_t,\ldots,s_0)=P(s_{t+1}|s_t)$,未来只依赖当前状态。A 错在说“不影响”,其实是影响被压缩进当前状态;C 错在概率均匀性不是马尔可夫性质;D 错在马尔可夫性质不要求确定性,允许随机转移。

Q2. MDP 五元组中包括哪些要素?

多选题 · easy

  • A.状态集合和动作集合← 正确答案
  • B.状态转移概率函数← 正确答案
  • C.奖励函数与折扣因子← 正确答案
  • D.观测函数和信念状态

答案:ABC。MDP 五元组是 $\langle S,A,P,R,\gamma\rangle$,ABC 分别对应状态动作集合、转移函数、奖励与折扣。D 是 POMDP 的要素(观测函数和信念状态),不属于基本 MDP 五元组,属于偷换概念的干扰项。

Q3. 折扣因子 γ=0 时,智能体最关心什么?

单选题 · mid

  • A.无限远的累积总回报
  • B.当前一步的即时奖励← 正确答案
  • C.未来所有奖励的平均值
  • D.环境的随机性程度大小

答案:B。γ=0 时,累积回报 $G_t=R_{t+1}+0\cdot R_{t+2}+\cdots=R_{t+1}$,只有当前一步的即时奖励有价值。A 是 γ→1 的极限行为,C 错误,D 与折扣因子无关。类比骑手只看这一单,不管下一单。

Q4. 关于状态价值函数 $V_\pi(s)$ 的正确描述有?

多选题 · mid

  • A.从状态 s 出发的期望累积回报← 正确答案
  • B.在策略 π 指导下评估状态价值← 正确答案
  • C.取所有动作中价值最大的方案
  • D.包含折扣因子对远期收益的加权← 正确答案

答案:ABD。$V_\pi(s)=\mathbb{E}_\pi[G_t|S_t=s]$,ABD 正确。C 是“贝尔曼最优方程”里 $V^*(s)=\max_a\cdots$ 的做法,普通策略价值函数是按策略概率平均而非取最大。就像老张按自己的习惯走,而不是每次都选理论上最优的路。

Q5. 贝尔曼方程的核心思想是什么?

单选题 · mid

  • A.用未来价值递归定义当前价值← 正确答案
  • B.用当前奖励直接替代状态价值
  • C.用穷举法枚举所有状态序列
  • D.用线性回归拟合价值函数

答案:A。贝尔曼方程 $V_\pi(s)=\sum_a\pi(a|s)\sum_{s'}P(s'|s,a)[R+\gamma V_\pi(s')]$ 把当前价值表达为即时奖励加折现未来价值的期望,是递归而非替代(B 错)、穷举(C 错)或拟合(D 错)。

Q6. 半马尔可夫决策过程与 MDP 的最大区别是什么?

单选题 · hard

  • A.状态空间是连续且高维的
  • B.动作持续时间是随机变量← 正确答案
  • C.奖励函数完全未知不可观测
  • D.转移概率随时间非线性变化

答案:B。SMDP 的核心是引入动作持续时间 τ 的分布 $Q(s,a,s',\tau)$。A 是连续状态 MDP 的特点;C 是奖励未知问题;D 是非平稳环境。类比老张送单:普通 MDP 假设转瞬完成,SMDP 承认“这单要花 5 分钟还是 20 分钟”本身就是随机的。

Q7. 当马尔可夫性质不成立时,常用处理手段包括?

多选题 · hard

  • A.状态增广补足历史信息← 正确答案
  • B.增大折扣因子 γ 数值
  • C.使用 POMDP 框架建模← 正确答案
  • D.拼接历史窗口作为特征← 正确答案

答案:ACD。状态增广(A)、POMDP(C)、历史窗口(D)都是弥补信息缺失的常见方法。B 错误——折扣因子只调整对未来收益的权重,不解决“当前状态信息不足”的问题。就像骑手冰箱容量告急时,加个“剩余容量”字段比调整时间偏好管用得多。

Q8. 策略 π(a|s) 在 MDP 中表示什么?

单选题 · easy

  • A.状态之间转移的概率矩阵
  • B.在状态 s 选择动作 a 的概率← 正确答案
  • C.执行动作 a 得到的期望奖励
  • D.最优价值函数对应的策略

答案:B。策略 $\pi(a|s)=\Pr(A_t=a|S_t=s)$ 是给定状态下的动作选择概率。A 是状态转移函数 P;C 是奖励函数 R;D 是最优策略 π* 的概念,普通策略 π 不需要最优。

Q9. POMDP 与 MDP 相比,新增了哪个核心要素?

单选题 · hard

  • A.折扣因子与终止状态集合
  • B.观测集合与观测函数← 正确答案
  • C.参数化的价值网络结构
  • D.状态空间抽象与分层机制

答案:B。POMDP 在 MDP 基础上增加了观测集合 O 和观测函数 $\Omega(o|s,a)$。A 中折扣因子 MDP 已有,终止状态不是标配;C 是 DQN 等方法的具体实现;D 是分层强化学习的内容。POMDP 的关键在于智能体“看不全”真实状态,只能基于观测做信念推断。

Q10. 关于转移概率 $P(s'|s,a)$ 的正确说法有?

多选题 · mid

  • A.s 执行动作 a 转移到 s' 的概率← 正确答案
  • B.不同动作 a 的转移概率均相同
  • C.固定 s,a 时所有 s' 概率和为 1← 正确答案
  • D.可由与环境交互的数据估计← 正确答案

答案:ACD。A 是定义本身;C 是概率归一化约束;D 是实践中用统计频率或函数逼近估计转移概率的做法。B 错误——不同动作的转移分布通常不同,否则动作选择就没有意义了,就像老张“直行”和“左转”到达的目的地概率显然不一样。