Learning from Reward-Free Offline Data: A Case for Planning with Latent Dynamics Models

Paper: arXiv:2502.14819 Code: vladisai/PLDM Code reference: main @ 1bd7e564 (2025-10-29)

1. Motivation(研究动机)

这篇论文关心的不是“给定 reward 以后怎样把一个 offline RL 算法调到最高分”,而是更基础的问题:如果我们只有大量没有 reward 标注的历史轨迹,怎样把它们变成可以服务多个未来任务的可复用能力。作者把这个问题放在导航与控制环境里系统拆解,因为导航同时暴露三类真实瓶颈:数据可能质量很差、轨迹可能很短且不能直接覆盖长程目标、环境布局可能在测试时变化。

现有路线的主要问题有三层。第一,online RL 虽然可以通过 trial-and-error 学策略,但交互成本巨大;论文在引言中特别强调真实机器人交互的代价,说明单靠在线探索难以扩展。第二,传统 offline RL 通常依赖 reward-annotated trajectories,并且训练目标往往绑定某个任务;一旦换成“到达另一个 goal”“避开某个状态”或“换一张地图”,原来的 policy 很难无缝复用。第三,reward-free offline 方法虽然避免了 reward 标注,但不同方法依赖的数据属性很不一样:Goal-Conditioned RL 会从状态-目标对学习 policy,容易在短轨迹或低质量轨迹下把远距离 goal 变成 out-of-distribution;Zero-shot / representation 方法如 HILP 可以学习距离结构,但在未见布局上可能失效;model-based planning 则需要一个能在 latent space 中可靠外推的 dynamics model。

本文的具体目标是:比较 model-free RL、zero-shot representation learning、以及基于 latent dynamics model 的 optimal control,在同一类 reward-free offline 数据上分别擅长什么、失败在哪里。为此作者构造 23 个不同质量的数据集,覆盖 Two-Rooms、Diverse PointMaze 和 Ant-U-Maze,并用 6 个维度做 stress test:高质量数据下的 best-case performance、sample efficiency、trajectory stitching、从 random policy trajectory 学习、zero-shot 转移到新任务、以及泛化到未见 layout。

这件事值得研究的原因在于,大规模现实数据通常不是“为某个 reward 函数采集好的 expert demonstration”,而是低质量、无标注、分布混杂的行为日志。如果某个方法可以只从这样的 reward-free trajectories 学到 dynamics 或结构化 latent space,那么后续任务只需要在 test time 改 cost 或 goal,而不必重新标注 reward 或重新训练 policy。论文的结论也正围绕这个点:当数据充足且高质量时,model-free GCRL 也能很好;但当需要跨布局泛化、数据效率、或改变任务目标时,Planning with a Latent Dynamics Model(PLDM)更有吸引力。

Figure 1 解读:左侧把实验设计概括成“23 个不同质量的数据集 + 6 类 reward-free 方法 + 6 个泛化属性”,右侧给出 PLDM 的核心结构。圆圈表示变量,矩形表示 loss component,半椭圆表示训练出的模型。这个图的重点不是展示一个新网络层,而是把论文问题重新定义为“数据属性 × 方法假设”的系统比较:PLDM 通过 encoder 和 latent predictor 学 dynamics,再在 latent space 中用 planning 替代直接学习一个固定 policy。

2. Idea(核心思想)

核心 insight 是:在 reward-free offline setting 中,直接学习 goal-conditioned policy 会把训练数据中的 goal reachability 假设写进 policy;而学习一个 reconstruction-free latent dynamics model,则把“世界如何变化”和“当前任务要优化什么 cost”分开。只要 latent dynamics 足够结构化,test time 可以通过 MPC/MPPI 在 latent space 里搜索 action sequence,换任务时只需要换 cost,而不需要重新训练 encoder 或 predictor。

