更改

跳到导航 跳到搜索
添加12字节 、 2025年6月4日 (三) 15:50
第18行: 第18行:  
==世界模型架构==
 
==世界模型架构==
 
=== 编码器-解码器(Encoder-Decoder) ===
 
=== 编码器-解码器(Encoder-Decoder) ===
−
在Dreamer框架中,深度模型基于编码器-解码器架构,从高维感知输入(如图像)中学习紧凑的潜在表示。编码器通常由卷积神经网络(CNN)构成,用于提取图像观测的高层特征。具体地,编码器将每个观测<math>x_t</math>映射为随机潜在变量<math>z_t</math>的分布参数,例如连续高斯分布的均值和方差,或离散多分类分布的概率值。在早期方法(如PlaNet和DreamerV1)中,潜在变量<math>z_t</math>采用连续高斯分布表示。编码器输出均值<math>\mu_t</math>和标准差<math>\sigma_t</math>,并通过重参数化采样获得<math>z_t</math>。DreamerV2进一步引入了离散潜在表示:将图像编码为多个独立的分类随机变量,每个变量取值于有限类别集合。例如,DreamerV2将每幅图像映射为32个独立的分类分布,每个分布有32个可能类别,通过采样生成32个独热向量,最终连接形成潜在表示<math>z_t</math>。这种离散潜变量设计提升了模型对多模态不确定性的表达能力,使得世界模型能够更好地捕捉环境中潜在的离散变化。为了在反向传播中处理离散采样带来的不可导问题,Dreamer采用了**直通梯度(straight-through gradient)**技巧:1. 在前向传播中,从每个分类分布中采样硬的独热向量;2. 在反向传播时,使用对应的软概率分布作为梯度近似。这种处理方式兼顾了离散表示的表达力和可微分性,使得整个编码器模块能够通过标准反向传播高效训练。
+
在Dreamer框架中,深度模型基于编码器-解码器架构,从高维感知输入(如图像)中学习紧凑的潜在表示。编码器通常由[[卷积神经网络(CNN)]]构成,用于提取图像观测的高层特征。具体地,编码器将每个观测<math>x_t</math>映射为随机潜在变量<math>z_t</math>的分布参数,例如连续高斯分布的均值和方差,或离散多分类分布的概率值。在早期方法(如PlaNet和DreamerV1)中,潜在变量<math>z_t</math>采用连续高斯分布表示。编码器输出均值<math>\mu_t</math>和标准差<math>\sigma_t</math>,并通过重参数化采样获得<math>z_t</math>。DreamerV2进一步引入了离散潜在表示:将图像编码为多个独立的分类随机变量,每个变量取值于有限类别集合。例如,DreamerV2将每幅图像映射为32个独立的分类分布,每个分布有32个可能类别,通过采样生成32个独热向量,最终连接形成潜在表示<math>z_t</math>。这种离散潜变量设计提升了模型对多模态不确定性的表达能力,使得世界模型能够更好地捕捉环境中潜在的离散变化。为了在反向传播中处理离散采样带来的不可导问题,Dreamer采用了**直通梯度(straight-through gradient)**技巧:1. 在前向传播中,从每个分类分布中采样硬的独热向量;2. 在反向传播时,使用对应的软概率分布作为梯度近似。这种处理方式兼顾了离散表示的表达力和可微分性,使得整个编码器模块能够通过标准反向传播高效训练。
    
*'''编码器''':在Dreamer框架中,编码器(Encoder)承担着将高维原始观测<math>x_t</math>映射为低维潜在表示<math>z_t</math>的关键任务。其设计不仅要高效提取观测中的关键信息,还需保证潜在表示能够支持环境动力学建模与未来轨迹模拟。Dreamer系列方法通常采用卷积神经网络(CNN)作为编码器的主体结构,主要特点包括:逐层卷积提取图像观测中的局部与全局特征;将输入<math>x_t</math>映射为一组潜在分布参数(如均值、标准差或分类概率)。编码器最终输出的不是一个确定值,而是潜在变量<math>z_t</math>的概率分布参数,以便支持下游的随机采样与不确定性建模。
 
