目录
- 工作列表:
- [问题 1:Offline 数据集的使用情况](#问题 1:Offline 数据集的使用情况)
- [问题 2:评测方式对比](#问题 2:评测方式对比)
- [问题 3:OMRL(offline meta-RL)策略训练方式对比](#问题 3:OMRL(offline meta-RL)策略训练方式对比)
工作列表:
- unicorn:Towards an Information Theoretic Framework of Context-Based Offline Meta-Reinforcement Learning [NeurIPS 2024],https://arxiv.org/abs/2402.02429
- focal:FOCAL: Efficient Fully-Offline Meta-Reinforcement Learning via Distance Metric Learning and Behavior Regularization [ICLR 2021],https://arxiv.org/abs/2010.01112
- corro:Robust Task Representations for Offline Meta-Reinforcement Learning via Contrastive Learning [ICML 2022],https://arxiv.org/abs/2206.10442
- csro:Context shift reduction for offline meta-reinforcement learning [NeurIPS 2023],https://arxiv.org/abs/2311.03695
- prompt-DT:Prompting decision transformer for few-shot policy generalization [ICML 2022],https://arxiv.org/abs/2206.13499
- macaw:Offline Meta-Reinforcement Learning with Advantage Weighting [ICML 2021],https://arxiv.org/abs/2008.06043
演进顺序:maml 2017 → macaw 2021 = focal 2021 → corro 2022 = prompt-DT 2022 → csro 2023 → unicorn 2024。
总结:
- 大部分论文使用了收集 SAC replay buffer 得到的 mixed 质量数据集,也没有关注 IID / OOD 测试的事情;
- focal 系列文章,都采用先训 encoder 再训 policy 的形式。
问题 1:Offline 数据集的使用情况
📌 数据集对比总表
| 论文 | 环境/任务 | 数据收集方式 | 数据量 | 数据质量 | 是否开源 | 来源位置 |
|---|---|---|---|---|---|---|
| UNICORN | MuJoCo (6 个 env) + MetaWorld (Reach) | SAC 训练 agent,收集 replay buffer | 1e5-4.5e5 transitions/env (Table 7) | Mixed (random→expert) | ✅ GitHub: betray12138/UNICORN | Sec 3.1; App D; Table 7 |
| FOCAL | Point-Robot + MuJoCo (6 个 variants) | SAC 训练,保存 checkpoint 策略 rollout 50 条轨迹 | 只知道大小,31G-54G / env (Table 3, App.D) | Expert/Medium/Random/Mixed (Table 2) | ✅ GitHub: FOCAL-ICLR | App D; Sec 5.1; Table 2-3 |
| CORRO | Point-Robot + MuJoCo (4 个 envs) | SAC 训练 single-task policy,收集 replay buffers | 未明确给出具体数字 | Mixed (SAC 训练过程收集) | ✅ GitHub: PKU-AI-Edge/CORRO | Sec 5.1; App B |
| CSRO | Point-Robot + MuJoCo (6 个 envs) | SAC 训练,保存不同 training times 的策略,每策略 rollout 50 条轨迹 | 每 task 50 条轨迹 × 200/1000 步 (Table 3, App.D) | Mixed (不同 training epoch) | ✅ GitHub: MoreanP/CSRO | Sec 5.1; App D; Table 3-5 |
| Prompt-DT | MuJoCo (Cheetah/Ant) + Dial + Meta-World | Cheetah/Ant: 跟随 Mitchell et al. (2021); Dial/Meta-World: 脚本专家策略 | 未明确给出具体数字 | Expert (Section 6.1) | ✅ GitHub: mxu34/prompt-dt | Sec 5.1; Sec 6.1; App B Table 5 |
| MACAW | MuJoCo (4 个 envs) + Meta-World ML45 | SAC/TD3 训练,保存整个训练生命周期的 complete replay buffers | 1M-5M steps/env (App.D.2) | Mixed (random→expert) | ✅ sites.google.com/view/macaw-metarl | App D; Sec 5; App D.2 |
UNICORN
- 数据集与任务:使用 MuJoCo 和 MetaWorld 基准,包括 HalfCheetah-Dir、HalfCheetah-Vel、Ant-Dir、Hopper-Param、Walker-Param、Reach(MetaWorld)等任务(第3页 第3.1节)。
- 任务机制:Reward function 变化 (HalfCheetah-Dir / Vel, Ant-Dir, Reach) 或 Dynamics 变化 (Hopper / Walker-Param)。
- 任务数量:每个环境 20 个训练任务 + 20 个测试任务(Section 3.1)。
- 数据集质量:默认是 mixed 即混合分布(随机到专家水平),通过收集 SAC 训练过程中的回放缓冲区获得,包含不同质量的数据。还专门生成了 random、medium、expert 三种质量的数据集用于分析(第3页 第3.1节,第9页 表3)。
- 数据集大小:具体大小见附录 D 表 7:Ant-Dir 1e5、HalfCheetah-Dir 2e5、HalfCheetah-Vel 2e5、Hopper-Param 3e5、Walker-Param 4.5e5、Reach 1e5(单位:transition tuples)。
- 收集方式:对每个任务,从头训练一个 SAC 代理,收集其完整回放缓冲区作为离线数据集。同时保留策略检查点以生成不同质量的数据(第3页 第3.1节)。
- 开源:开源了两个任务的 mixed 数据集。
- 不同之处:UNICORN 的数据集涵盖了奖励变化和动力学变化两类任务,且质量可变。与其他论文相比,任务集和大小类似,但具体数值有差异。
FOCAL
- 数据集与任务:使用 Sparse-Point-Robot、Half-Cheetah-Vel、Ant-Fwd-Back、Half-Cheetah-Fwd-Back、Walker-2D-Params、Point-Robot-Wind 等(第5.1节,附录 D)。
- 任务机制:Reward 变化 (Sparse-Point-Robot, Half-Cheetah-Vel / Fwd-Back, Ant-Fwd-Back) 或 Dynamics 变化 (Point-Robot-Wind, Walker-2D-Params)。
- 任务数量:100 个任务 (Sparse-Point-Robot), 2-50 个任务不等(Table 3, App.D.1)。
- 数据集质量:收集了不同质量的数据,包括 expert、medium、random、mixed。实验中根据环境选择最佳质量,有些用 expert,有些用 mixed(附录 D 表2)。
- 数据集大小:附录 D 表 3 列出了每个任务的数据集大小(以 GB 为单位),例如 Sparse-Point-Robot 2.2G,Half-Cheetah-Vel 636M。具体 transition 数量未直接给出,但可通过轨迹数和步数估算。
- 收集方式:对每个任务训练 SAC 代理,保存不同训练时刻的检查点,并用这些策略生成轨迹。收集的是整个回放缓冲区(从训练开始到结束的数据)(第 5.1 节)。
- 开源:【】我还没看
- 不同之处:FOCAL 包含稀疏奖励任务(Sparse-Point-Robot),并使用了混合质量数据,部分任务的数据质量选择与别不同。
CORRO
- 数据集与任务:使用 Point-Robot、Ant-Dir、HalfCheetah-Vel、Walker-Param、Hopper-Param(第5.1节)。
- 任务机制:Reward 变化 (Point-Robot, Half-Cheetah-Vel, Ant-Dir) 或 Dynamics 变化 (Walker/Hopper-Param)。
- 任务数量:20 个训练任务 + 20 个测试任务(Section 5.1)。
- 数据集质量:通过训练 SAC 代理,收集其回放缓冲区作为离线数据集,默认是 mixed 质量(第5.1节)。
- 数据集大小:附录 C 表4:Point-Robot 2e4、Ant-Dir 2e5、HalfCheetah-Vel 2e5、Walker-Param 2e5、Hopper-Param 6e4(单位可能是 transition)。
- 收集方式:同 FOCAL,训练 SAC 代理并收集回放缓冲区(第5.1节)。
- 开源:【】我还没看
- 不同之处:CORRO 的数据集大小与 UNICORN 略有差异,但任务基本相同。
CSRO
- 数据集与任务:使用 Point-Robot、Half-Cheetah-Vel、Ant-Goal(即 Ant-Dir)、Humanoid-Dir、Hopper-Rand-Params、Walker-Rand-Params(第5.1节)。
- 任务机制:Reward 变化 (Point-Robot, Half-Cheetah-Vel, Ant-Goal, Humanoid-Dir) 或 Dynamics 变化 (Hopper/Walker-Rand-Params)。
- 任务数量:30 个训练任务 + 10 个测试任务(Section 5.1)。
- 数据集质量:训练 SAC 代理,在不同训练步骤保存检查点,每个检查点生成50条轨迹,因此数据集包含从随机到专家的混合质量(第5.1节)。
- 数据集大小:每个任务使用多个检查点,例如 Half-Cheetah-Vel 从100k到950k步,步长50k,共约17个检查点,每个检查点50条轨迹,每条200步,总约170k transition。其他任务类似(附录 D 表4)。
- 收集方式:训练 SAC 代理,保存不同训练时刻的检查点,用每个检查点生成50条轨迹(第5.1节)。
- 开源:【】我还没看
- 不同之处:CSRO 明确使用多个检查点覆盖不同质量,且对不同任务采用不同的检查点范围。
Prompt-DT
- 数据集与任务:使用 Cheetah-dir、Cheetah-vel、Ant-dir、Dial(新环境)、Meta-World reach-v2(第5.1节)。
- 任务机制:Reward 变化 (Cheetah-dir/vel, Ant-dir, Dial, Meta-World reach-v2)
- 任务数量:Cheetah-dir: 2 train / 2 test; Cheetah-vel: 35 train / 5 test; Ant-dir: 45 train / 5 test; Dial: 6 train / 4 test; Meta-World: 15 train / 5 test(Table 5, App.B)。
- 数据集质量:对于 Cheetah 系列,使用与 MACAW 相同的数据集(完整回放缓冲区),并从中取最后 20000 步作为 expert 数据集。对于 Dial 和 Meta-World,使用脚本专家策略生成 200 episodes 作为 expert 数据集。还使用了 medium、random 数据(从回放缓冲区中间和开头取)(第 6.1 节,第 6.3 节)。
- 数据集大小:Cheetah 系列每个任务有完整回放缓冲区(数百万步),Dial 和 Meta-World 每个任务 200 episodes(每 episode 约 200 步,约 40k transition)。expert 数据集取最后 20000步,相当于约 100 episodes(第 6.1 节)。
- 收集方式:Cheetah 系列继承自 MACAW 的收集方式(训练 RL 代理并保存回放缓冲区);Dial 和 Meta-World 使用脚本专家策略生成(第 5.1节)。
- 开源:【】我还没看
- 不同之处:引入新环境 Dial,并明确使用了不同质量的数据进行实验,且 expert 数据集是从完整缓冲区中截取的。
MACAW
- 数据集与任务:使用 Cheetah-dir、Cheetah-vel、Ant-dir、Walker-2D-Params、Meta-World ML45(第5.1节,附录 D)。
- 任务机制:Reward 变化 (Cheetah-Dir/Vel, Ant-Dir) 或 Dynamics 变化 (Walker-Params); Meta-World ML45 (45 个训练 + 5 个测试操作任务)。
- 数据集质量:对每个任务训练 SAC 或 TD3 代理,保存完整回放缓冲区(从训练开始到结束),因此包含从随机到专家的混合质量(附录 D.2)。
- 数据集大小:每个任务的完整回放缓冲区大小:Meta-World 5M steps、Cheetah-vel 2.5M、Cheetah-dir 2.5M、Ant-dir 2M、Walker-Params 1M(单位:环境交互步数,即 transition 数量)(附录 D.2)。
- 收集方式:训练单任务代理,保存完整回放缓冲区(附录 D.2)。
- 开源:【】我还没看
- 不同之处:MACAW 使用整个回放缓冲区,且 Meta-World ML45 包含45个训练任务和5个测试任务,规模较大。
问题 2:评测方式对比
📌 评测设置总表
| 论文 | 测试任务类型 | Context 收集方式 | Context 数据量 | 评测指标 | 特殊设置 | 来源位置 |
|---|---|---|---|---|---|---|
| UNICORN | Unseen test tasks | IID: offline buffer 中 1 条轨迹; OOD: 所有 behavior policy checkpoints | 1 条轨迹 (200/500 步) (Table 7) | 20 个测试任务的平均回报 | OOD behavior policy 测试 (Section 3.3) | Sec 3.2-3.3; Table 2; Table 7 |
| FOCAL | Unseen test tasks | 从预收集的 offline 数据中采样 (fully offline) | Few-shot (未明确具体数) | 平均 episodic 测试回报 (Figure 3) | 样本效率 vs 训练步数 | Sec 5.1; Figure 3-4; App D.1 |
| CORRO | Unseen test tasks | IID: 预训练 buffer 中 1 条轨迹; OOD: {π_i,t^β} checkpoints | 200 个 transition tuples (Section 5.1) | 测试任务平均回报 | OOD behavior policy 鲁棒性 (Section 5.3) | Sec 5.2-5.3; Table 1 |
| CSRO | Unseen test tasks | Online 探索,使用 non-prior context 收集策略 | Few-shot (未明确) | 平均回报 (Figure 3, Table 2) | Online 测试与 OOD contexts; 消融 w/wo Np 策略 | Sec 5.2-5.3; Table 1-2; Figure 1 |
| Prompt-DT | Unseen test tasks | 从 D 中采样 Few-shot 演示 P; 单episode 的轨迹 prompt | K*=2-40 时间步; J=1-2 episodes (Table 1) | 平均 episode 累积奖励 | Prompt 长度/质量消融; OOD 任务泛化 | Sec 4.4; Sec 6.1-6.4; Table 1; App B Table 5-6 |
| MACAW | Unseen test tasks | Fully offline: 来自 μ_test 的小 batch D_test; 或 offline+online 微调 | 初始适应 256 个 transitions (Table 1) | 保持不变的测试任务平均回报 | Online 微调 10k/20k 步 (Table 1) | Sec 3; Sec 5; Table 1; App C.2 |
UNICORN
- 测试任务:unseen 任务,从任务分布中随机抽取20个测试任务(第3.2节)。
- context 收集 :
- IID 测试:从测试任务的离线数据集中采样一个轨迹作为 context(静态采样)(第3.2节)。
- OOD 测试:使用所有训练任务的各个检查点的行为策略收集 context(即从不同分布的数据集中采样)(第3.3节)。
- context 数据量:一个轨迹,长度为 200 步 (大多数 env), 500 步 (Reach)(Table 7, Appendix D)。
- 评测方式:用 context 通过编码器得到任务表示 z,然后用条件策略 π(a|s,z) 在测试任务上 rollout 评估平均回报(第3.2节)。
- 不同之处:系统评估了 IID 和 OOD 两种 context 分布下的性能,OOD 测试使用其他任务的行为策略生成 context。
FOCAL
- 测试任务:unseen 任务,数量因环境而异(例如 Sparse-Point-Robot 有20个测试任务)(第5.1节)。
- context 收集:Fully offline: 从测试任务的 offline 数据集中采样一个轨迹作为 context(静态采样)(第5.1节)。
- context 数据量:一个轨迹,长度为 200 步(Point-Robot 为 20 步)(附录 D 表4)。
- 评测方式:用 context 得到任务表示 z,然后用条件策略在测试任务上 rollout 评估回报(第 5.1 节)。
- 不同之处:未进行 OOD 测试,但附录 E.1 中研究了训练和测试数据质量不同时的性能变化。
CORRO
- 测试任务:unseen 任务,每个环境有20个测试任务(第5.2节)。
- context 收集 :
- IID 测试:从测试任务的 offline 预收集回放缓冲区中采样一个轨迹(静态采样)(第5.3节)。
- OOD 测试:使用所有训练任务的不同 checkpoint 的行为策略收集 context(静态采样)(第5.3节)。
- 另有用随机策略收集 context 的实验(第5.6节)。
- context 数据量:一个轨迹,长度为 200 步(第5.2节)。
- 评测方式:同前,用 context 得到任务表示 z,然后 rollout 评估(第5.2节)。
- 不同之处:明确区分 IID 和 OOD 测试,并测试了随机探索策略收集的 context。
CSRO
- 测试任务:unseen 任务,30个训练任务,10个测试任务(第5.1节)。
- context 收集 :
- offline 测试:从测试任务的 offline 预收集数据中采样 context(静态采样)(附录 F.1)。
- online 测试:使用非先验 context 收集策略,agent 与测试任务交互收集 context:先随机探索 \(t_r\) 步,然后用当前策略探索并更新 context,最终得到一个完整轨迹作为 context(第4.3节,附录 A 算法2)。
- context 数据量:一个轨迹(长度 200 步),但收集过程中包含随机和策略探索步骤(第4.3节)。
- 评测方式:用收集到的 context 推断任务,然后执行策略评估(第 5.2 节)。
- 不同之处:在线测试中 context 是通过主动交互收集的,而非静态采样,更贴近实际部署。
Prompt-DT
- 测试任务:unseen 任务,例如 Cheetah-vel 有 35 个训练任务,5个测试任务(第5.1节)。
- context 收集:测试时,从测试任务的 few-shot 演示数据集 P 中采样一个轨迹 prompt(offline 静态),同时在线交互中不断累积历史轨迹(动态)。输入包含 prompt 和最近 K 步历史(第4.4节算法3)。(【】这个我没看懂,也还没具体 check。qwen 的回答:K* = 2, 5, 10, 40 时间步。J = 1 或 2 个 episodes, H = 2, 5, 10, 20 段长度。K*=J×H。)
- context 数据量:prompt 长度 K* 很小(例如 2, 5, 10, 40 步),历史轨迹长度 K=20 步(附录 A 表3)。
- 评测方式:代理在测试任务上在线交互,使用 prompt 和历史轨迹生成动作,评估累积回报(第4.4节)。
- 不同之处:context 由静态 prompt 和动态历史组成,prompt 来自演示数据集而非训练数据。
MACAW
- 测试任务:unseen 任务,例如 Cheetah-vel 有35个训练任务,5个测试任务(第5.1节)。
- context 收集:测试时,从测试任务的离线数据集中采样一个批次的数据(静态)用于梯度更新(适应)。这个批次就是 context(第5.1节,算法2)。
- context 数据量:通常为256个 transition(第5.1节)。在对比实验中,也使用了与 prompt 长度等量的数据(如5个 transition)(第6.1节)。
- 评测方式:
- Fully Offline 测试(Section 3):
- 仅使用 来自 μ test 的小 batch D test 进行 maml 适应,以找到最高性能策略。
- Offline + Online 微调(Section 5, Table 1):
- 初始 offline 适应,使用来自 μ test 的 256 个 transitions。
- 然后交替进行 actor / critic 更新和在线数据收集 10k / 20k 步。
- 不同之处:context 用于梯度更新,而非直接输入网络;适应过程是优化-based 的,与 context-based 方法不同。
评测关键差异
- Context 收集范式:
- Fully offline:FOCAL, CORRO, UNICORN (IID), MACAW (initial)。
- Online 探索:CSRO, MACAW (fine-tuning), Prompt-DT (rollout)。
- OOD 测试设计:
- OOD behavior policy:UNICORN Section 3.3, CORRO Section 5.3。
- OOD 任务分布:Prompt-DT Section 6.4, MACAW Appendix C.2。
- Context shift:CSRO Table 1 (Context A vs B)。
- Few-shot 定义:
- Prompt-DT: 明确的 prompt 长度 K*=2-40 时间步。
- MACAW: 256 个 transitions。
- 其他:"1 条轨迹"或"few-shot"无明确数字。
- 评测指标:
- 均为 average return/episodic return。
- UNICORN / CORRO / CSRO 额外报告 OOD vs IID 对比(Table 1-2)。
问题 3:OMRL(offline meta-RL)策略训练方式对比
UNICORN
- 模块 :任务编码器 \(q_\phi\),策略 \(\pi_\theta\),Q 函数 \(Q_\psi\),以及分类器 / 解码器 \(p_\theta\)(第2.3 节)。
- 训练方式 :采用解耦的交替训练。在算法 1 中,先训练编码器和分类器/解码器(更新 \(\phi,\theta\)),然后 detach 任务嵌入,再训练 actor 和 critic(更新 \(\theta,\psi\))。两者在同一循环中交替进行,但梯度不混合(第2.3节,附录 A 算法1)。
- 耦合性 :任务表示学习和控制策略解耦,交替优化。【】我感觉这仍然算是耦合吧,因为 policy \(\pi(a | s,z)\) 的 z 依赖于 task encoder \(z \sim q(z|c)\),我们需要用这个 z 来训练 policy。
FOCAL
- 模块 :上下文编码器 \(q_\phi\),策略 \(\pi_\theta\),Q函数 \(Q_\psi\)(第4节)。
- 训练方式:解耦训练。先用距离度量学习(DML)训练编码器(不依赖 RL 损失),然后固定编码器,用行为正则化的 actor-critic 训练策略和 Q 函数。实际可能交替进行,但编码器不接收 RL 梯度(第4节,图1)。
- 耦合性:解耦,编码器和 RL 部分独立训练。【】也是感觉这个仍然算耦合,虽然 encoder 不依赖于 policy,但是 policy 依赖于 encoder。
CORRO
- 模块 :transition 编码器 \(E_{\theta_1}\),aggregator \(E_{\theta_2}\),策略 \(\pi_\phi\),Q函数 \(Q_\psi\),可选 CVAE(第4.1节)。
- 训练方式 :依次训练(算法1):
- 预训练 CVAE(如果需要)。
- 训练 transition 编码器(对比学习),更新 \(\theta_1\)。
- 训练 policy,包括 aggregator、Q函数和策略,此时 transition 编码器固定,更新 \(\theta_2,\psi,\phi\)。
- 耦合性:分阶段依次训练,梯度不混合。
CSRO
- 模块 :上下文编码器 \(q_\phi\),CLUB 编码器 \(q_\psi\),策略 \(\pi_\theta\),Q函数 \(Q_\omega\)(第4.2节)。
- 训练方式 :在算法 1 中,每个循环内依次更新:
- 更新 CLUB 编码器 \(\psi\)(最小化 \(L_{VD}\))。
- 更新上下文编码器 \(\phi\)(最小化 \(L_{encoder}\))。
- 更新策略和 Q 函数 \(\theta,\omega\)(使用 BRAC 损失)。
- 编码器的更新依赖于 CLUB 编码器的输出,但 RL 部分使用的 z 来自更新后的编码器,且 RL 损失不反向传播到编码器(算法 1 中未提到对 \(\phi\) 的 RL 梯度)。
- 耦合性 :编码器和 RL 部分交替更新,但梯度不交叉,编码器内部存在耦合(\(\phi\) 和 \(\psi\) 相互依赖)。
Prompt-DT
- 模块:一个 Transformer 模型(GPT 架构、decoder-only、用来做自回归预测下一个 token),输入 prompt 和历史轨迹,输出动作(第 4.3 节)。
- 训练方式:端到端训练。使用批量数据计算 MSE 损失,梯度更新整个 Transformer 模型的所有参数(第 4.4 节算法 1)。
- 耦合性:完全耦合的端到端训练。
MACAW
- 模块 :策略网络 \(\pi_\theta\)(双输出头:动作和优势),值函数网络 \(V_\phi\)(第4.1节)。
- 训练方式 :MAML 风格的元学习。内循环中,对每个任务依次更新值函数(一步或多步),然后更新策略(使用包含 AWR 和优势回归的损失)。外循环中,用查询集计算损失并反向传播到初始参数 \(\phi,\theta\)(算法1)。
- 耦合性:内循环中的更新是顺序的,但整个元学习过程端到端,梯度流经内循环和外循环。
📌 focal → corro → csro 的演进过程
(csro 完全没读过,不确定以下是正确的)
FOCAL (2021) → 奠基:第一个端到端 model-free OMRL,提出 context(即轨迹段)的 deterministic encoder + 负幂次 DML
↓
CORRO (2022) → 改进:发现 FOCAL 对 policy 变化敏感,用 transition-level encoder + 对比学习(包含难负样本:相同 (s,a) 但在其他任务下的 (r*,s'*),CVAE 生成或只给 reward 加噪声),提升鲁棒性
↓
CSRO (2023) → 深化:显式建模 context shift 问题,最小化 I(z; behavior policy) 互信息(用 CLUB 估计上界,好像是对抗训练)+ 无 prior 采样 z_0 的策略探索,进一步去偏