跳转至

世界模型基础概念

学世界模型前,先把“状态、动作、未来预测、规划”这几个词放稳。否则很容易把它和普通视频生成、VLM 或传统仿真混在一起。


1. 什么是世界模型?

世界模型是智能体内部的一套预测机制。它回答三个问题:

  1. 我现在处在什么状态?
  2. 如果我采取动作 \(a_t\),环境会怎样变化?
  3. 这种未来对任务来说好不好?

用数学写:

\[ s_{t+1} = f_\theta(s_t, a_t) \]

或概率形式:

\[ p_\theta(s_{t+1} \mid s_t, a_t) \]

如果还预测观测和奖励:

\[ p_\theta(o_{t+1}, r_t, c_t \mid s_t, a_t) \]

其中 \(c_t\) 常表示 episode 是否继续。

1.1 一个最小例子

假设小车在一条直线上运动:

状态 s_t = [位置 x_t, 速度 v_t]
动作 a_t = 加速度

真实物理可能是:

\[ v_{t+1}=v_t+a_t\Delta t \]
\[ x_{t+1}=x_t+v_{t+1}\Delta t \]

如果我们不知道这个公式,就可以用神经网络学习:

\[ [\hat{x}_{t+1},\hat{v}_{t+1}] = f_\theta([x_t,v_t],a_t) \]

这就是最朴素的世界模型。机器人和游戏只是把状态从二维小向量换成了图像、语言、关节角、地图、历史记忆等复杂输入。

1.2 世界模型和策略的关系

世界模型不是策略本身:

组件 回答的问题
世界模型 如果这样做,未来会怎样?
奖励/价值模型 这个未来好不好?
规划器/策略 我现在应该做什么?

它们常常组合成:

观测 -> 世界模型预测未来 -> 规划器比较未来 -> 输出动作

也可以组合成 Dreamer 风格:

真实数据训练世界模型 -> 在模型里想象轨迹 -> 训练 actor/critic -> actor 直接执行

2. MDP 与 POMDP

2.1 MDP

强化学习常用 MDP(Markov Decision Process)描述环境:

元素 含义
\(S\) 状态空间
\(A\) 动作空间
$P(s' s,a)$
\(R(s,a)\) 奖励函数
\(\gamma\) 折扣因子

如果状态 \(s_t\) 已经包含决策所需的全部信息,那么未来只依赖当前状态和动作:

\[ p(s_{t+1}\mid s_t,a_t,s_{t-1},a_{t-1},...) = p(s_{t+1}\mid s_t,a_t) \]

这就是马尔可夫性。

2.2 POMDP

真实机器人和游戏通常是 POMDP:智能体只能看到部分观测 \(o_t\),而不是完整状态 \(s_t\)

例如机械臂相机看到杯子正面,但看不到杯子背后是否有遮挡。世界模型需要用历史观测估计一个 belief state:

\[ b_t = p(s_t \mid o_{\le t}, a_{<t}) \]

直觉上,belief state 是“根据我目前看到和做过的事情,我相信世界大概是什么样”。


3. Model-Free vs Model-Based

方法 学什么 怎么选动作
Model-Free RL 直接学策略或价值函数 直接执行 $\pi(a
Model-Based RL 学环境动力学模型 在模型里预测未来再决策

model-free 像是“熟能生巧”,model-based 像是“先在脑子里演算一下”。

世界模型属于 model-based 思路,但现代方法常常把两者结合:

  • 用世界模型想象未来轨迹。
  • 在想象轨迹上训练 actor-critic。
  • 执行时策略可以直接出动作,也可以再加 MPC 搜索。

4. 世界模型学习什么?

4.1 转移模型

预测状态如何变化:

\[ \hat{s}_{t+1} = f_\theta(s_t,a_t) \]

这是世界模型的核心。

转移模型有两种常见形式:

形式 写法 适合
确定性 \(\hat{s}_{t+1}=f_\theta(s_t,a_t)\) 简单低维环境、物理较稳定
随机性 \(s_{t+1}\sim p_\theta(s_{t+1}\mid s_t,a_t)\) 图像、真实世界、多未来、不确定环境

真实环境通常是随机或部分可观测的。比如同样推一个杯子,杯子可能滑动、倾倒或被桌面摩擦卡住。

4.2 观测模型

从内部状态重建观测:

\[ \hat{o}_t = g_\theta(s_t) \]

如果观测是图像,观测模型就是图像解码器。Dreamer 等方法会用它辅助训练 latent state。

4.3 奖励模型

预测动作后会得到多少奖励:

\[ \hat{r}_t = r_\theta(s_t,a_t) \]

规划时不一定需要预测像素,但通常需要预测奖励或价值。

4.4 终止模型

预测 episode 是否结束:

\[ \hat{c}_t = p(\text{continue} \mid s_t) \]

比如游戏角色死亡、机器人任务完成或环境超时。

4.5 表征模型

当观测是图像时,模型通常不会直接把整张图当状态,而是先编码成 latent state:

\[ z_t = e_\theta(o_t) \]

一个好的 \(z_t\) 应该保留:

  • 物体位置和速度。
  • 机器人或智能体自身状态。
  • 与任务相关的接触、遮挡、目标信息。
  • 足够预测未来的历史记忆。

它不一定要保留:

  • 背景纹理的每个细节。
  • 无关物体的精确外观。
  • 对奖励和动作无影响的噪声。

5. 像素空间 vs 隐空间

像素空间预测

直接预测未来图像:

\[ \hat{o}_{t+1} = f_\theta(o_t,a_t) \]

优点:

  • 结果直观,可视化容易。
  • 可以作为交互式模拟器。

缺点:

  • 未来有大量不确定细节。
  • 预测每个像素很贵。
  • 像素误差不一定等于决策误差。

隐空间预测

先编码:

\[ z_t = e_\theta(o_t) \]

再预测:

\[ \hat{z}_{t+1} = f_\theta(z_t,a_t) \]

优点:

  • 更紧凑。
  • 更容易长期 rollout。
  • 可以保留任务相关信息,忽略无关纹理。

缺点:

  • 隐空间是否真的可用于决策,需要额外验证。
  • 不一定能生成可检查的真实画面。

6. 训练目标

常见损失包括:

损失 目的
重建损失 让 latent state 保留观测信息
转移损失 让模型预测下一状态
奖励损失 让模型支持任务规划
KL 损失 约束随机 latent 分布
对比/表征损失 学到稳定、有语义的表示
JEPA 预测损失 预测未来 embedding
diffusion/flow 损失 学习生成连续未来轨迹或视频

预测目标要服务决策

世界模型不是为了把每个像素预测得漂亮,而是为了让智能体能选出更好的动作。漂亮视频不一定等于好策略。

6.1 一步预测损失

最简单训练方式是 one-step prediction:

\[ \mathcal{L}_{1} = \| f_\theta(s_t,a_t)-s_{t+1}\|^2 \]

如果预测奖励:

\[ \mathcal{L}_{r} = \| r_\theta(s_t,a_t)-r_t\|^2 \]

优点是简单稳定,缺点是只保证一步准,不保证多步 rollout 准。

6.2 多步预测损失

让模型从 \(s_t\) 开始连续滚动预测:

\[ \hat{s}_{t+1}=f_\theta(s_t,a_t) \]
\[ \hat{s}_{t+2}=f_\theta(\hat{s}_{t+1},a_{t+1}) \]

然后对多个未来状态一起计算误差:

\[ \mathcal{L}_{H}=\sum_{k=1}^{H}\|\hat{s}_{t+k}-s_{t+k}\|^2 \]

这更接近规划需要,但训练更难,因为误差会在计算图中连续传递。

6.3 Teacher Forcing vs 自回归 Rollout

训练时常见 teacher forcing:

每一步都喂真实 s_t,再预测 s_{t+1}

规划时是自回归 rollout:

喂模型自己的预测 ŝ_t,再预测 ŝ_{t+1}

这两者不一致,会导致训练看起来很好,实际多步预测崩掉。

6.4 概率模型的负对数似然

如果模型输出一个分布,例如高斯:

\[ p_\theta(s_{t+1}\mid s_t,a_t)=\mathcal{N}(\mu_\theta,\sigma_\theta^2) \]

训练可以最小化负对数似然:

\[ \mathcal{L}_{\text{NLL}}=-\log p_\theta(s_{t+1}\mid s_t,a_t) \]

它不仅让均值接近真实未来,也让模型学习“不确定性有多大”。


7. 世界模型的核心难点

7.1 误差累积

一步预测误差很小,多步 rollout 后可能变大:

s_t -> s_{t+1} -> s_{t+2} -> ... -> s_{t+H}
       小误差       更大误差        轨迹跑偏

这就是 compounding error。

7.2 分布偏移

模型训练时看到的是数据集里的动作;规划时可能尝试数据外动作,预测会不可靠。

7.3 多未来

同一个状态和动作可能有多种未来。例如球被撞后可能向左滚,也可能被挡住。确定性模型容易平均出模糊结果。

7.4 不确定性

世界模型应该知道“我不知道”。常见方法包括 ensemble、概率 latent、dropout 或显式 uncertainty head。

不确定性可以分成两类:

类型 来源 例子 怎么缓解
Aleatoric 世界本身随机 球碰撞后有多种可能反弹 输出概率分布
Epistemic 数据不够,模型不知道 从未见过这个动作 ensemble、收集更多数据

规划时尤其要警惕 epistemic uncertainty。模型没见过的动作可能被错误预测成“高奖励捷径”。

7.5 因果与可控性

一个好世界模型不只是生成合理画面,还要对动作有正确因果响应:

向左转 -> 视角真的向左变化
夹爪闭合 -> 物体可能被抓起
加速 -> 车辆位置和速度改变

8. 判断一个模型是不是世界模型

可以问五个问题:

  • 它是否有内部状态或表征?
  • 它是否预测未来?
  • 它是否以动作作为条件?
  • 它是否能支持规划或策略学习?
  • 它是否在长期 rollout 中保持一致?

满足越多,就越接近“可用于智能体决策”的世界模型。


9. 新手必须掌握的最小闭环

如果只记一个公式闭环,记这个:

收集数据 D = (s_t, a_t, s_{t+1}, r_t)
训练模型 fθ(s_t, a_t) -> s_{t+1}, r_t
在模型里尝试很多动作序列
选预测回报最高的动作
执行第一个动作
重新观察并重复

这就是从“会预测”到“会决策”的最小世界模型。