本文的关键创新不是提出一个完全全新的 JEPA 损失,而是把 JEPA-style latent prediction 用作 reward-free offline navigation 的可规划世界模型,并把它与 GCIQL、HIQL、HILP、CRL、GCBC 放在同一 stress-test 框架下比较。PLDM 训练时只看 轨迹,不使用 reward;测试时用目标状态编码 作为 latent target,通过 MPPI 搜索能让 unrolled latent predictions 接近目标的动作。

与 GCIQL/HIQL 这样的 model-free GCRL 相比,PLDM 的 fundamental difference 在于它不训练 去直接模仿或 bootstrap 到 goal,而是训练 ,再显式规划。与 HILP 相比,PLDM 不要求 latent distance 本身在所有 layout 上等价于 shortest-path steps;它更依赖局部 transition model 的可组合性,因此在 unseen maze layout 上表现更好,但在缺少门口穿越轨迹时也会受 learned dynamics coverage 限制。

3. Method(方法)

3.1 问题设定与方法谱系

论文设定一个 reward-free offline dataset ,训练阶段没有 reward 标注。评估时通常给定 goal state ,目标 reward 可写成 ,但这个 reward 只用于定义成功标准,不用于 PLDM 训练。作者比较的 6 类方法如下:GCIQL 是 Implicit Q-Learning 的 goal-conditioned 版本;HIQL 学 high-level subgoal policy 与 low-level goal-reaching policy;HILP 学一个距离保持 latent representation,并训练 direction-conditioned policy;CRL 用 contrastive objective 学 reachable goal compatibility;GCBC 是 Goal-Conditioned Behavior Cloning;PLDM 则学习 latent dynamics 并在 test time 做 optimal control。

表 1 的 road-map 很重要:PLDM 是唯一一个在所有 6 个属性上都达到 competitive performance 的方法;HILP 在 stitching 和 low-quality data 上也很强,但在 unseen layout transfer 上明显弱。这个结论提示,reward-free offline learning 不能只看单一 benchmark 的平均成功率,而要看方法对数据质量、coverage、trajectory length 和环境变化的敏感性。

3.2 PLDM overall framework:JEPA latent dynamics + latent-space MPC

PLDM 的训练输入是一段 offline trajectory。Encoder 把观测映射成 latent ;predictor ensemble 在 latent space 里递推: 训练目标首先让预测 latent 与 encoder latent 对齐: 直觉上,这个 objective 避开了 pixel reconstruction:模型不需要还原每个像素,只需要学习“对控制和规划有用的下一步 latent”。这正是 JEPA 思路在控制任务里的价值:representation 不被低层视觉细节牵着走,而被 temporal predictability 和 action-conditioned dynamics 约束。

测试时,PLDM 不输出 policy logits,而是给定当前状态 、目标状态 和动作序列 ,在 learned dynamics 中展开预测,并优化: 让 predicted latent 靠近目标 latent; 用 ensemble variance 惩罚可能偏离训练分布的 transition。论文强调这不是 reward-based RL:PLDM 没有用 reward 训练 policy,而是在 test time 显式搜索动作。

Figure 2 解读:左侧展示 Diverse PointMaze 的训练/测试布局:模型只在部分 layouts 上看过 offline trajectories,测试要在 held-out layouts 上到达 goal。右侧曲线说明,当训练布局数量从 5 增加到 40,PLDM 的 held-out success rate 明显最好;当固定 5 个训练布局并增加 edit-distance 分布偏移时,其他方法随 out-of-distribution 程度增大快速下降,PLDM 保持更强鲁棒性。这个图直接对应本文最重要的论点:显式 latent dynamics planning 比直接学习 goal-conditioned policy 更容易跨布局迁移。

3.3 Collapse prevention:VICReg、temporal smoothness 与 inverse dynamics

