想象你是刚入职的快递员小张,被派到一个完全陌生的城市。有两种成长路线。第一条:直接开车上路,撞了南墙记住南墙,迷路了就在街区里瞎转,直到把每条巷子都摸熟——经验全靠油钱和车损换来,这叫「无模型方法」。第二条:先跟着老司机跑几趟,把路网结构、红绿灯规律、哪条路高峰堵车都记进脑子,形成一张「心理地图」,然后在出发前闭上眼,在脑海里反复推演送件路线——这叫「Model-Based 方法」。前者敢拼,后者会「想象」。强化学习中的 Model-Based 方法,就是让智能体先学习环境的动态规律(那张地图),再靠想象推演来规划行动,从而用极少的真实试错换极高的学习效率。这篇文章,我们就以小张的送件日常为线索,完整拆解 Model-Based 方法的原理、框架、收益与落地边界。

岗位关联

掌握 Model-Based 方法,意味着你在面对机器人、自动驾驶这类试错成本昂贵的真实任务时,拥有用「想象」换「效率」的核心能力,这是 AI 走向实用的必修课。

目录
  1. 可视化演示
  2. 核心思想:先建模还是先试错
  3. 环境模型:脑海里的路网图
  4. Dyna框架:真实与想象交替
  5. 在线规划:出发前先推演
  6. 样本效率:同样的油钱更快的成长
  7. 落地权衡:精度、时延、成本的三角博弈
  8. 世界模型:从平面地图到全息沙盘
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示系统处理流水线、实时性能指标曲线及多方案对比分析,包含数据流转、吞吐延迟监控与方案评估。

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

系统可视化 处理流程:输入→处理→模型→输出 性能监控:实时指标 P=L×T

核心思想:先建模还是先试错

小张刚上岗时,公司给了两种培训方案。方案 A:直接给车给油,让他满城乱跑,磕磕碰碰自己长记性;方案 B:先跟老师傅跑三天,把路网画下来,再在脑子里模拟送件。方案 B 听上去更聪明——因为它在动手之前,先建立了一个「关于世界的模型」。这个选择,恰好就是强化学习两大流派的分水岭。

在强化学习里,这位快递员叫「智能体」,城市叫「环境」。无模型方法(Model-Free)直接和真实环境交手,从大量试错中学习策略或价值函数;Model-Based 方法则多了一个中间步骤:先学一个「环境动力学模型」——也就是状态在动作作用下如何转移、会得到什么奖励——然后再在这个模型之上去规划。无论哪种方法,最终目标都是最大化累计奖励。

这个目标用数学写出来,就是最大化一条轨迹上的折扣回报:

一句话总结:无模型方法是「吃一堑长一智」,Model-Based 是「先画地图再出发」。小张的成长曲线告诉我们,后者在数据昂贵的场景里,能用更少的真实里程换到同样的驾驶水平。接下来,我们一步步拆解这张地图是怎么画出来的。

J(π)=Eτ∼π[∑t=0Tγtrt]\displaystyle J(\pi) = \mathbb{E}_{\tau \sim \pi} \left[ \sum_{t=0}^{T} \gamma^t r_t \right]
该公式衡量一个策略的平均表现:沿策略走出的轨迹,把每一步奖励按时间折扣后求和,再对所有可能轨迹求期望。
  1. 策略 $\pi$智能体的行为准则,决定在某个状态下选择哪个动作。小张「看到哪条路稳就走哪条」的偏好就是策略。
    π(a∣s)\pi(a \mid s)
  2. 轨迹 $\tau$从起点到终点的状态-动作序列。小张某一天完整送件路线的记录。
    τ=(s0,a0,s1,a1,…,sT)\tau = (s_0, a_0, s_1, a_1, \dots, s_T)
  3. 折扣因子 $\gamma$给未来奖励打折的系数,取值在 0 到 1 之间,让智能体更看重眼前的回报。今天到手的提成,比年底的绩效更让小张开心。
    γt∈[0,1]\gamma^t \in [0, 1]
  4. 期望符号把所有可能路线的回报按概率加权平均,代表策略的平均表现水平。小张的「平均每日送件量」。
    Eτ∼π[⋅]\mathbb{E}_{\tau \sim \pi}[\cdot]

