| 第43行: |
第43行: |
| | RSSM将环境建模为部分可观察马尔可夫决策过程(POMDP),确定性隐状态<math>h_t</math>累积历史信息,维持跨步连续性;随机潜变量<math>s_t</math>捕捉观测不确定性及新输入信息。这种设计具备重要意义: | | RSSM将环境建模为部分可观察马尔可夫决策过程(POMDP),确定性隐状态<math>h_t</math>累积历史信息,维持跨步连续性;随机潜变量<math>s_t</math>捕捉观测不确定性及新输入信息。这种设计具备重要意义: |
| | # | | # |
| − | # 确定性路径(<math>h_t</math>):**通过递归网络(如GRU)累积特征,有效建模长期依赖与连贯记忆。 | + | # 确定性路径(<math>h_t</math>):通过递归网络(如GRU)累积特征,有效建模长期依赖与连贯记忆。 |
| | # | | # |
| − | # 随机路径(<math>s_t</math>):**引入建模灵活性,表达环境随机性、观测噪声与局部不可预测性。 | + | # 随机路径(<math>s_t</math>):引入建模灵活性,表达环境随机性、观测噪声与局部不可预测性。 |
| | | | |
| − | *'''多步预测与潜在轨迹训练''': | + | *'''多步预测与潜在轨迹训练''':由于RSSM需要支持智能体在潜在空间中进行规划与“想象”未来,其多步预测的准确性至关重要。传统的序列[[变分自编码器(VAE)]]训练方法——即在每个时间步重构观测并施加一次KL正则化——实际上只直接优化了单步状态转移,使得梯度仅能感知到单步预测误差。这种训练方式虽然在单步预测上效果良好,但在多步滚动预测中,误差易于累积,显著削弱了长期推理与规划的能力。为了解决这一问题,PlaNet提出了**潜在超前(latent overshooting)**的多步变分训练目标。其核心思想是:不仅对单步转移(即先验分布<math>p(s_t \mid s_{t-1}, a_{t-1})</math>与后验分布<math>q(s_t \mid h_t, x_t)</math>)施加KL正则化,还在潜在空间中引入跨越多个时间步的变分监督。以两步超前训练为例,模型从时刻<math>t-2</math>起,仅基于先验动力学连续预测<math>\hat{s}_{t-1}</math>和<math>\hat{s}_t</math>,然后将预测得到的<math>\hat{s}t</math>与基于真实观测得到的后验<math>q(s_t \mid o{\leq t})</math>进行KL正则化,从而优化连续转移过程中的准确性。更一般地,对于超前<math>d</math>步的overshooting,训练目标中引入了如下KL项:<div align="center"> |
| − | 由于RSSM需要支持智能体在潜在空间中进行规划与“想象”未来,其多步预测的准确性至关重要。传统的序列[[变分自编码器(VAE)]]训练方法——即在每个时间步重构观测并施加一次KL正则化——实际上只直接优化了单步状态转移,使得梯度仅能感知到单步预测误差。这种训练方式虽然在单步预测上效果良好,但在多步滚动预测中,误差易于累积,显著削弱了长期推理与规划的能力。为了解决这一问题,PlaNet提出了**潜在超前(latent overshooting)**的多步变分训练目标。其核心思想是:不仅对单步转移(即先验分布<math>p(s_t \mid s_{t-1}, a_{t-1})</math>与后验分布<math>q(s_t \mid h_t, x_t)</math>)施加KL正则化,还在潜在空间中引入跨越多个时间步的变分监督。以两步超前训练为例,模型从时刻<math>t-2</math>起,仅基于先验动力学连续预测<math>\hat{s}_{t-1}</math>和<math>\hat{s}_t</math>,然后将预测得到的<math>\hat{s}t</math>与基于真实观测得到的后验<math>q(s_t \mid o{\leq t})</math>进行KL正则化,从而优化连续转移过程中的准确性。更一般地,对于超前<math>d</math>步的overshooting,训练目标中引入了如下KL项:<div align="center"><math>\mathrm{KL}\left[q(s_t \mid o_{\leq t}) \, \| \, p(s_t \mid s_{t-d:t-1})\right]</math></div>其中,<math>p(s_t \mid s_{t-d:t-1})</math>表示从<math>t-d</math>到<math>t-1</math>的先验连续预测,<math>q(s_t \mid o_{\leq t})</math>则是基于真实观测的后验分布(具体推导详见PlaNet附录)。通过这种overshooting策略,RSSM的随机状态转移机制能够接收到连续多步的训练信号,梯度得以沿着多步预测链条反向传播,从而显著提升长时间尺度上的预测准确性。PlaNet的实验验证了latent overshooting在提升基于潜在模型的规划性能方面的有效性。
| + | <math>\mathrm{KL}\left[q(s_t \mid o_{\leq t}) \, \| \, p(s_t \mid s_{t-d:t-1})\right]</math> |
| | | | |
| − | *'''KL正则化与平衡技术''':在RSSM的训练过程中,每一个时间步都需要保持先验预测<math>\hat{s}_t</math>与后验推断<math>s_t</math>的一致性,这一目标通常通过引入KL散度损失来实现。然而,在训练中存在一个关键挑战:编码器分布<math>q(s_t \mid h_t, x_t)</math>与动力学先验分布<math>p(s_t \mid h_t)</math>之间可能出现学习速度不匹配或“责任分配”(credit assignment)问题。具体而言,当编码器过于强大时,模型可能倾向于仅依赖后验推断,从而使先验动力学变得无关紧要;反之,若动力学先验过强,则编码器可能无法有效地从观测数据中提取信息。为了应对这一问题,DreamerV2提出了KL balancing技巧,通过分别调整先验与后验的更新路径以实现平衡。具体做法是:将KL散度分解为两个部分;其中一部分以**停止梯度(stop gradient)**的后验分布为参考,用于更新动力学先验,促使先验动态更好地跟随后验推断;另一部分则以停止梯度的先验分布为参考,用于更新编码器后验,防止后验偏离潜在动态建模。这种双路径更新机制,有效避免了模型在训练过程中过度依赖后验推断的问题,促使动态预测模块与观测编码模块在训练中保持合理协作。在此基础上,DreamerV3进一步引入了自由nats(free nats)的机制,即为KL散度设定一个最小阈值。当实际KL值低于该阈值时,不再继续压缩KL损失,从而防止潜在状态退化为无信息的情况——即虽然动力学先验易于预测,但潜在状态本身携带的信息量极低或接近于零,仅仅是为了最小化KL散度。
| + | 其中,<math>p(s_t \mid s_{t-d:t-1})</math>表示从<math>t-d</math>到<math>t-1</math>的先验连续预测,<math>q(s_t \mid o_{\leq t})</math>则是基于真实观测的后验分布(具体推导详见PlaNet附录)。通过这种overshooting策略,RSSM的随机状态转移机制能够接收到连续多步的训练信号,梯度得以沿着多步预测链条反向传播,从而显著提升长时间尺度上的预测准确性。PlaNet的实验验证了latent overshooting在提升基于潜在模型的规划性能方面的有效性. |
| | | | |
| | + | * '''KL正则化与平衡技术''':在RSSM的训练过程中,每一个时间步都需要保持先验预测<math>\hat{s}_t</math>与后验推断<math>s_t</math>的一致性,这一目标通常通过引入KL散度损失来实现。然而,在训练中存在一个关键挑战:编码器分布<math>q(s_t \mid h_t, x_t)</math>与动力学先验分布<math>p(s_t \mid h_t)</math>之间可能出现学习速度不匹配或责任分配(credit assignment)问题。具体而言,当编码器过于强大时,模型可能倾向于仅依赖后验推断,从而使先验动力学变得无关紧要;反之,若动力学先验过强,则编码器可能无法有效地从观测数据中提取信息。为了应对这一问题,DreamerV2提出了KL balancing技巧,通过分别调整先验与后验的更新路径以实现平衡。具体做法是:将KL散度分解为两个部分;其中一部分以'''停止梯度(stop gradient)'''的后验分布为参考,用于更新动力学先验,促使先验动态更好地跟随后验推断;另一部分则以停止梯度的先验分布为参考,用于更新编码器后验,防止后验偏离潜在动态建模。这种双路径更新机制,有效避免了模型在训练过程中过度依赖后验推断的问题,促使动态预测模块与观测编码模块在训练中保持合理协作。在此基础上,DreamerV3进一步引入了自由nats(free nats)的机制,即为KL散度设定一个最小阈值。当实际KL值低于该阈值时,不再继续压缩KL损失,从而防止潜在状态退化为无信息的情况——即虽然动力学先验易于预测,但潜在状态本身携带的信息量极低或接近于零,仅仅是为了最小化KL散度。 |
| | + | </div> |
| | *'''RSSM架构的改进与增强''':在DreamerV3中,针对RSSM的模型架构进行了多项重要增强,旨在提升在不同任务环境下的训练稳定性与整体性能表现。具体而言,DreamerV3采用了分块GRU(Block GRU)作为序列建模的核心递归单元,并引入了RMSNorm归一化和SiLU激活函数,以改善梯度传播特性并增强训练过程的数值稳定性。分块GRU是一种将隐藏状态划分为若干独立子块、并在子块内部并行更新的递归结构。这种设计在扩展隐藏规模的同时,能够显著缓解传统RNN在大规模建模时常见的优化不稳定问题。得益于这些架构改进,DreamerV3的世界模型可以根据任务需求灵活扩展参数规模(从数千万到数亿量级),并在不同规模下使用统一的超参数配置而无需专门调整,体现出优异的扩展性与稳健性。此外,在离散潜变量的建模方面,DreamerV3引入了1%均匀混合(unimix)策略,即将分类先验分布与均匀分布按99:1的比例进行线性混合。这一策略相当于在先验输出中注入了极小的平滑项,有效防止了预测概率在训练早期快速饱和至0或1的现象,从而提高了潜在动态建模的鲁棒性,减少了陷入局部极值或不稳定优化轨迹的风险。通过这些架构和正则化细节的系统性优化,DreamerV3的世界模型能够在多种不同环境中实现稳定训练——从像素级离散控制任务(如Atari游戏),到连续动作控制任务(如DMControl套件),再到极具挑战性的稀疏奖励开放世界环境(如Minecraft)等。更为重要的是,这种稳健性使得模型在不同任务间几乎无需针对性微调超参数配置,展现出出色的泛化能力与工程实用性。 | | *'''RSSM架构的改进与增强''':在DreamerV3中,针对RSSM的模型架构进行了多项重要增强,旨在提升在不同任务环境下的训练稳定性与整体性能表现。具体而言,DreamerV3采用了分块GRU(Block GRU)作为序列建模的核心递归单元,并引入了RMSNorm归一化和SiLU激活函数,以改善梯度传播特性并增强训练过程的数值稳定性。分块GRU是一种将隐藏状态划分为若干独立子块、并在子块内部并行更新的递归结构。这种设计在扩展隐藏规模的同时,能够显著缓解传统RNN在大规模建模时常见的优化不稳定问题。得益于这些架构改进,DreamerV3的世界模型可以根据任务需求灵活扩展参数规模(从数千万到数亿量级),并在不同规模下使用统一的超参数配置而无需专门调整,体现出优异的扩展性与稳健性。此外,在离散潜变量的建模方面,DreamerV3引入了1%均匀混合(unimix)策略,即将分类先验分布与均匀分布按99:1的比例进行线性混合。这一策略相当于在先验输出中注入了极小的平滑项,有效防止了预测概率在训练早期快速饱和至0或1的现象,从而提高了潜在动态建模的鲁棒性,减少了陷入局部极值或不稳定优化轨迹的风险。通过这些架构和正则化细节的系统性优化,DreamerV3的世界模型能够在多种不同环境中实现稳定训练——从像素级离散控制任务(如Atari游戏),到连续动作控制任务(如DMControl套件),再到极具挑战性的稀疏奖励开放世界环境(如Minecraft)等。更为重要的是,这种稳健性使得模型在不同任务间几乎无需针对性微调超参数配置,展现出出色的泛化能力与工程实用性。 |
| | | | |