仅用 会有 collapse 风险:encoder 可能把所有状态映射到常数,predictor 也能得到很低 prediction loss。因此作者在 Appendix D.1.1 中加入 VICReg-style loss、temporal smoothness 和 inverse dynamics modeling。方差项鼓励每个维度在 batch/time 上保留变化: 协方差项抑制维度之间冗余: IDM 让相邻 latent 能反推出动作: 时间平滑项为: 总目标为: 这些项各自解决不同失败模式:variance 防止所有 latent 维度变成常数,covariance 防止不同维度复制同一信号,time-sim 让 latent 随物理轨迹平滑变化,IDM 让 latent 保留 action-relevant 信息。消融结果显示,去掉 会让 success rate 从约 98% 掉到两位数,说明 collapse prevention 是 PLDM 能规划的基础。

3.4 环境适配:Three model instantiations

Two-Rooms 中,观测是 top-down image:一个 channel 表示 agent,一个 channel 表示 wall;动作是 2D displacement,最大范数 2.45。论文使用 OGBench 同款 Impala Small Encoder,predictor 是 2-layer GRU,hidden dimension 512;Appendix D.1.3 报告总参数 2,218,672,其中 encoder 1,426,096、predictor 793,600。

Diverse PointMaze 中,环境基于 Mujoco PointMaze,状态含 global 与速度 ,但模型输入用 RGB top-down view 来感知不同 maze layout。Encoder 先得到 ,速度通过 Expander2D 变成 平面后与环境特征 concat,得到 。Predictor 输入再 concat expanded action,输出同形状 latent。论文在该环境中把 MPPI replanning frequency 设为 ,总参数仅 53,666。

Ant-U-Maze 中,状态是 29D,action 是 8D。PLDM 把 global 通过 2-layer MLP 编成 256D embedding,再与其余 proprioceptive state concat;predictor 是 3-layer MLP,ensemble size 为 5。Appendix D.1.5 报告总参数 1,080,615,其中 encoder 9,120、predictor 1,072,007。这里作者只在 对应的 representation 子空间上施加 variance/covariance regularization,因为其他 proprioceptive state 并非 encoder 产生,不会以同样方式 collapse。

Figure 3 解读:左侧是 Two-Rooms:agent 必须在 200 steps 内从一个房间到另一个房间的 goal,观测是 image。右侧展示两类 offline trajectories:红色轨迹来自 Von Mises direction sampling,更像高质量探索;蓝色轨迹方向 uniform random,通常在起点附近震荡。这个图解释了为什么 dataset quality 会影响 GCRL:如果训练轨迹很短或随机,far-away goal 很少作为 reachable pair 出现,policy 学习会遇到严重 OOD goal。

3.5 Pseudocode(基于 released code 的实现抽象)

下面的伪代码按 main@1bd7e564 的 released code 抽象,不是论文公式的逐字重写。训练 loop 来自 pldm/train.py,posterior rollout 来自 pldm/models/jepa.py,prediction/VICReg/IDM 分别来自 pldm/objectives/prediction.pypldm/objectives/vicreg.pypldm/objectives/idm.py

import torch
import torch.nn.functional as F
 
 
def pldm_train_step(model, batch, objectives, optimizer, scheduler, step):
    # batch.states: B x T x ... in dataloader; code transposes to T x B x ...
    states = batch.states.cuda().transpose(0, 1)
    actions = batch.actions.cuda().transpose(0, 1)
    lr = scheduler.adjust_learning_rate(step)
 
    optimizer.zero_grad()
    result = model.forward_posterior(states, actions)
    loss_infos = [objective(batch, [result.level1]) for objective in objectives]
    total_loss = sum(info.total_loss for info in loss_infos)
    if torch.isnan(total_loss):
        raise RuntimeError("NaN loss")
    total_loss.backward()
    optimizer.step()
    model.update_ema()
    return total_loss.item(), lr
def prediction_objective(forward_result):
    encodings = forward_result.backbone_output.encodings[1:]
    predictions = forward_result.pred_output.predictions[1:]
    if forward_result.ema_backbone_output is not None:
        encodings = forward_result.ema_backbone_output.encodings[1:]
    pred_loss = (encodings - predictions).pow(2).mean()
    return pred_loss
 
 
