世界模型的定义

一句话定位

问题:智能体如何将高维原始观测压缩为紧凑的内部状态表征,并基于该表征进行长期预测与决策?

定位:第一章第一节,属于”理解世界”核心基础概念,连接感知输入与决策输出。


前置依赖


核心思想

人类大脑并非直接处理视网膜的每一个光子,而是构建了一个关于世界的内部”模拟器”——我们不记忆每一帧画面,而是构建了一个压缩的world model,能够预测即将发生什么、采取什么行动会得到什么结果。

直觉:世界模型的核心是状态压缩未来预测的协同优化。

  • 压缩(Compression):将无限的高维感知信息压缩为有限的内部状态
  • 预测(Prediction):给定当前状态与动作,预测下一状态与奖励
  • 决策(Decision):基于预测选择最优动作

这一思想可追溯至 Richard Bellman 的动态规划与 MDP 理论,但现代世界模型将这一经典框架推进到了深度学习时代——用神经网络而非表格来表达状态转移与奖励函数。


模型结构图

                        世界模型(World Model)
                        =======================

输入层:        o_t (t时刻观测,原始像素/传感器数据)
                  │
                  ▼
┌─────────────────────────────────────────────────────────────┐
│  观测编码器 (Observation Encoder) q_φ(s_t | o_≤t)            │
│  ─────────────────────────────────────────────────────────  │
│  目的: 将高维观测 o_t 映射到紧凑隐状态 s_t                   │
│  形式: CNN/Transformer/ViT,将像素空间压缩为低维向量          │
│  输入: o_t (可能含历史上下文 o_≤t)                           │
│  输出: s_t ~ q_φ(·|o_≤t),后验估计                          │
└─────────────────────────────────────────────────────────────┘
                  │
                  ▼ s_t (隐状态)
┌─────────────────────────────────────────────────────────────┐
│  隐状态序列 (Latent State Sequence) s_1, s_2, ..., s_T       │
│  ─────────────────────────────────────────────────────────  │
│  状态维度: dim(s_t) << dim(o_t)                              │
│  马尔可夫假设: 状态转移仅依赖前一时刻状态与动作               │
└─────────────────────────────────────────────────────────────┘
                  │
                  ▼
┌───────────────────────┐    ┌───────────────────────────────┐
│  转移模型 (Transition) │    │  奖励模型 (Reward)             │
│  p_θ(s_{t+1}|s_t,a_t) │    │  p_θ(r_t|s_t,a_t)              │
│  ─────────────────────│    │  ─────────────────────────────  │
│  预测下一隐状态        │    │  预测即时奖励                  │
└───────────────────────┘    └───────────────────────────────┘
                  │                      │
                  ▼                      ▼
┌─────────────────────────────────────────────────────────────┐
│  重构器 (Reconstructor) p_θ(o_t | s_t)                      │
│  ─────────────────────────────────────────────────────────  │
│  目的: 确保隐状态 s_t 保留足够重建观测的信息                   │
│  输入: s_t                                                      │
│  输出: o_t̂ (重构的观测)                                       │
└─────────────────────────────────────────────────────────────┘
                  │
                  ▼ o_t̂ (重构观测)
            损失计算: L = -log p_θ(o_t|s_t) + KL[q_φ(s_t|o_≤t) || p_θ(s_t|s_{t-1},a_{t-1})]

数学推导

1. 变分世界模型的基本框架

世界模型的核心是学习一个隐状态空间状态转移动力学的联合分布。假设给定智能体与环境的交互序列:

其中 是观测, 是动作, 是奖励。

联合分布(含隐状态的生成模型)为:

2. 变分下界(Variational Lower Bound, ELBO)

由于隐状态 是不可观测的,我们引入识别模型(encoder) 来近似真实后验

证据下界(ELBO)

其中:

  • 是证据 的下界
  • 第一项是重构损失,衡量隐状态对观测的重建质量
  • 第二项是KL正则项,约束识别后验 与先验 的差距
  • 是权重系数(重要性采样平衡)

3. 状态空间模型(State Space Model, SSM)

在Dreamer系列中,世界模型被建模为递归状态空间模型(RSSM)

RSSM的数学形式