*'''编码器''':在Dreamer框架中,编码器(Encoder)承担着将高维原始观测<math>x_t</math>映射为低维潜在表示<math>z_t</math>的关键任务。其设计不仅要高效提取观测中的关键信息,还需保证潜在表示能够支持环境动力学建模与未来轨迹模拟。Dreamer系列方法通常采用卷积神经网络(CNN)作为编码器的主体结构,主要特点包括:逐层卷积提取图像观测中的局部与全局特征;将输入<math>x_t</math>映射为一组潜在分布参数(如均值、标准差或分类概率)。编码器最终输出的不是一个确定值,而是潜在变量<math>z_t</math>的概率分布参数,以便支持下游的随机采样与不确定性建模。
   −
*'''解码器与观测重构''':解码器(observation model)负责从潜在状态重构原始观测<math>\hat{x}_t</math>。通常,解码器由卷积神经网络(CNN)的反向结构(如转置卷积)构成,用于将潜在表示还原为观测空间的分布参数。在Dreamer框架中,给定当前潜在状态(包括确定性隐状态<math>h_t</math>和随机成分<math>z_t</math>),解码器输出观测的概率分布,如图像像素的强度分布。具体地,对于图像重建任务:<br> 1. PlaNet和DreamerV1/V2多采用高斯分布或伯努利分布对像素值建模;<br> 2. 优化过程中,分别对应于均方误差(MSE)损失或对数似然损失。<br> 3. DreamerV3进一步在解码器输出中引入了symlog变换处理:将原空间的像素或向量值应用对称对数压缩变换:<math>\text{symlog}(x) = \text{sign}(x) \cdot \log(1 + |x|)</math>。<br> 4. 在symlog空间计算均方误差损失。<br>这种变换能够在保持小值分辨率的同时压缩极端取值范围,提升了模型在不同尺度环境下的重构稳定性,避免了因大幅度数值变化导致的训练不稳定问题。<br>Dreamer根据不同版本引入了两类潜在变量设计:<br>连续潜变量(PlaNet, DreamerV1):1. 潜变量<math>z_t</math>建模为多维对角高斯分布;2. 编码器输出每一维的均值<math>\mu_t</math>和标准差<math>\sigma_t</math>;3. 使用**重参数化技巧(reparameterization trick)**进行采样: <math>z_t = \mu_t + \sigma_t \odot \epsilon</math>,其中<math>\epsilon \sim \mathcal{N}(0, I)</math>;4. 保证采样过程可微,支持反向传播训练。<br>离散潜变量(DreamerV2及之后):1. 潜变量<math>z_t</math>由多个独立的分类随机变量组成;2. 编码器输出每个分类变量的类别概率分布;3. 每个变量通过从分类分布中采样独热向量(one-hot vector)获得;4. 采样时采用直通梯度(straight-through gradient estimator)。这种离散化设计增强了模型捕捉环境中多模态、离散变化特征的能力,提升了世界模型在复杂动态系统中的建模灵活性。
+
*'''解码器与观测重构''':解码器(observation model)负责从潜在状态重构原始观测<math>\hat{x}_t</math>。通常,解码器由[[卷积神经网络(CNN)]]的反向结构(如转置卷积)构成,用于将潜在表示还原为观测空间的分布参数。在Dreamer框架中,给定当前潜在状态(包括确定性隐状态<math>h_t</math>和随机成分<math>z_t</math>),解码器输出观测的概率分布,如图像像素的强度分布。具体地,对于图像重建任务:<br> 1. PlaNet和DreamerV1/V2多采用高斯分布或伯努利分布对像素值建模;<br> 2. 优化过程中,分别对应于均方误差(MSE)损失或对数似然损失。<br> 3. DreamerV3进一步在解码器输出中引入了symlog变换处理:将原空间的像素或向量值应用对称对数压缩变换:<math>\text{symlog}(x) = \text{sign}(x) \cdot \log(1 + |x|)</math>。<br> 4. 在symlog空间计算均方误差损失。<br>这种变换能够在保持小值分辨率的同时压缩极端取值范围,提升了模型在不同尺度环境下的重构稳定性,避免了因大幅度数值变化导致的训练不稳定问题。<br>Dreamer根据不同版本引入了两类潜在变量设计:<br>连续潜变量(PlaNet, DreamerV1):1. 潜变量<math>z_t</math>建模为多维对角高斯分布;2. 编码器输出每一维的均值<math>\mu_t</math>和标准差<math>\sigma_t</math>;3. 使用**重参数化技巧(reparameterization trick)**进行采样: <math>z_t = \mu_t + \sigma_t \odot \epsilon</math>,其中<math>\epsilon \sim \mathcal{N}(0, I)</math>;4. 保证采样过程可微,支持反向传播训练。<br>离散潜变量(DreamerV2及之后):1. 潜变量<math>z_t</math>由多个独立的分类随机变量组成;2. 编码器输出每个分类变量的类别概率分布;3. 每个变量通过从分类分布中采样独热向量(one-hot vector)获得;4. 采样时采用直通梯度(straight-through gradient estimator)。这种离散化设计增强了模型捕捉环境中多模态、离散变化特征的能力,提升了世界模型在复杂动态系统中的建模灵活性。
    