def vicreg_objective(encodings, predictions, cfg):
    sim_loss = (encodings[1:] - predictions[1:]).pow(2).mean()
    flat = flatten_conv_output(projector(encodings))
    std_loss = std_loss_over_batch(flat[:1], margin=cfg.std_margin)
    cov_loss = covariance_offdiag_loss(flat[:1])
    std_loss_t = std_loss_over_time(flat[1:].permute(1, 0, 2))
    cov_loss_t = covariance_offdiag_loss(flat[1:].permute(1, 0, 2))
    sim_loss_t = (encodings[1:] - encodings[:-1]).pow(2).mean()
    return (cfg.sim_coeff * sim_loss + cfg.std_coeff * std_loss
            + cfg.cov_coeff * cov_loss + cfg.std_coeff_t * std_loss_t
            + cfg.cov_coeff_t * cov_loss_t + cfg.sim_coeff_t * sim_loss_t)
def inverse_dynamics_objective(batch, forward_result, action_predictor, use_pred=False):
    enc = forward_result.backbone_output.encodings
    if use_pred:
        curr, nxt = forward_result.pred_output.predictions[:-1], enc[1:]
    else:
        curr, nxt = enc[:-1], enc[1:]
    repr_input = torch.cat([flatten_conv_output(curr), flatten_conv_output(nxt)], dim=-1)
    pred_actions = action_predictor(repr_input.flatten(start_dim=0, end_dim=1))
    target_actions = forward_result.actions.flatten(start_dim=0, end_dim=1).to(pred_actions.device)
    return F.mse_loss(pred_actions, target_actions, reduction="mean")
def plan_with_latent_mppi(model, current_obs, target_obs, mppi, objective, plan_size):
    with torch.no_grad():
        current_z = model.backbone(current_obs.cuda()).encodings
        objective.set_target(target_obs.cuda(), repr_input=False)
        mppi.change_horizon(plan_size)
        # MPPI samples noisy action sequences, rolls them through LearnedDynamics,
        # evaluates latent distance to target, and returns the first optimized sequence.
        action_seq = mppi.command(current_z, shift_nominal_trajectory=False)
        pred_encs = model.forward_prior(current_z, repr_input=True,
                                        actions=action_seq.permute(1, 0, 2)).pred_output.predictions
        return action_seq, pred_encs

论文公式与 released code 实现差异:论文的 planning objective 显式写了 ensemble variance ,并在 Table 13/17 报告 planner uncertainty 系数;但我在 main@1bd7e564pldm/planning/planners/mppi_planner.py 中没有看到把该 直接传入 MPPI 的 wiring。pldm/planning/planners/mppi_torch.pyrollout_var_cost / rollout_var_discount 的通用接口,但默认是 0,而且 MPPIPlanner 构造 MPPI(...) 时未传这些参数。因此笔记中的 planning 公式以论文为准,伪代码/映射以 released code 的可见实现为准;复现实验时应优先核查作者内部运行配置或后续 commit 是否补齐了 uncertainty wiring。

3.6 Code-to-paper mapping

Code reference: main @ 1bd7e564 (2025-10-29) — pseudocode and mapping based on this commit

Paper ConceptSource FileKey Class/Function
JEPA encoder + latent predictorpldm/models/jepa.py; pldm/models/predictors.pyJEPA.forward_posterior; JEPA.forward_prior; SequencePredictor.forward_multiple
Prediction similarity loss pldm/objectives/prediction.pyPredictionObjective.__call__
VICReg collapse preventionpldm/objectives/vicreg.pyVICRegObjective.__call__; std_loss; cov_loss
Inverse Dynamics Modelingpldm/objectives/idm.pyIDMObjective.__call__
Training loop and optimizer schedulepldm/train.pyTrainer.train; OptimizerFactory; Scheduler.adjust_learning_rate
Goal latent cost for MPCpldm/planning/objectives_v2.pyReprTargetMPCObjective.__call__
MPPI planning and learned rolloutpldm/planning/planners/mppi_planner.py; mppi_torch.pyMPPIPlanner.plan; LearnedDynamics.__call__; MPPI.command
Environment-specific MPC evaluationpldm/planning/wall/mpc.py; pldm/planning/d4rl/mpc.pyWallMPCEvaluator; MazeMPCEvaluator
Released launch/config examplespldm/configs/wall/icml/seqlen90_3M.yaml; pldm/configs/diverse_maze/icml/small_diverse_5maps.yamlYAML overrides for LR, batch, objectives, MPPI