4. 动作与奖励的完整建模

完整的 World Model 包含四个核心组件:

组件符号形式维度
观测编码器CNN/Transformer encode
状态转移扁平MLP或RNN
观测重构CNN/VAE decode
奖励预测MLP

5. 训练目标函数


训练细节

数据构造

世界模型从智能体与环境交互的轨迹数据中学习:

  • 数据来源:在线收集(online interaction)或离线数据集(offline dataset)
  • 批量采样:从长轨迹中随机裁剪 subsequence(长度 ,通常 16-64步)
  • 数据增强:对观测 做随机裁剪、颜色抖动(像素级模型)

输入输出(IO)

  • 输入(Encoder):原始像素 ,通常 resize 到
  • 输入(Transition),其中 通常为 one-hot 或连续向量
  • 输出(Decoder):重构的 ,与原观测同维度
  • 输出(Reward):标量奖励

损失计算

  1. 重构损失:均方误差(MSE)或二元交叉熵(BCE),取决于观测类型
    • 图像重构:(像素级BCE)
  2. 奖励损失:MSE 或 Huber loss
  3. KL散度:闭式计算(两个高斯分布之间)

优化器配置

  • 学习率,Adam 或 AdamW
  • 批次大小:32 到 256(取决于隐状态维度与模型规模)
  • 梯度裁剪:全局梯度范数
  • 预热(warm-up):学习率线性预热 1000-5000 步
  • 隐状态维度:通常 ,DreamerV3 用 32×32=1024 维

训练流程

