--- title: 06-世界模型 tags: - 世界模型 - Model-based-RL - 强化学习 - 深度强化学习 --- # Model-based RL(世界模型) > 本笔记面向深度学习与强化学习科研人员,系统梳理基于世界模型的强化学习方法。 ## 1. Model-based RL 的基本框架 ### 1.1 世界模型(World Model)的定义 在 Model-based RL 中,我们构建一个**世界模型**(World Model)来学习环境的动力学: $$ p(s_{t+1} \mid s_t, a_t): \text{状态转移函数} \\ p(r_t \mid s_t, a_t): \text{奖励函数} $$ 其中 $s_t$ 为状态,$a_t$ 为动作,$r_t$ 为奖励。 世界模型的目标是**从历史交互数据中学习这些条件概率分布**,从而无需再与真实环境交互,仅通过想象(imagination)即可进行策略优化。 ### 1.2 模型学习的监督学习目标 给定经验回放缓冲区 $\mathcal{D} = \{(s_t, a_t, s_{t+1}, r_t)\}$,世界模型的参数 $\theta$ 通过以下监督学习目标进行优化: $$ \mathcal{L}^\text{model}(\theta) = \sum_{(s_t, a_t, s_{t+1}, r_t) \in \mathcal{D}} \left[ -\log p_\theta(s_{t+1} \mid s_t, a_t) - \log p_\theta(r_t \mid s_t, a_t) \right] $$ 对于离散状态空间,可以简化为交叉熵损失;对于连续状态空间,通常使用高斯分布建模并优化负对数似然。 ### 1.3 模型预测误差对策略优化的影响(误差传播分析) 世界模型的学习误差会随着想象步数的增加而**指数级累积**,这是 Model-based RL 的核心挑战。 设 $h_t$ 为真实环境轨迹,$\hat{h}_t$ 为模型想象的轨迹,定义单步误差: $$ \epsilon_t = \mathbb{E}[d(s_{t+1}, \hat{s}_{t+1})] $$ 其中 $d(\cdot, \cdot)$ 为某种距离度量(如 KL 散度或欧氏距离)。 经过 $H$ 步想象后,累积误差满足: $$ \epsilon_{\mathrm{KL}}(H) \leq \epsilon_0 \cdot \sum_{i=0}^{H-1} \gamma^i \approx \frac{\epsilon_0}{1-\gamma}, \quad \gamma < 1 $$ 对于确定性模型,误差会快速发散;对于随机性模型,随机性可以"吸收"部分误差,减缓发散速度。 **策略依赖误差**:策略 $\pi_\phi$ 依赖于模型预测的回报,而模型误差导致策略偏移。设真实回报为 $J(\pi)$,模型回报为 $\hat{J}(\pi)$,则: $$ |J(\pi) - \hat{J}(\pi)| \leq \frac{2 R_{\max} \cdot \epsilon_{\mathrm{KL}}{(1-\gamma)^2} $$ 其中 $R_{\max}$ 为单步奖励上界。 --- ## 2. Dreamer 系列 Dreamer 是 Hafner 等人提出的基于世界模型的强化学习系列算法,其核心创新在于**在隐状态空间中进行高效的策略优化**。 ### 2.1 Dreamer v1:RSSM(Recurrent State Space Model)架构 Dreamer v1 提出了 **RSSM**,一种混合了确定性隐状态和随机性隐状态的模型架构: $$ \text{RSSM}: \begin{cases} h_t = f_\theta(h_{t-1}, z_t, a_{t-1}) & (deterministic hidden state) \\ z_t \sim p_\phi(z_t \mid h_t, o_t) & (stochastic hidden state) \\ o_t \sim p_\psi(o_t \mid h_t, z_t) & (observation reconstruction) \\ r_t \sim p_\xi(r_t \mid h_t, z_t) & (reward prediction) \end{cases} $$ 其中: - $h_t$:确定性 RNN 隐状态(捕捉长期依赖) - $z_t$:随机变量(处理环境不确定性) - $o_t$:观测(像素或特征) - $a_{t-1}$:上一时刻动作 **KL 散度正则化目标**: Dreamer v1 的完整训练目标包含一个平衡重建质量与隐状态预测能力的 KL 正则项: $$ \mathcal{L}(\theta, \phi, \xi) = \sum_{t} \underbrace{\log p_\xi(r_t \mid h_t, z_t)}_{\mathrm{KL} + \beta \cdot \underbrace{D_{\mathrm{KL}}(q_\phi(z_t \mid h_t, o_t) \| p_\psi(z_t \mid h_t))}_{\mathrm{KL} $$ 其中 $\beta > 0$ 为权衡系数: - $\beta$ 过大:强制 $z_t$ 服从先验,丢失信息,模型退化为确定性模型 - $\beta$ 过小:后验过于依赖观测,过拟合观测噪声 **RSSM 的设计哲学**: - **确定性部分** ($h_t$):提供稳定的梯度传播路径,解决长序列训练难题 - **随机部分** ($z_t$):捕捉环境的内在随机性,允许模型表达多种可能的未来 ### 2.2 Dreamer v2/v3:表示能力增强 **Dreamer v2** 的主要改进: 1. **特征对齐(Feature Alignment)**:将像素级重建替换为特征级对齐,使用对比学习损失对齐隐表示与真实环境特征。 2. **动作离散化(Action Discretization)**:将连续动作空间映射到离散嵌入,简化策略优化。 3. **混合自动编码器架构**:引入双路径编码器,同时处理像素和状态信息。 **Dreamer v3** 的主要改进: 1. **尺度化架构(Scalar Latent)**:引入标量随机隐变量,显著增强模型表达能力。 2. **无人工特设计的网络架构**:通过超参数自动搜索发现更好的 RSSM 配置。 3. **3D 视觉环境的端到端学习**:首次在 Minecraft 等复杂 3D 环境中实现从零开始的视觉强化学习。 **Dreamer v3 的损失函数**: $$ \mathcal{L} = \sum_{t} \log p_\xi(r_t \mid h_t, z_t) + \alpha \cdot \log p_\xi(o_t \mid h_t, z_t) + \beta \cdot D_{\mathrm{KL}}(q_\phi(z_t \mid h_t, o_t) \| p_\psi(z_t \mid h_t)) $$ 其中 $\alpha$ 控制观测重建的重要性。 ### 2.3 想象空间中的策略优化 Dreamer 系列的核心创新是**不需要与真实环境交互**,仅通过学习到的世界模型进行策略优化: **想象轨迹展开**: 给定当前策略 $\pi_\phi$ 和世界模型 $(\theta, \phi, \xi)$,我们可以在隐空间中进行"想象": $$ \forall t \geq 0: \quad \hat{a}_t \sim \pi_\phi(\cdot \mid \hat{h}_t, \hat{z}_t), \quad \hat{z}_{t+1} \sim p_\psi(\cdot \mid \hat{h}_t, \hat{a}_t), \quad \hat{h}_{t+1} = f_\theta(\hat{h}_t, \hat{z}_{t+1}, \hat{a}_t) $$ **策略梯度更新**: $$ \nabla_\phi J(\pi_\phi) \approx \sum_{t=0}^{H-1} \nabla_\phi \sum_{t'=t}^{H-1} \hat{r}_{t'} \cdot \nabla_\phi \log \pi_\phi(\hat{a}_t \mid \hat{h}_t, \hat{z}_t) $$ 其中 $\hat{r}_t = \log p_\xi(r_t \mid \hat{h}_t, \hat{z}_t)$ 为想象奖励。 **算法流程**: 1. **数据收集**:在真实环境中与环境交互,收集经验 $(s_t, a_t, s_{t+1}, r_t)$ 2. **世界模型学习**:使用收集的数据训练世界模型参数 $(\theta, \phi, \xi)$ 3. **想象策略优化**:在世界模型的想象空间中,使用策略梯度算法(如 REINFORCE 或 Actor-Critic)优化策略 $\pi_\phi$ 4. **策略执行**:使用更新后的策略在真实环境中执行动作 5. 重复以上步骤 --- ## 3. SimPLe(Sample Efficient Model-based RL) SimPLe 是 2019 年由 Kaiser 等人提出的像素级 Model-based RL 算法,其核心是在**像素空间**直接进行世界建模和动作规划。 ### 3.1 像素级世界模型的构建 SimPLe 使用一个**视频预测模型**作为世界模型,输入当前帧和动作序列,预测下一帧: $$ \hat{o}_{t+1} = f_\theta(o_t, a_t) $$ 网络架构基于 VTN(Video Prediction Network),包含: - **编码器**:将当前像素帧编码为低维隐表示 - **解码器**:从隐表示重建下一帧像素 - **动作融合**:通过空间广播(spatial broadcasting)或通道拼接注入动作信息 **训练目标**: $$ \mathcal{L}_\text{SimPLe}(\theta) = \sum_{t=0}^{T-1} \| o_{t+1} - \hat{o}_{t+1} \|^2 $$ ### 3.2 交叉熵方法(CEM)用于动作规划 SimPLe 使用**交叉熵方法**(Cross-Entropy Method)进行动作序列规划: **CEM 简介**: CEM 是一种基于采样的优化算法,适用于难以求导的优化目标。其核心思想是维护一个动作分布的参数化家族,通过迭代优化使其逼近最优解。 **CEM 规划算法**: ``` 输入:世界模型 f_θ,初始观测 o_0, horizon H,迭代次数 K 1. 初始化动作序列分布:μ ← 0, Σ ← I 2. for iter = 1 to K: 3. 从 N(μ, Σ) 采样 N 条动作序列 {a_0^{(i)}, ..., a_{H-1}^{(i)}} 4. for each 动作序列 i: 5. 使用世界模型 rollout:o_{1:H}^{(i)} = f_θ(o_0, a_0^{(i)}, ..., a_{H-1}^{(i)}) 6. 计算累积奖励 R^{(i)}(或目标函数值) 7. 选择 top-k% 最优序列,计算新的 μ, Σ 8. return μ(最优动作序列) ``` **在 SimPLe 中的应用**: - Horizon $H$ 通常设为 10-50 步 - 每步使用贪心策略执行第一个动作,然后重新规划( receding horizon control) - 采样数量通常为 100-1000 条轨迹 ### 3.3 与模型预测控制(MPC)的关系 SimPLe 本质上是一种 **Model Predictive Control(MPC)** 方法: | 组件 | SimPLe | 经典 MPC | |------|--------|----------| | 预测模型 | 神经网络视频预测器 | 线性/非线性动力学模型 | | 规划算法 | 交叉熵方法 | iLQR, SQP | | 控制频率 | 低(每 10-50 步重新规划) | 高(每步重新规划) | | 样本效率 | 高(几千步交互即可) | 取决于模型精度 | SimPLe 的优势在于**样本效率**:仅需约 10 万步环境交互(相当于 2 小时游戏时间)即可学习有效策略,相比无模型方法(如 DQN)提升 10 倍以上。 --- ## 4. MuZero(AlphaFold2 的 RL 版) MuZero 是 DeepMind 提出的无模型先验的基于模型的强化学习算法,其核心创新是**无需显式建模环境动力学**,而是通过隐模型学习"最优"的奖励预测。 ### 4.1 无监督学习奖励函数(无需环境交互) MuZero 的核心洞察:**我们不需要精确建模环境 $p(s_{t+1} \mid s_t, a_t)$,我们只需要一个能预测累积奖励的隐模型**。 MuZero 维护一个**隐状态空间**,通过以下组件建模: $$ \begin{aligned} \text{表示网络(Representation)}: & \quad h_\phi(s_0) = h_0 \\ \text{动态网络( dynamics)}: & \quad (r_t, s_{t+1}) = g_\phi(s_t, a_t) \\ \text{预测网络(Prediction)}: & \quad (\pi_t, v_t) = f_\phi(s_t) \end{aligned} $$ 其中 $s_t$ 是隐状态,$r_t$ 是单步奖励,$\pi_t$ 是策略,$v_t$ 是价值估计。 **自监督学习目标**: MuZero 不依赖环境交互的奖励信号,而是通过 MCTS 自我对弈生成隐奖励: $$ \mathcal{L}(\phi) = \sum_{t} \left[ \underbrace{(v_t - z_t)^2}_{\mathrm{KL} + \underbrace{\sum_j \pi_t(a_j) \log \pi_t(a_j)}_{\mathrm{KL} - \underbrace{\log p_\theta(a_t \mid s_t)}_{\mathrm{KL} \right] $$ 其中 $z_t$ 是 n 步回报的蒙特卡洛估计。 ### 4.2 MCTS(蒙特卡洛树搜索)与模型预测的结合 MuZero 将 MCTS 与学习到的隐模型结合,实现高效的规划: **MCTS 节点扩展**: 每个 MCTS 节点存储:$(s, N, W, Q, P)$ - $s$:隐状态 - $N$:访问计数 - $W$:累计价值 - $Q$:平均价值 - $P$:先验策略 ** Selection 过程**(PUCT 公式): $$ a^* = \arg\max_a \left[ Q(s, a) + c \cdot P(s, a) \cdot \frac{\sqrt{\sum_b N(s, b)}}{1 + N(s, a)} \right] $$ ** Expansion**:使用动态网络 $g_\phi$ 扩展叶子节点: $$ (r_k, s_{k+1}) = g_\phi(s_k, a_k) $$ ** Backup**:从叶子节点向上更新 $W$ 和 $Q$。 **MuZero 的规划优势**: - MCTS 提供树搜索的探索机制,避免陷入局部最优 - 隐模型允许"无限深度"的预演,不受真实环境步数限制 - 每次 MCTS 搜索相当于数千次想象的策略评估 ### 4.3 策略与值网络的联合训练 MuZero 使用 **Unplugged Atari** setting,即完全从历史数据中学习,无需环境交互。 **训练流程**: 1. **数据采样**:从 replay buffer 采样 episode片段 2. **隐状态展开**:使用表示网络初始化 $s_0$,然后用动态网络展开 $H$ 步 3. **多步回报计算**:对于每一步 $t$,计算 n 步回报 $z_t = \sum_{i=0}^{n-1} \gamma^i r_{t+i} + \gamma^n v_{t+n}$ 4. **梯度更新**:最小化价值、策略和奖励预测的联合损失 **损失函数**: $$ \mathcal{L}(\phi) = \sum_{t=0}^{H} \ell_v(v_t, z_t) + \ell_\pi(\pi_t, \pi_t^{\mathrm{KL}}) + \ell_r(r_t, r_t^{\mathrm{KL}}) $$ 其中 $\ell_v$、$\ell_\pi$、$\ell_r$ 分别为价值、策略和奖励的预测损失。 --- ## 5. 视觉模型预测 ### 5.1 视频预测模型 **DVDMF(Variational Discriminative Video Prediction)**: DVDMF 使用变分推断进行视频预测,建模未来轨迹的条件分布: $$ p(o_{1:H} \mid o_0, a_{0:H-1}) = \int p_\theta(o_{1:H} \mid z, o_0, a_{0:H-1}) q_\phi(z \mid o_0, a_{0:H-1}) dz $$ 其中 $z$ 为潜在变量,捕捉未来不确定性。 **SVG(Stochastic Video Generation)**: SVG 引入随机变量 $z_t$ 到视频生成过程: $$ p(o_{1:H}) = \prod_{t=1}^{H} p_\theta(o_t \mid o_{