4. Experimental Setup(实验设置)

4.1 Datasets and environments

Two-Rooms 是作者自建的 GPU-accelerated top-down navigation 环境。观测 ,第一通道为 agent,第二通道为墙;动作 表示位移,范数上限 2.45;目标是在 200 steps 内到达另一个房间中的随机 goal。默认 offline dataset 有 3M transitions,约 30,000 trajectories,episode length 。作者通过三种方式改变数据:减少 non-random/good-quality data 的比例、缩短 trajectory length(91/64/32/16,对应图中约 90/64/32/16 的设定)、缩小 dataset size(从几千 transitions 到 3M transitions),以及构造“no door-passing trajectories”来测试 stitching。

Diverse PointMaze 基于 Mujoco PointMaze。状态含 global ,但模型输入使用 top-down RGB 图像来感知 layout;动作是 2D acceleration;action repeat 为 4。布局是 grid(不含外墙),每个 cell 是 wall 或 free space;约束为所有 free cells 连通,且 free-space 比例在 50% 到 75%。训练数据规模固定为 1,000,000 transitions:5 layouts 时每个 layout 2,000 episodes,10 layouts 时 1,000 episodes,20 layouts 时 500 episodes,40 layouts 时 250 episodes,episode length 都是 100。评估分两类:训练 layouts 数量变化时在 40 个 disjoint test layouts 上评估;固定 5 training layouts 时,按 test layout 到训练布局的最小 edit distance 分组评估 distribution shift,每组 5 layouts、每个 layout 5 trials。

Ant-U-Maze 是更高维控制环境,state 29D、action 8D。作者用 Park et al. 的 pretrained directional expert policy 生成 5M exploratory transitions,每 10 steps 重新采样方向,并给每个 action 加标准差 1.0 的 Gaussian noise。评估时 ant 从左下或右下角初始化,目标在对角角落,需要转弯;每个方法评估 10 trials。训练 trajectory length 为 25、50、100、250、500,而 start-goal 距离约 200 steps,用来测试高维控制中的 stitching。

4.2 Baselines, metrics, and configs

Baselines and metrics

Baselines 包括 CRL、GCBC、GCIQL、HIQL、HILP 与 PLDM。CRL、GCBC、GCIQL、HIQL 使用 OGBench repository 的实现;HILP 使用作者官方实现;PLDM 使用本文 released repo。主要 metric 是 success rate:Two-Rooms 要在 200 steps 内到达 goal;Diverse PointMaze 按 held-out layout/trial 统计成功率;Ant-U-Maze 按 10 trials 统计;chasing task 的 success 定义为 100 steps 内保持 agent 与 chaser 距离 pixels。论文主图中的均值/阴影通常是 3 seeds 的 mean 和 standard error;附录中部分统计显著性实验汇总 Welch’s t-test,并在 selected settings 中扩到每方法 10 seeds。

Two-Rooms config:paper vs code

Training-config numbers 需要区分论文表格和 released code config。论文 Appendix Table 13 报告 Two-Rooms 的 PLDM dataset-agnostic 参数:Batch Size 64,Prediction Horizon ,Optimizer Adam,Scheduler Cosine,Ensemble size ,MPPI noise ,MPPI samples 500,MPPI ,planner uncertainty

但 released code 的 pldm/configs/wall/icml/seqlen90_3M.yaml 是可运行代表配置:base_lr=0.0007offline_wall_config.batch_size=64n_steps=16epochs=2,objectives 为 VICReg + IDM,VICReg 系数为 sim_coeff=1.0,std_coeff=3.9843,cov_coeff=6.9238,std_coeff_t=0.24535,sim_coeff_t=0.74242,IDM coeff=1.072,MPPI 中 noise_sigma=12,num_samples=2000,lambda_=0.005