*'''潜在表示的先验与后验分布选择'''':在Dreamer框架中,世界模型为每个潜在变量指定先验分布<math>p_\theta(z_t|h_t)</math>与后验分布<math>q_\phi(z_t|h_t, x_t)</math>。其中:先验分布描述在缺乏真实观测<math>x_t</math>时,模型基于确定性隐状态<math>h_t</math>对下一个潜在状态的预测;后验分布则是在观察到<math>x_t</math>后,对潜在状态<math>z_t</math>的推断。当使用连续高斯潜变量时,先验和后验均建模为对角高斯分布;当使用离散潜变量时,则为多分类分布,如独热向量的离散采样表示。训练过程中,通过最大化变分证据下界(ELBO)联合优化编码器与解码器参数,目标包含:重构对数似然(观测、奖励、终止标志);潜在变量先验-后验之间的KL正则项。重构损失<math>L_{\text{pred}}</math>通常由以下部分组成:观测重建误差(<math>-\ln p_\theta(x_t|h_t,z_t)</math>);奖励预测误差(<math>-\ln p_\theta(r_t|h_t,z_t)</math>);终止信号预测误差。同时,引入KL正则项:<math>D_{\text{KL}}(q_\phi(z_t|h_t,x_t) \parallel p_\theta(z_t|h_t))</math>,以约束编码器后验接近动力学先验,防止编码器提取过多无关信息,提升潜在表示的可预测性与泛化能力。整体训练目标可表示为:<math>L = \mathbb{E}{q\phi} \left[ \sum_t \left( L_{\text{pred},t} + L_{\text{KL},t} \right) \right]</math>。
 
*'''潜在表示的先验与后验分布选择'''':在Dreamer框架中,世界模型为每个潜在变量指定先验分布<math>p_\theta(z_t|h_t)</math>与后验分布<math>q_\phi(z_t|h_t, x_t)</math>。其中:先验分布描述在缺乏真实观测<math>x_t</math>时,模型基于确定性隐状态<math>h_t</math>对下一个潜在状态的预测;后验分布则是在观察到<math>x_t</math>后,对潜在状态<math>z_t</math>的推断。当使用连续高斯潜变量时,先验和后验均建模为对角高斯分布;当使用离散潜变量时,则为多分类分布,如独热向量的离散采样表示。训练过程中,通过最大化变分证据下界(ELBO)联合优化编码器与解码器参数,目标包含:重构对数似然(观测、奖励、终止标志);潜在变量先验-后验之间的KL正则项。重构损失<math>L_{\text{pred}}</math>通常由以下部分组成:观测重建误差(<math>-\ln p_\theta(x_t|h_t,z_t)</math>);奖励预测误差(<math>-\ln p_\theta(r_t|h_t,z_t)</math>);终止信号预测误差。同时,引入KL正则项:<math>D_{\text{KL}}(q_\phi(z_t|h_t,x_t) \parallel p_\theta(z_t|h_t))</math>,以约束编码器后验接近动力学先验,防止编码器提取过多无关信息,提升潜在表示的可预测性与泛化能力。整体训练目标可表示为:<math>L = \mathbb{E}{q\phi} \left[ \sum_t \left( L_{\text{pred},t} + L_{\text{KL},t} \right) \right]</math>。
第48行: 第48行:     
*'''多步预测与潜在轨迹训练''':
 
*'''多步预测与潜在轨迹训练''':
−
由于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在提升基于潜在模型的规划性能方面的有效性。
+
由于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在提升基于潜在模型的规划性能方面的有效性。
    
*'''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散度。
 
*'''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散度。
761

个编辑

导航菜单