DreamerV3 论文解读:智能体如何在“想象”中学习?

DreamerV3 论文解读:智能体如何在“想象”中学习?
在强化学习中,智能体通常需要不断与环境交互,通过尝试不同动作获得反馈,再逐渐学习出有效的控制策略。
这种方法虽然直观,但也存在一个明显问题:真实环境中的数据采集通常代价较高。对于机器人、自动驾驶和工业控制等任务,大量试验不仅耗时,还可能带来设备损耗。
世界模型提供了另一种思路:
智能体先学习环境的变化规律,再利用学习到的环境模型模拟后续状态,并在模拟结果中训练策略。
DreamerV3 正是这一方向具有代表性的研究之一。
论文题目为 《Mastering Diverse Domains through World Models》,由 Danijar Hafner、Jurgis Pasukonis、Jimmy Ba 和 Timothy Lillicrap 提出。DreamerV3 希望解决的核心问题是:能否使用一套相对统一的算法和参数配置,完成不同类型的强化学习任务?
一、什么是世界模型?
世界模型可以理解为智能体内部建立的环境预测系统。
假设智能体当前位于状态 (s_t),执行动作 (a_t) 后,环境会进入下一个状态 (s_{t+1}),并产生奖励 (r_t)。
传统强化学习通常需要在真实环境中执行动作,才能观察到下一状态和奖励。
世界模型则尝试学习以下关系:
当前状态 + 当前动作 → 下一状态 + 奖励
当模型掌握这种变化规律后,就可以在内部生成虚拟轨迹。
例如,一个移动智能体准备向前行进时,世界模型可以预测:
下一时刻看到的画面;
智能体的位置变化;
是否接近目标;
当前动作可能获得的奖励;
当前任务是否即将结束。
智能体不必每次都在真实环境中尝试,而是可以先在模型生成的轨迹中评估不同动作。
DreamerV3 的关键特点,就是在世界模型构建的潜在空间中进行策略学习。它会将摄像头画面或状态向量压缩成较紧凑的表示,再预测这些内部表示如何随动作发生变化。
二、DreamerV3 的基本结构
DreamerV3 主要由三个部分组成:
世界模型;
Actor 动作网络;
Critic 价值网络。
这三个模块会在智能体与环境交互的过程中同步训练。
1. 世界模型:学习环境变化
世界模型负责回答一个问题:
执行某个动作以后,环境可能发生什么变化?
它主要包含以下几个功能模块:
编码器:将图像或状态向量转换为潜在表示;
动态模型:预测潜在状态如何随动作变化;
解码器:尝试从潜在状态恢复观测信息;
奖励预测器:预测当前状态和动作可能产生的奖励;
持续状态预测器:判断当前任务是否继续。
对于图像输入,DreamerV3 使用卷积网络进行编码和解码;对于低维状态输入,则使用多层感知机进行处理。动态模型负责在潜在空间中描述环境状态随时间的变化。
这里最重要的一点是,Actor 并不需要直接在原始图像中进行大量规划。
它主要在世界模型学习到的潜在空间中生成和评估轨迹。相比直接预测每个像素,潜在状态更加紧凑,也更适合进行连续预测。
2. Actor:选择下一步动作
Actor 是智能体的动作策略。
世界模型生成若干条未来轨迹后,Actor 会根据这些模拟结果学习如何选择动作。
例如,在一个控制任务中,Actor 可能需要决定:
向前还是向后;
转向左侧还是右侧;
机械臂关节应该如何运动;
是否继续当前操作;
是否切换到其他动作。
Actor 的目标不是简单追求当前一步的奖励,而是尽可能提高整段未来轨迹的累计收益。
3. Critic:评估未来结果
Critic 负责估计某个状态未来可能获得的累计收益。
可以把 Actor 和 Critic 的关系简单理解为:
Actor 提出动作方案;
Critic 评价动作方案;
Actor 根据评价继续改进。
世界模型负责提供模拟环境,Actor 负责生成动作,Critic 则负责判断这些动作是否具有长期价值。
三者结合后,智能体可以在内部模拟出的轨迹中进行大量策略训练,而不必完全依赖真实环境数据。
三、DreamerV3 是如何训练的?
DreamerV3 的训练流程可以分为四个步骤。
第一步:与真实环境交互
智能体根据当前策略执行动作,并收集:
观测信息;
动作信息;
奖励信息;
任务结束标志。
这些数据会被存入经验回放缓冲区。
第二步:训练世界模型
系统从经验回放缓冲区中抽取一段真实轨迹,用于训练世界模型。
世界模型需要学习:
当前观测对应的潜在状态;
动作执行后的潜在状态;
当前奖励;
下一时刻是否继续。
通过反复学习,模型逐渐掌握环境中的基本动态规律。
第三步:在潜在空间中生成轨迹
完成世界模型更新后,DreamerV3 会从某个潜在状态出发,让 Actor 选择动作。
动态模型根据动作预测下一状态,Actor 再根据下一状态继续选择动作,由此生成一段模拟轨迹。
这段轨迹不是直接从真实环境中获得的,而是世界模型内部预测出来的。
这也是 Dreamer 名称的由来:模型能够在内部生成未来场景,并利用这些场景训练策略。
第四步:更新 Actor 和 Critic
Critic 根据模拟轨迹预测未来收益,Actor 则根据 Critic 的评价调整动作策略。
完成更新后,智能体再次进入真实环境收集数据,然后重复整个过程。
最终形成以下闭环:
环境交互 → 训练世界模型 → 生成模拟轨迹 → 更新策略 → 再次交互
四、DreamerV3 做出了哪些改进?
DreamerV3 的总体框架与前两代 Dreamer 类似,其主要进步并不是更换整个世界模型架构,而是加入了一系列提高稳定性和通用性的设计。
这些设计使同一套参数可以适应不同观测类型、动作空间、奖励尺度和任务环境。
1. Symlog 数值变换
不同强化学习任务的状态和奖励尺度可能相差很大。
有些任务的奖励可能集中在较小范围内,有些任务的奖励则可能跨越多个数量级。如果直接使用原始数值进行训练,模型容易在不同任务上表现出明显差异。
DreamerV3 使用 Symlog 变换压缩数值范围。
其基本形式可以表示为:
[
\operatorname{symlog}(x)
\operatorname{sign}(x)\ln(|x|+1)
]
这种变换能够压缩绝对值较大的数据,同时保留正负方向。
例如:
较小数值只发生轻微变化;
较大数值被明显压缩;
正数和负数仍然保持对称关系。
因此,网络更容易同时处理多种数值尺度。
2. Two-hot 分布预测
DreamerV3 不直接让奖励网络和价值网络输出单个连续数值,而是将预测目标表示为相邻两个区间上的概率分布。
这种方法称为 Two-hot 编码。
假设真实目标位于两个离散区间之间,模型会根据距离为两个区间分配不同权重。
相比直接进行普通回归,这种方式可以在保留连续数值信息的同时,提高训练稳定性。
论文将 Two-hot 编码与 Symexp 数值区间结合,用于奖励预测和价值预测。
3. KL Balancing 与 Free Bits
DreamerV3 的世界模型同时包含:
根据当前观测获得的后验状态;
根据历史状态和动作预测的先验状态。
训练时,需要让先验预测逐渐接近后验表示。
但如果约束过强,潜在状态可能无法保留足够信息;如果约束过弱,动态模型又可能无法准确预测未来。
DreamerV3 使用 KL Balancing 调节两类目标的更新比例,并加入 Free Bits,避免模型过度压缩潜在表示。
论文中的消融实验表明,KL Balancing 和 Free Bits 是影响跨任务性能的重要组成部分。
4. 回报归一化
不同任务的奖励范围可能存在明显差异。
如果 Actor 和 Critic 使用固定尺度处理所有任务,某些任务的梯度可能过大,另一些任务的梯度则可能过小。
DreamerV3 根据回报分布的分位数动态调整尺度,使策略更新对不同奖励范围具有更好的适应能力。
这种归一化方法是 DreamerV3 能够使用统一参数完成多种任务的重要原因之一。
5. 更稳定的网络与优化方法
DreamerV3 还采用了多项工程改进,包括:
Block GRU;
RMSNorm;
SiLU 激活函数;
自适应梯度裁剪;
LaProp 优化器;
离散潜在状态中的少量均匀分布混合。
这些方法分别用于改善循环网络计算效率、控制特征尺度、减少异常梯度和提升训练稳定性。
五、DreamerV3 的实验表现
DreamerV3 在超过 150 个任务上进行了评估,测试内容覆盖八类不同领域,包括图像输入、状态向量输入、连续动作、离散动作、二维环境、三维环境、密集奖励以及稀疏奖励。
论文强调,在这些任务中,DreamerV3 使用的是同一套主要参数配置,而不是针对每个领域分别进行大量调整。
主要测试平台包括:
Atari 游戏;
ProcGen;
DeepMind Lab;
Atari 100K;
机器人本体状态控制任务;
视觉控制任务;
BSuite;
Minecraft。
在 Atari、ProcGen、视觉控制和 BSuite 等测试中,DreamerV3 达到了具有竞争力的结果,并在多个项目上超过了针对特定任务设计的方法。
六、为什么 Minecraft 任务受到关注?
Minecraft 中的资源收集任务具有较长的任务链。
为了获得钻石,智能体通常需要完成多个连续步骤,例如:
探索周围环境;
寻找并收集木材;
制作基础工具;
获取石材;
制作更高级的工具;
寻找铁矿;
完成进一步资源准备;
进入地下区域寻找目标资源。
这类任务的反馈较为稀疏,并且不同事件之间可能相隔很长时间。
论文中的 DreamerV3 在不使用人工示范数据和专门课程设计的情况下,完成了从初始状态到获得钻石的完整任务链。研究团队报告,所有参与测试的 Dreamer 智能体都在一亿个环境步骤以内发现了钻石。
这项结果说明,世界模型不仅可以处理短时间控制任务,也有潜力学习需要长期规划和连续决策的任务。
七、DreamerV3 为什么具有代表性?
DreamerV3 最值得关注的地方,不是它在某一个单独任务中取得了最高分,而是它展示了世界模型强化学习的通用性。
很多强化学习算法在更换任务后,需要重新调整:
学习率;
奖励缩放;
网络结构;
探索强度;
经验回放比例;
更新频率。
DreamerV3 则尝试通过归一化、平衡和数值变换,使一套算法能够适应多种环境。
此外,实验还显示,更大的 DreamerV3 模型通常可以取得更高的最终性能和更好的数据效率。增加训练计算量也能够进一步提高样本利用效率。
这意味着世界模型强化学习可能具有一定的规模扩展能力。
八、DreamerV3 对机器人研究有什么启发?
对于机器人控制,世界模型具有较强的应用潜力。
传统强化学习通常需要在仿真环境或真实设备上采集大量交互数据。世界模型可以学习机器人的状态变化,并在潜在空间中训练控制策略。
以轮足机器人为例,世界模型可以尝试学习:
当前关节状态与机器人姿态的关系;
动作对身体速度和方向的影响;
足端接触状态如何随动作变化;
机器人接近楼梯时可能出现的状态;
某段动作是否可能造成失衡;
当前状态未来可能获得的任务奖励。
模型学习完成后,可以在潜在空间中生成大量短期状态变化,让 Actor 在这些模拟轨迹中改进策略。
不过,将 DreamerV3 直接应用于真实机器人仍面临一些问题,例如模型误差、传感器噪声、接触动力学复杂以及仿真与现实之间的差异。
因此,比较实际的方向可能是:
使用世界模型辅助策略训练和状态预测,再结合传统控制器、安全约束或强化学习策略完成实际部署。
九、DreamerV3 的局限性
虽然 DreamerV3 展示了较强的通用性,但它仍然不是一个能够直接解决所有任务的通用控制方案。
首先,世界模型的预测并不一定完全准确。随着模拟轨迹变长,较小的单步误差可能逐渐累积。
其次,DreamerV3 的训练计算量相对较高。论文中的主要实验使用单张 NVIDIA A100 GPU,每个任务需要分别进行训练。
此外,固定超参数并不代表所有任务都能达到理论最优结果。针对具体环境进行调整,仍可能进一步提高性能。
最后,论文中的大多数测试属于游戏或仿真环境。面对真实机器人中的复杂接触、设备延迟和外部干扰时,还需要额外的安全机制和适应方法。
总结
DreamerV3 是世界模型强化学习领域具有代表性的工作。
它的核心思想可以概括为:
先通过真实数据学习环境规律,再在世界模型生成的轨迹中训练动作策略。
DreamerV3 由世界模型、Actor 和 Critic 三个主要模块组成。世界模型负责预测后续状态和奖励,Actor 负责选择动作,Critic 负责评价未来收益。
为了让同一套算法适应不同任务,论文加入了 Symlog 数值变换、Two-hot 预测、KL Balancing、Free Bits、回报归一化和自适应梯度裁剪等方法。
实验结果表明,DreamerV3 能够在超过 150 个不同任务中使用相对统一的配置进行学习,并完成具有长期任务链和稀疏反馈特点的 Minecraft 资源收集任务。
DreamerV3 展示了一条重要的发展路线:未来的智能系统可能不仅根据当前状态立即作出反应,还能够先建立对环境规律的内部表示,再通过预测和评估选择更加合理的动作。