这里 MPPI noise/sample 与论文表格不一致,是复现时必须注意的 paper-vs-code gap。

Diverse PointMaze config

Diverse PointMaze 的论文 Table 15 报告 Epochs 5,Batch Size 128,,Adam + Cosine,Ensemble size ,MPPI 、samples 500、;dataset-specific 参数 Table 16 报告 5 layouts 时 LR 0.04、,20/40 layouts 时 LR 0.05、

Released config pldm/configs/diverse_maze/icml/small_diverse_5maps.yaml 对应 5 maps:base_lr=0.041037d4rl_config.batch_size=128sample_length=15epochs=10,objectives 为 VICRegObs + IDM + PredictionPropiovicreg_obs.std_coeff=35.026,cov_coeff=11.925,sim_coeff_t=0.10193,std_coeff_t=2.9199idm.coeff=5.3964prediction_propio.global_coeff=1.4108,MPPI 为 noise_sigma=5,num_samples=500,lambda_=0.0025,replan_every=4

Ant-U-Maze config

Ant-U-Maze 的论文 Table 17/18 报告 Batch Size 64、、Adam + Cosine、Ensemble size 、MPPI 、samples 500、、planner uncertainty ;sequence length 25/50/100/250/500 的 LR 分别是 0.006/0.004/0.003/0.001/0.001。论文未在公开 repo 中给出同等完整的 Ant-U-Maze launch yaml,因此这些数值按论文附录记录。

5. Experimental Results(实验结果)

5.1 Road-map and best-case performance

Table 1 的 qualitative road-map 显示:PLDM 在“新布局迁移”“新任务迁移”“数据效率”“best-case performance”上都是 ★★★,在“random policy trajectories”和“stitching suboptimal trajectories”上是 ★★✩;HILP 在 random/stitching/best-case 上强,但新布局迁移只有 ★✩✩;GCIQL 在 data efficiency、random、stitching 上强,但新任务/新布局迁移弱。这个表的结论不是 PLDM 在每个单点实验都绝对第一,而是它跨 stress tests 最均衡。

在 Two-Rooms 高质量、充足数据设置中,所有方法都能达到较高成功率:CRL 89.3±0.7,GCBC 86.0±2.0,GCIQL 98.0±0.9,HILP 100.0±0.0,HIQL 96.4±1.3,PLDM 97.8±0.7。这说明在理想数据下,model-free GCRL 并不弱,PLDM 的价值主要体现在非理想数据和泛化要求上。

当禁止训练轨迹穿过门(no door-passing trajectories)时,CRL 降到 14.7±4.1,GCBC 降到 8.4±1.2,HIQL 为 26.3±5.6;GCIQL 和 HILP 仍接近满分(99.6±0.4、100.0±0.0),PLDM 为 34.4±2.7。作者认为这说明 HILP 的结构化 latent space 与 GCIQL 的 bootstrapping 更适合跨轨迹 stitching;PLDM 虽然好于大多数 GCRL baseline,但 learned dynamics 缺少门口 transition coverage 时仍会显著受限。

5.2 Dataset quality, trajectory length, and sample efficiency

Figure 4 解读:左图逐步降低 non-random/good-quality data 比例,PLDM、GCIQL、HILP 最稳;中图缩短训练 trajectory length,许多 goal-conditioned 方法因远距离 goal OOD 而失败,HILP 和 PLDM 更能通过 latent structure 或 planning stitch;右图缩小 dataset size,PLDM 与 GCIQL 最 sample-efficient,少量 transitions 时仍接近约 80% success rate。这个图是论文核心证据之一:数据质量下降时,直接学习 policy 的方法对 state-goal pair 分布更敏感。