for epoch in range(N_epochs):
    for batch in dataloader:
        # 1. 编码观测
        s_t = encoder(o_t)

        # 2. 状态转移(rollout)
        for step in range(T:
            s_{t+1} = transition(s_t, a_t)

        # 3. 重构与奖励预测
        o_hat = decoder(s_t)
        r_hat = reward(s_t, a_t)

        # 4. 计算损失
        loss = L_recon + L_reward + β * L_kl

        # 5. 反向传播(梯度累积/分布式)
        optimizer.step()

模块训练顺序

  1. 先训Encoder-Decoder:确保隐状态能重建观测(避免 posterior collapse)
  2. 再训Transition:确保转移模型学会状态动态
  3. 联合训练:所有模块一起训练,ELBO 联合优化

推理/Rollout/规划过程

Imagination Rollout(想象 rollout)

在世界模型训练完成后,智能体可以在隐状态空间中进行”想象”——即不需要真实环境交互,直接在模型内部预测未来:

# Imaginary Rollout(Dreamer算法核心)
s_0 = encoder(o_0)  # 编码当前观测

for t in range(H):  # H = imagination horizon(如 15步)
    a_t = policy(s_t)  # 当前策略网络基于隐状态选择动作
    s_{t+1} = transition(s_t, a_t)  # 世界模型预测下一状态(纯计算)
    r_{t+1} = reward(s_t, a_t)  # 世界模型预测奖励
    s_t = s_{t+1}  # 更新状态,继续想象

这就是 Dreamer 的核心:在隐状态空间中进行 long-horizon planning,无需实际执行动作即可评估策略。

Planning/Search(规划与搜索)

世界模型支持多种规划策略:

  1. 模型预测控制(Model Predictive Control, MPC)

    • 在每个时间步,想象 步的未来
    • 评估所有可能的动作序列(树搜索或CEM)
    • 选择最优动作执行
  2. 交叉熵方法(Cross-Entropy Method, CEM)

    • 在隐空间中对动作序列进行采样
    • 选择奖励最高的序列
  3. 基于梯度的规划

    • 最大化 ,对动作 求梯度

Train/Inference 一致性

世界模型的关键设计原则是:训练与推理的一致性(consistency)

  • 训练时:状态由真实观测编码得到(
  • 推理时:状态由想象转移得到(
  • 分布漂移问题:训练与推理的状态来源不同,导致误差累积
    • 解决方案:Dreamer 使用 KL 正则项 使得先验 接近后验 ,从而推理时的转移预测更准确

优点与局限

优点

  1. 观测压缩:将高维像素压缩到低维隐空间(压缩比可达 ),减少计算与存储成本
  2. 长期预测:在隐空间做 imagination rollout,突破物理世界的采样限制
  3. 端到端训练:学习表示与动态联合优化,表示更适合下游任务
  4. sample efficiency:离线学习,不需要实时交互
  5. 多任务泛化:隐空间表示对视觉变化更鲁棒(如背景、光照变化)

失败模式

  1. 重建导向:模型可能过度关注像素重建而忽略语义信息,导致隐空间缺乏物理意义
  2. 误差累积:想象 rollout 中误差指数级累积,尤其在长时 horizon
  3. posterior collapse:识别后验 退化为先验,隐空间失去信息
  4. 奖励 hack:奖励模型过拟合到稀疏信号的特定模式
  5. 分布外(OOD):在训练分布外的状态/动作空间中,转移模型失效

训练瓶颈

  1. KL权重 的调节 过大导致 prior collapse(无法重建),过小导致 posterior collapse(转移模型学不到)
  2. 隐状态维度选择:维度太小欠拟合,太大过拟合且计算成本高
  3. 长序列训练:梯度从 反传回 时梯度消失/爆炸,RSSM 使用 post-decoder sampling 缓解
  4. 动作信息的利用:某些实现忽略动作依赖,导致奖励预测不准

与前后内容的衔接

继承自

  • 强化学习基础:MDP、状态转移、奖励信号的框架
  • 变分推断:ELBO、KL散度、隐变量模型的数学基础
  • 自编码器/VAE:压缩与重构的表示学习思想

解决

  • 像素级RL的问题:直接在像素空间做规划维度爆炸、计算成本高
  • 梦境学习:允许智能体在隐空间”做梦”(Dreamer),无需真实交互即可学习策略

引向


可复现实现要点

最小模块

实现一个最简单的世界模型需要:

# 1. Encoder: CNN (输入观测 → 隐状态)
encoder = ConvDecoder(input_dim=3, hidden_dim=256, latent_dim=32)
 
# 2. Transition: MLP (隐状态 + 动作 → 下一隐状态)
transition = MLP(input_dim=latent_dim + action_dim, hidden_dim=256, output_dim=latent_dim)
 
# 3. Decoder: CNN (隐状态 → 重构观测)
decoder = ConvDecoder(input_dim=latent_dim, hidden_dim=256, output_dim=3)
 
# 4. Reward: MLP (隐状态 + 动作 → 奖励标量)
reward_net = MLP(input_dim=latent_dim + action_dim, hidden_dim=128, output_dim=1)

常见bug

  1. 维度不匹配:Encoder输出的隐状态维度与Transition输入不匹配
  2. 动作缺失:Transition未接入动作输入,导致预测退化
  3. 梯度截断:长序列训练时梯度爆炸,未正确设置梯度裁剪
  4. KL权重设置 时模型退化为纯重构,无法学到动态; 时可能导致 posterior collapse
  5. 随机种子:变分模型对随机种子敏感,建议固定 seed 并多次实验取平均

章节摘要

  1. 世界模型是智能体对环境内部结构的概率表征,包含观测编码器、状态转移模型、奖励预测器三个核心组件。
  2. 变分世界模型通过最大化 ELBO 联合优化隐状态表征与动态模型,平衡重构精度与转移一致性。
  3. **RSSM(递归状态空间模型)**是 Dreamer 系列的标准架构,将世界模型建模为隐马尔可夫链。
  4. Imagination Rollout允许智能体在隐空间”做梦”,无需真实环境交互即可进行长期规划。
  5. 训练-推理一致性是设计关键:KL 正则项确保真实观测编码与想象转移产生相似的状态分布。
  6. 误差累积是世界模型的长 horizon 主要挑战,体现在隐状态转移与奖励预测的复合误差上。
  7. 状态压缩比可达 ,将原始像素映射到紧凑向量以支持高效规划。
  8. 世界模型的端到端训练实现了表示学习与策略优化的统一,避免了传统 RL 中表示与控制分离的问题。

关键词

世界模型、状态空间模型、变分推断、ELBO、RSSM、观测编码、隐状态、转移模型、重构损失、KL正则、Imagination Rollout、模型预测控制、规划与搜索、奖励预测、表示学习、压缩感知