环境模型:脑海里的路网图

小张的「心理地图」不是天生就有的。他每跑一单,就记住:在这个路口往左拐会到哪条街,那条街会不会堵,大概要花几分钟。地图的每一条边,都是用真实里程喂出来的。环境模型同样如此,它由两部分组成:一是「状态转移模型」——给定当前状态和动作,预测下一状态;二是「奖励模型」——预测这一步能拿到多少奖励。

两者合起来,就构成了对环境的完整近似。学习方式很直观:把真实交互积累的数据当作监督信号,用查表、线性回归或神经网络去拟合「状态-动作」到「下一状态-奖励」的映射。用公式表达,就是让近似模型逼近真实的转移概率分布:

但地图终究会画错:修路、封桥、老司机记错巷子。同样地,模型与真实环境之间总有偏差。小张不会因为地图画错就放弃地图,而是不断用新数据修正它——这就是下一节要讲的框架。模型误差并不可怕,可怕的是明知有误差还不去管它。

T^(s′∣s,a)≈p(s′∣s,a)\displaystyle \hat{T}(s' \mid s, a) \approx p(s' \mid s, a)
带帽子的 $\hat{T}$ 是学出来的近似模型,它逼近真实环境的状态转移规律:在状态 $s$ 执行动作 $a$,会以某种概率到达 $s'$。
  1. 状态 $s$ 与动作 $a$环境当前的情形和智能体采取的行动。小张现在在哪个路口、打算左转还是右转。
    s∈S,a∈As \in \mathcal{S}, \quad a \in \mathcal{A}
  2. 下一状态 $s'$动作执行后环境变成的样子。转完弯之后到达的新路口。
    s′∈Ss' \in \mathcal{S}
  3. 转移概率 $p(s' \mid s, a)$真实世界的「路况规则」,即城市真实的街道连通关系。
    p:S×A→Δ(S)p: \mathcal{S} \times \mathcal{A} \to \Delta(\mathcal{S})
  4. 近似模型 $\hat{T}$用数据学出来的、可能不精准但不断修正的手绘地图。
    T^(s′∣s,a)≈p(s′∣s,a)\hat{T}(s' \mid s, a) \approx p(s' \mid s, a)

Dyna框架:真实与想象交替

老快递员有个习惯:等红灯、等货的时候,闭着眼睛在脑内把接下来几条路线过一遍。这段「脑内排练」不烧油、不伤车,却能把路线记得更牢。小张学到了这个习惯。强化学习里,把这种「真实经验与想象经验交替使用」的经典框架称为 Dyna。

真实交互负责收集数据、修正模型;想象推演则用当前模型生成大量虚拟轨迹,喂给同一个学习算法。想象的经验不需要真金白银,却同样能更新价值函数。比如用 Q-learning 时,无论真实还是想象的经验,都执行同一条更新规则:

小张靠这个习惯,一周就超过了别人一个月的送件量。Dyna 框架的精髓正在于此:真实步数只用来「看路」,想象步数用来「练车」。练车不耗油,所以想象多少次都不心疼——这直接带来了后面要讲的样本效率红利。

Q(s,a)←Q(s,a)+α[r+γmax⁡a′Q(s′,a′)−Q(s,a)]\displaystyle Q(s, a) \leftarrow Q(s, a) + \alpha \left[ r + \gamma \max_{a'} Q(s', a') - Q(s, a) \right]
这是 Q-learning 的核心更新公式:用「真实奖励 + 下一状态最优价值」作为修正目标,让当前 Q 值向目标逼近一步。
  1. 动作价值 $Q(s, a)$在状态 $s$ 下采取动作 $a$ 之后的长期回报预期。小张对「在这个路口左转」这条经验的估值。
    Q(s,a)Q(s, a)
  2. 学习率 $\alpha$每次更新吸收多少新信息,取值在 0 到 1 之间。决定小张是「轻轻记一笔」还是「彻底推翻重来」。
    α∈(0,1]\alpha \in (0, 1]
  3. TD 目标 $r + \gamma \max_{a'} Q(s', a')$真实奖励加上「下一状态最优动作的价值」,是本次经验的修正目标。相当于这单提成 + 对新路口最优选择的乐观估计。
    r+γmax⁡a′Q(s′,a′)r + \gamma \max_{a'} Q(s', a')
  4. TD 误差 $\delta$目标与当前估值的差,方括号整体就是误差项,用来校正 Q 值。
    δ=r+γmax⁡a′Q(s′,a′)−Q(s,a)\delta = r + \gamma \max_{a'} Q(s', a') - Q(s, a)
  5. 更新箭头 $\leftarrow$每次经验都让 Q 值向目标逼近一小步,小张每次都小幅修正自己的判断。
    Q(s,a)←Q(s,a)+αδQ(s, a) \leftarrow Q(s, a) + \alpha \delta

在线规划:出发前先推演

出发送件前,小张会趴在桌子上盯着地图,把从当前点到目的地的几条备选路线都推演一遍,比较哪条最稳。这不是瞎想,而是基于地图的「有依据的规划」。在 Model-Based 方法中,这种「决策时用模型推演未来」的过程叫做规划(Planning)。

常见做法是前向搜索:从当前状态出发,按模型逐步模拟,比较不同动作下的累计回报,选出最优动作。数学上,决策时的规划目标可以写成在当前视界内最大化预测奖励之和:

这里要特别介绍工程中极常用的模式——模型预测控制(MPC):它并不一次性规划完整条路线,而是「走一步,看一步」——每执行一个动作、拿到新的真实状态,就重新做一次短期规划。像小张每到一个路口都重新瞄一眼地图,灵活应对临时封路。规划让小张不再盲目,但要注意:规划的「脑补」质量完全取决于地图准不准。如果地图是错的,推演越久错得越离谱——这就是误差累积问题。

at∗=arg⁡max⁡at∑k=0H−1γkr^(st+k,at+k)\displaystyle a_t^* = \arg\max_{a_t} \sum_{k=0}^{H-1} \gamma^k \hat{r}(s_{t+k}, a_{t+k})
该公式描述「决策时规划」:在脑内推演未来 H 步,选一个让预测累计奖励最大的动作。
  1. 视界 $H$推演的长度,想多远。小张看地图时考虑接下来几个路口。
    H∈{1,2,3,… }H \in \{1, 2, 3, \dots\}
  2. 预测奖励 $\hat{r}$模型给出的奖励估计。地图旁边标注的「这段路况好、那段在修路」的评语。
    r^(st+k,at+k)\hat{r}(s_{t+k}, a_{t+k})
  3. 累计推演回报从当前时刻起 H 步内估计回报的折扣和,是脑内小剧场演出的总收益。
    ∑k=0H−1γkr^(st+k,at+k)\sum_{k=0}^{H-1} \gamma^k \hat{r}(s_{t+k}, a_{t+k})
  4. 最优动作 $a_t^*$在所有候选动作中挑一个让推演回报最大的,小张据此选出最优路线。
    at∗=arg⁡max⁡at(… )a_t^* = \arg\max_{a_t} (\dots)

样本效率:同样的油钱更快的成长

公司给小张和另一个「无模型」同事小王各配了 100 升油。小王油门踩到底,半年跑坏两辆车,才勉强记住全城路况;小张用其中 10 升油摸清主干道,剩下 90 升的「里程」,全在脑内模拟中跑完了。年终评优,小张的送件量是小王的三倍。这就是样本效率(Sample Efficiency):单位真实交互成本下,能获得多少学习收益。

Model-Based 的核心优势在于「经验复用」——把真实经验转化为模型,再用模型批量生成虚拟经验。真实世界的每一次交互,都被放大成了 K 次模型内的学习更新。假设真实步数为 N,每一步配套做 K 次想象推演,那么学习算法获得的总更新次数是:

当 K=0 时,退化成普通无模型方法;当 K 很大时,同等真实数据下学习信号成倍增加。当然,「脑内模拟」也不是免费的午餐——K 越大,计算开销越高,收益也会因为模型误差递减。这也是为什么 Dyna-Q 这类方法里,K 通常取一个折中的小值。

Utotal=Nreal×(1+K)\displaystyle U_{\text{total}} = N_{\text{real}} \times (1 + K)
总学习更新量等于每一份真实经验「本尊」加上 K 份「想象分身」的贡献总和。
  1. 真实步数 $N_{\text{real}}$确实在环境里走的步数,花的真金白银。
    NrealN_{\text{real}}
  2. 想象比 $K$每走一步真实经验,配套做 K 次想象推演(Dyna 中的规划次数)。
    KK
  3. 总更新次数 $U_{\text{total}}$学习算法利用经验的次数,相当于训练数据量。
    Utotal=Nreal+K×NrealU_{\text{total}} = N_{\text{real}} + K \times N_{\text{real}}

落地权衡:精度、时延、成本的三角博弈

小张被调到邻市的分公司。新旧城市路况完全不同,那套辛苦练成的地图几乎作废;这时他反而羡慕小王——无模型方法虽然费油,但换个城市重新跑也照样能学,最多慢一点。这就引出了 Model-Based 落地的关键判断:不是所有场景都值得「先画地图」。要权衡三个约束:模型精度(地图准不准)、推理时延(画图算得够不够快)、成本预算(请老师傅、买地图数据要多少钱)。

精度不够,想象就是南辕北辙;时延太高,规划跑不完一帧就被现实打脸;成本失控,省下的样本钱全搭进了建模费。关于精度,有一个残酷的数学事实:模型误差会随推演深度累积。如果模型每一步出错的概率是 $\delta$,那么推演 H 步后,至少错一步的概率是:

当 H=10、$\delta=0.05$ 时,整条推演出错率高达 40%——这就是为什么实践中 MPC 通常只用很短的视界(比如 H=5),并且强调模型的不确定性估计。小张的决策也一样:地图越模糊,他越不敢提前规划太远,宁可靠近路口再判断。技术选型的本质,是让方法的特性匹配场景的精度、时延与成本约束。

εrollout=1−(1−δ)H\displaystyle \varepsilon_{\text{rollout}} = 1 - (1 - \delta)^H
推演越长,整条想象轨迹「至少错一次」的概率越大,这就是长视界规划中模型偏差被放大的机制。
  1. 单步误差 $\delta$模型预测一步就出错的概率。地图上某条路画错的概率。
    δ∈[0,1]\delta \in [0, 1]
  2. H 步全都正确的概率每一步都猜对的联合概率(假设各步独立)。
    (1−δ)H(1 - \delta)^H
  3. 累计出错概率 $\varepsilon_{\text{rollout}}$推演越长,整体出错概率越高,想象轨迹越不可信。
    εrollout=1−(1−δ)H\varepsilon_{\text{rollout}} = 1 - (1 - \delta)^H

世界模型:从平面地图到全息沙盘

几年后小张成了区域主管,他不再满足于二维路网图,而是建起了整个城市的「全息沙盘」:红绿灯周期、天气对路况的影响、写字楼的取件高峰,全部装了进去。在这个沙盘里,他能预演一整天的高效配送。这对应强化学习最前沿的方向之一——世界模型(World Model):把「环境动力学」扩展成对观测、动作、隐状态之间关系的生成式建模。

一个关键技巧是「潜空间想象」:不在原始像素级的高维空间里做推演,而是把观测压缩成低维隐状态,再在隐状态空间里模拟未来。Dreamer、MuZero 等系统正是沿着这条路线,在游戏、机器人、自动驾驶中展现出惊人的样本效率。潜空间世界模型的核心,是学一个隐状态转移律:

小张的「全息沙盘」,本质就是把整座城市的动态压缩进一个可推演的表征,再用想象替代大量的真实跑动。当我们把这种能力与空间智能结合——智能体理解物理空间、预测未来状态、在脑中规划动作——Model-Based 就已经不只是一个算法套路,而是通向「会想象的 AI」的必经之路。地图越画越厚,想象越来越强,这正是这门技术的浪漫所在。

pθ(zt∣zt−1,at−1)\displaystyle p_\theta(z_t \mid z_{t-1}, a_{t-1})
在压缩后的隐状态 $z$ 中推演未来:给定上一步的隐状态与动作,预测当前的隐状态如何演化。
  1. 隐状态 $z_t$压缩后的环境表征,一张低维「抽象卡片」,记录路网的要害信息。
    zt∈Rd,d≪像素数z_t \in \mathbb{R}^d, \quad d \ll \text{像素数}
  2. 参数化条件分布 $p_\theta$用神经网络参数 $\theta$ 表达的隐转移模型。沙盘里「上一步位置+动作→下一步位置」的推演规则。
    pθ(zt∣zt−1,at−1)p_\theta(z_t \mid z_{t-1}, a_{t-1})
  3. 与观测 $o_t$ 的关系隐状态由观测通过编码器得到,行动时先在隐空间推演再解码。小张把整个街景压成「路口、车流、红灯」几个关键词,在脑内快速运算。
    zt∼qϕ(zt∣ot)z_t \sim q_\phi(z_t \mid o_t)

AI 应用场景

机器人手臂抓取与插拔

阶段:模型学习与行为规划阶段

解决的问题:真实机械臂试错一次就可能撞坏工件或自身。传统无模型方法需要上万次真实动作,成本难以承受;Model-Based 方法先在仿真和少量真实数据中学动力学模型,再用模型做想象 Rollout 和 MPC 规划,把真实试错压缩到几百次。这就像小张先在脑内沙盘里练手,再真正上路。

具体案例:某工厂用 Dreamer 类方法训练机械臂完成连接器插拔。先用少量示教数据学出接触动力学模型,再在潜空间里反复想象「轻轻靠近→触到→微调→插入」的动作序列,最后上真实产线时,调试时间从两周缩短到一天。

自动驾驶中的仿真增强与安全测试

阶段:数据增强与策略训练阶段

解决的问题:真实路测成本极高,且「鬼探头」「前车急刹」等危险场景难以自然复现。用学到的高保真世界模型可以自动生成大量罕见险情,在想象中反复推演策略反应,再部署到真实车辆。Model-Based 把关键场景的覆盖率从每天个位数提升到每小时数千次。

具体案例:某自动驾驶团队用 Neural World Model 做仿真增强,让策略在想象中遭遇上万次极端工况,显著减少了真实路测里程。地图(模型)越全,脑内推演的险情越多,路上就越安全。

游戏 AI 与空间智能中的长期规划

阶段:环境建模与长期规划阶段

解决的问题:即时策略游戏状态空间巨大,对手行为复杂;真实对局样本昂贵且节奏慢。Agent 先学习游戏世界模型,再在潜空间里对多步战局做想象推演,大幅减少对真实对局的依赖。

具体案例:Muze 类系统借助「想象」在《星际争霸》等环境中高效学习;空间智能方向上,家用机器人利用世界模型在陌生房间里规划导航路径——相当于小张到了新城市,快速画出一张临时地图,再脑内走一遍,才真正迈出第一步。

Python 演示

python79 行
import random # 网格城市: 0=空地 1=墙MAP = [    [0, 0, 0, 0, 0, 0, 0, 0],    [0, 1, 1, 1, 0, 0, 0, 0],    [0, 0, 0, 1, 0, 0, 0, 0],    [1, 0, 0, 1, 0, 0, 0, 0],    [0, 0, 0, 1, 0, 0, 0, 0],    [0, 0, 0, 1, 1, 1, 1, 0],    [0, 0, 0, 0, 0, 0, 1, 0],    [0, 0, 0, 0, 0, 0, 0, 0],]N = 8START = (0, 0)GOAL = (7, 7)ACTIONS = [(1, 0), (-1, 0), (0, 1), (0, -1)]REWARD_SUCCESS = 1.0  def env_step(state, action):    nx = state[0] + action[0]    ny = state[1] + action[1]    if nx < 0 or nx >= N or ny < 0 or ny >= N or MAP[ny][nx]:        return state, 0.0    if (nx, ny) == GOAL:        return (nx, ny), REWARD_SUCCESS    return (nx, ny), 0.0  class DynaQAgent:    def __init__(self, alpha=0.1, gamma=0.9, epsilon=0.1, n_plan=5):        self.alpha = alpha        self.gamma = gamma        self.epsilon = epsilon        self.n_plan = n_plan        self.q_table = {}        self.model_map = {}     def q_value(self, state, action):        return self.q_table.get((state, action), 0.0)     def choose_action(self, state):        if random.random() < self.epsilon:            return random.choice(ACTIONS)        return max(ACTIONS, key=lambda a: self.q_value(state, a))     def update_q(self, state, action, reward, nxt):        best_next = max(self.q_value(nxt, a) for a in ACTIONS)        target = reward + self.gamma * best_next        current = self.q_value(state, action)        self.q_table[(state, action)] = current + self.alpha * (target - current)     def learn(self, episodes=80):        total_real_steps = 0        for _ in range(episodes):            state = START            while state != GOAL:                action = self.choose_action(state)                nxt, reward = env_step(state, action)                self.update_q(state, action, reward, nxt)                self.model_map[(state, action)] = (nxt, reward)                total_real_steps += 1                for _ in range(self.n_plan):                    (s, a), (sp, r) = random.choice(list(self.model_map.items()))                    self.update_q(s, a, r, sp)                state = nxt        return total_real_steps  if __name__ == "__main__":    random.seed(7)    dyna_agent = DynaQAgent(n_plan=5)    dyna_steps = dyna_agent.learn()    q_agent = DynaQAgent(n_plan=0)    q_steps = q_agent.learn()    print("Dyna-Q 真实交互步数:", dyna_steps)    print("Q-learning 真实交互步数:", q_steps)    print("节省比例:", round(1 - dyna_steps / q_steps, 3))
目的:在 8×8 网格城市中对比 Dyna-Q(带想象)与普通 Q-learning(无想象)的真实交互步数,直观验证 Model-Based 的样本效率优势。
  1. self.model_map[(state, action)] = (nxt, reward)每一次真实交互都记入「路网图」,这就是环境模型的学习过程
  2. for _ in range(self.n_plan):每走一步真实经验,额外做 K 次想象推演,对应 Dyna 框架的核心循环
  3. random.choice(list(self.model_map.items()))从记忆库里随机抽一段「走过的路」,作为想象经验的种子
  4. self.update_q(s, a, r, sp)想象的转移同样执行 Q 值更新,达到「练车不耗油」的效果
  5. DynaQAgent(n_plan=0)把想象次数设为零,就退化成了纯无模型 Q-learning,作为对照实验

常见误区

误区世界模型练到像素级完美,Model-Based 系统就一定无敌。所以建模时应该不惜代价追求高精度渲染和预测。

正解模型精度只是中间指标,最终指标是决策回报。像素级重建需要巨大的训练预算,而且很多像素与决策无关,过度追求精度反而拖慢迭代。工程上追求「够用就好」:只学与任务相关的动态,配合不确定性估计和短视界规划,往往比一个笨重的高精度模型更实用。小张不会为了送件而给整座城市做 3D 扫描,他只需要记住关键路口。

为何常见:把「学得更准」当成了目标本身,忘了模型只是服务于规划的中间件。

误区想象就是在脑内跑一下,又不要钱,所以可以无限生成,K 值越大越好。

正解「想象」的便宜是相对真实交互而言的,绝不是零成本。每一次 rollout 都要消耗计算资源;在像素级高维空间里做推演,成本甚至可能超过真实交互。这也是为什么前沿方法要引入潜空间想象——把推演搬进低维隐空间,计算才跑得动。K 值并非越大越好,要按算力预算来设。

为何常见:把「比真实试错便宜」偷换成了「免费」,忽略了计算开销这个硬约束。

误区模型训练好之后就不用更新了,直接拿旧地图去开新城市,反正路网结构大同小异。

正解真实环境是非平稳的:路会改道、商圈会迁移、交通政策会变。模型必须持续用新数据更新,否则地图越老越危险。在 Dyna 等框架里,模型学习与策略学习是并行交错进行的,每一条新经验都会回填进模型。小张每天收工后都会在沙盘里更新「今日路况」,而不是把半年前的地图用到退休。

为何常见:习惯了「训练-部署」的静态思维,忽略了真实世界时刻在变。

误区既然能想象,那干脆让智能体一辈子待在想象里,别碰真实环境了,这样永远不会出错。

正解模型本身必须由真实数据训练而来,而且模型一旦跑偏,必须靠真实反馈纠正。没有真实数据,想象就成了无源之水——一个从没上过路的人,闭眼再久也画不出城市地图。Model-Based 的本意是「用更少的真实交互」,绝不是「零交互」,真实经验始终是校准地图的锚点。

为何常见:把「减少试错」误解成「消灭试错」,忽略了模型学习的监督信号来源。

误区既然能靠想象省样本,Model-Based 肯定全面碾压无模型方法,以后只用它就行。

正解这个结论忽略了一个前提:想象的质量取决于模型。如果地图画错了,想象越多错得越离谱。无模型方法虽然费样本,但每一步都来自真实环境,不会「自欺欺人」。实践中二者常融合互补:Dyna 框架就同时使用真实与想象经验。选型要看场景——环境易建模选 MB,环境复杂且样本便宜选 MF。

为何常见:人们容易把「样本效率高」的单一优势放大成「全面更强」,忽略了模型偏差和计算成本的代价。

面试题

Q1. Model-Based 方法与无模型方法最根本的区别是?

单选题 · easy

  • A.是否使用深度学习网络
  • B.是否先学习环境动态模型← 正确答案
  • C.是否需要高性能显卡
  • D.是否计算折扣回报总和

答案:B。Model-Based 的核心是先学「环境的动态规律」再规划,相当于小张先画地图再出发;无模型方法直接试错学策略或价值。A、C 是工程细节而非本质区别,D 是所有强化学习方法都可能采用的配置。

Q2. 环境模型需要学习的主要内容是?

单选题 · easy

  • A.状态转移规律与奖励分布← 正确答案
  • B.图片的纹理与光影渲染
  • C.用户的点击与浏览记录
  • D.算法的时间空间复杂度

答案:A。环境模型学的是「状态-动作 → 下一状态 + 奖励」的映射,即路与路之间的连通关系与路况。B 属于视觉渲染,C 属于推荐系统,D 属于算法分析,都与环境动态建模无关。

Q3. Model-Based 方法最直接的收益是什么?

单选题 · easy

  • A.降低真实环境的交互次数← 正确答案
  • B.提高单次交互的回报
  • C.减少神经网络的层数
  • D.消除所有环境的不确定性

答案:A。Model-Based 用模型生成想象经验替代真实试错,显著降低真实交互次数,这正是样本效率的核心含义。B 是策略优化目标而非方法特有收益,C 与模型无关,D 现实中无法做到。

Q4. Dyna 框架中「想象经验」指的是?

单选题 · mid

  • A.在真实环境中重复采样的数据
  • B.用学到的模型生成的虚拟轨迹← 正确答案
  • C.人类专家手工标注的转移对
  • D.随机数发生器产生的噪声

答案:B。Dyna 用学到的环境模型生成虚拟的「状态-动作-下一状态-奖励」轨迹,再喂给 Q 学习算法。A 是真实数据,C 是人工标注,D 是随机噪声,三者都不是模型驱动的想象经验。

Q5. 关于模型误差,下列说法正确的是?

多选题 · mid

  • A.模型误差会随着推演深度累积放大← 正确答案
  • B.模型误差只影响美观不影响决策
  • C.引入不确定性估计可以缓解影响← 正确答案
  • D.误差会完全抵消掉想象的收益

答案:AC。推演每步都可能出错,误差率 $1-(1-\delta)^H$ 随 H 增大而上升,A 正确;模型误差直接影响规划质量,B 错误;不确定性估计能识别「地图模糊区域」从而规避风险,C 正确;说「完全抵消」过于绝对,D 错误。

Q6. 模型预测控制(MPC)的典型执行模式是?

单选题 · mid

  • A.规划整条轨迹后不再调整
  • B.每执行一步就重新规划一次← 正确答案
  • C.完全不规划只靠随机动作
  • D.只用真实数据不建模型

答案:B。MPC 是「走一步看一步」:执行一个动作、拿到新的真实状态后立刻重新做短期规划,像小张每到路口重新瞄一眼地图。A 是开环规划,C 是随机策略,D 是无模型方法。

Q7. 下列属于想象 Rollout 优势的是?

多选题 · mid

  • A.能提前推演罕见危险场景← 正确答案
  • B.完全替代真实物理实验
  • C.低成本扩充训练经验← 正确答案
  • D.绝对准确地预测未来

答案:AC。想象可以在模型里低成本预演「鬼探头」「前车急刹」等险情,并批量扩充训练经验,A、C 正确。但想象受模型误差影响,无法完全替代真实实验,也无法绝对准确预测未来,B、D 错误。

Q8. 落地 Model-Based 系统时,优先权衡的「三角约束」是?

单选题 · hard

  • A.精度、时延与成本预算← 正确答案
  • B.品牌、营销与用户增长
  • C.代码、注释与文档规范
  • D.内存、硬盘与网络带宽

答案:A。模型精度决定想象可靠性,推理时延决定规划能否实时完成,成本预算决定建模投入是否划算,三者构成落地选型的核心三角。B 是商业问题,C 是软件工程规范,D 是底层资源约束,均非方法选型主线。

Q9. 世界模型的「潜空间想象」核心思想是?

单选题 · hard

  • A.在压缩的隐状态中推演未来← 正确答案
  • B.在原始像素上逐帧预测视频
  • C.用无模型方法直接学策略
  • D.把模型部署到真实机器人

答案:A。潜空间想象先把高维观测编码成低维隐状态,再在隐空间里推演,大幅降低计算成本,是 Dreamer 等方法的精髓。B 是像素级预测,代价高昂;C 是无模型路线;D 只是部署环节。

Q10. 关于 Model-Based 与 Model-Free 的关系,正确的是?

多选题 · extreme

  • A.二者可以融合成 Dyna 式框架← 正确答案
  • B.模型方法一定比无模型高效
  • C.模型可加速价值函数学习← 正确答案
  • D.无模型方法不依赖环境模型← 正确答案

答案:ACD。Dyna 框架把真实与想象经验融合进同一套 Q 更新,A 正确;模型误差大时 Model-Based 可能更差,不能说「一定更高效」,B 错误;想象经验能加速价值函数收敛,C 正确;无模型方法直接学策略或价值,确实不学环境模型,D 正确。