作者对这三组实验的解释很一致:如果 training trajectories 由 random policy 产生,state-goal 对大多很近,GCRL 在远距离 goal 上泛化困难;如果 trajectories 很短,policy 学不到跨多个片段组合的 long-horizon behavior;如果 dataset size 很小,HILP 这类 representation 方法需要更多数据来学习全局距离结构。PLDM 的优势来自另一种归纳偏置:只要局部 transition 足够学准,test-time planning 可以把多个局部 transition 组合成长计划,因此对某些 suboptimal data 更稳。

5.3 Zero-shot task transfer and high-dimensional control

Figure 5 解读:Figure 5a/5b 把 goal-reaching 改成 chasing avoidance:chaser state 被当作“goal state”输入,但 PLDM 把 cost 符号反过来,最大化与该 latent 的距离;HILP 则反转 skill direction。结果显示 PLDM 在不同 chaser speed 下比 HILP 更能保持距离。Figure 5c 展示 Ant-U-Maze,说明作者也测试了 29D state、8D action 的四足控制环境,而不是只在二维点质量导航上报告结果。

这组实验支持“dynamics 与 cost 解耦”的主张。Goal-conditioned policy 方法通常只能“到达指定 goal”,不能自然表达“避开指定 state”;PLDM 则只需把 的符号或形式改掉,就能利用同一个 encoder/predictor 做新任务。这不是说任意任务都能零样本解决,而是当环境 dynamics 不变、任务可以写成 latent cost 时,PLDM 的复用成本明显低于重新训练 policy。

Figure 6 解读:Ant-U-Maze 中,训练 trajectory length 为 25、50、100、250、500,但评估 start-goal 大约相隔 200 steps。PLDM、HIQL、HILP 能在短轨迹条件下保持较好 stitching 能力,并在某些设置达到 100% success;CRL、GCBC、GCIQL 更容易在短轨迹时失败。与 Two-Rooms 不同,HIQL 在高维 ant control 上超过 GCIQL,作者推测是 hierarchy 让 low-level policy 处理关节控制、high-level policy 处理导航方向。

5.4 Unseen layout generalization and qualitative trajectories

Figure 7 解读:左侧是 PLDM 在 test time 生成的 plan,右侧是实际 agent trajectories。该图直观展示了“latent-space plan”并非只在图上优化一个抽象距离,而是能通过 MPPI 转成环境中的 action sequence。相较于直接输出 policy action,PLDM 每隔若干步重新规划,因此可以在布局变化时根据当前观测修正路径。

Figure 8 解读:顶部给出 5-layout training setting 中的训练布局;中部/下部展示不同方法在 unseen maze 中的轨迹,随着 test layout 与训练布局的 edit distance 增大,只有 PLDM 能稳定到达 goal。论文把 layout 表示成 binary grid,并用到训练布局的最小 edit distance 量化 distribution shift。这个图解释了 Figure 2 的曲线背后发生了什么:HILP/GCBC/GCIQL 等方法不是完全不会走,而是在墙体拓扑变化后 trajectory 会撞墙、绕错路或停在局部区域。

Figure 12 解读:这组附录图分析 HILP 失败原因。左侧 in-distribution maze 中,HILP representation distance 从红点向外平滑增加,近似反映 shortest-path steps;右侧 out-of-distribution maze 中,距离场不再符合拓扑结构。换言之,HILP 的 latent geometry 在训练布局内有效,但没有学到可跨新布局组合的 dynamics;PLDM 通过感知 top-down image 和 action-conditioned predictor,在此实验中更能适应 layout 变化。

5.5 Objective ablations, uncertainty, reconstruction baselines, and compute

PLDM objective component ablation 很明确:完整模型在 Two-Rooms 为 98.0±1.5、Diverse Maze 为 98.7±2.8;去掉 variance coefficient 后分别跌到 13.4±9.2 和 11.4±6.5;去掉 covariance coefficient 后跌到 29.2±4.4 和 7.8±4.1;去掉 time-sim coefficient 后 Two-Rooms 为 71.0±3.0、Diverse Maze 仍有 95.6±3.2;去掉 IDM coefficient 后 Two-Rooms 不变为 98.0±1.5,但 Diverse Maze 降到 75.5±8.2。最关键的是 ,说明表示 collapse/冗余会直接摧毁 planning。

Figure 9 解读:该图比较有无 的 PLDM,在 Two-Rooms 和 AntMaze 上的不同数据设置。论文层面的 takeaway 是 ensemble uncertainty 可以作为 in-distribution regularizer,减少 planner 选择训练分布外 transition 的倾向。不过如 §3.5 所述,released code 的 MPPI wiring 未直接暴露论文公式中的 uncertainty term,因此这里的结论应按论文实验报告理解,复现时需要额外核查实现分支。

Reconstruction baseline 进一步支持“不要把 latent dynamics 学习变成 pixel reconstruction”。在 good-quality Two-Rooms 中,Table 6 报告 CRL 89.3±1.2、GCBC 86.0±4.5、GCIQL 98.0±0.9、HILP 100.0±0.0、HIQL 96.4±3.0、PLDM 97.4±1.3;而 DreamerV3 只有 24.0±6.9,替换成 reconstruction objective 的同架构模型为 26.2±13.9,TD-MPC2 为 0.0±0.0,TD-MPC2+IDM 为 35.0±0.0。作者承认 DreamerV3 不是为无 reward、纯 latent-distance planning 设计,但这个对照仍说明:像素重建并不能自动产生适合 goal planning 的 latent。

Figure 10 解读:Two-Rooms 中,把 PLDM 从每步 replanning 改为每 4 steps replanning 后,整体 success curve 只轻微下降。Appendix F 的时间表显示,PLDM 每步 replanning 时每 episode 16.0±0.13 秒;每 4 steps replanning 为 4.8±0.09 秒,normalized success 0.95;每 16 steps 为 2.6±0.07 秒,normalized success 0.90;每 32 steps 为 2.2±0.07 秒,但 normalized success 降到 0.62。GCIQL 和 HIQL 分别约 3.6±0.10 与 4.0±0.08 秒。也就是说,PLDM 的代价主要来自 test-time planning,但适度降低 replanning 频率可以接近 policy 方法延迟。

Figure 11 解读:Diverse Maze 中也出现类似现象:PLDM 每 4 steps replanning 的性能只小幅低于每步 replanning。这个结果对实际部署很重要,因为 PLDM 的主要缺点是 inference compute,而不是训练阶段 reward 标注;如果环境 dynamics 不需要每步大幅修正,较低 replanning frequency 可以明显降低成本。

5.6 Limitations and overall conclusion

作者在结论中强调,PLDM 不是在所有单项上都压倒 model-free 方法。高质量充足数据下,GCIQL、HIQL、HILP 等方法可以接近或达到满分;在 no-door stitching 中,PLDM 明显落后于 GCIQL/HILP;在 compute 上,PLDM 每步 MPPI 比 policy forward 慢,默认每步 replanning 大约是 model-free baselines 的 。此外,论文实验主要是导航/控制环境,尽管包括 Ant-U-Maze,但仍不是开放世界机器人任务;未来需要更高维视觉、更复杂接触、更长 horizon 的验证。

综合来看,本文的贡献是把 reward-free offline learning 的比较从“谁在一个固定 benchmark 上分数高”推进到“哪些数据属性会让哪些方法失效”。PLDM 的强项来自 dynamics/cost 解耦:低质量数据、短轨迹和新布局下,learned latent dynamics + MPC 能把局部 transition 组合成新任务计划;弱项是依赖模型覆盖与 test-time compute,并且当前 released code 与论文中 uncertainty regularization 的实现细节存在需要复核的差异。对实际系统而言,结论可以概括为:如果你有大量高质量、任务一致的数据,model-free GCRL 仍是强 baseline;如果你面对 reward-free、suboptimal、未来任务会变化的数据,PLDM 代表的 latent dynamics planning 值得优先考虑。