Hana's Blog
LIBERO 论文精读:终身机器人学习知识迁移基准Blur image
Arxiv ID 2306.03310
幻觉翻译 2306.03310
publication pending

LIBERO 把机器人终身学习拆成可控的空间、物体、目标和混合分布迁移,并用统一的视觉语言策略与 FWT/NBT/AUC 指标测量“学得快”和“忘得少”。

推荐指数:

1. 论文概述#

【Paper】 LIBERO(LIfelong learning BEchmark on RObot manipulation)是一个面向机器人操作的 lifelong learning benchmark。论文不是提出一套新的 policy,而是提供任务生成器、130 个任务、示教数据、三类策略架构、三类终身学习算法和一套评测协议,让研究者可以回答“机器人究竟迁移了什么知识”。

LIBERO benchmark overview from paper Figure 1

一句话总结#

【Analysis】 LIBERO 的关键价值在于把“终身学习”从一句口号变成可拆解的实验变量:保持物体不变只改变目标,保持目标不变只改变空间关系,再逐步加入混合分布,从而区分 declarative knowledge(对象、位置)与 procedural knowledge(动作、行为)的迁移和遗忘。

核心贡献#

【Paper】

  1. 提出基于 Robosuite、PDDL 和 Ego4D 行为模板的程序化任务生成流程,原则上可以持续生成新任务。
  2. 发布四个任务套件:LIBERO-Spatial、LIBERO-Object、LIBERO-Goal 各 10 个任务,LIBERO-100 含 100 个任务;后者再划分为 LIBERO-90 预训练和 LIBERO-10(论文中称 LIBERO-LONG)终身学习评测。
  3. 为每个任务提供 50 条高质量人类遥操作示教(Thread Velcro 为 100 条),降低研究者收集数据的门槛。
  4. 统一比较 ResNet-RNN、ResNet-T、ViT-T 三类 visuomotor policy,以及 ER、EWC、PackNet、Sequential Fine-tuning 和 Multitask Learning。
  5. 报告多个反直觉发现:顺序微调的 forward transfer 反而最好;没有一种视觉编码器在所有知识迁移类型上都占优;朴素监督预训练可能损害下游终身学习。

2. 背景与相关工作#

【Paper】 传统 lifelong learning 多在图像或文本分类中研究 declarative knowledge,例如类别和实体。机器人决策还必须迁移 procedural knowledge:如何抓取、移动、开关或组合多个动作。比如“从冰箱取果汁”失败,可能是忘了果汁的位置,也可能是忘了开冰箱门的动作。

单纯的 multitask learning 可以同时访问所有任务数据,但计算和存储成本高,也不符合机器人持续接收任务的设定。经典 lifelong learning 则要求任务按序到达,学习第 kk 个任务时不能完整访问前 k1k-1 个任务数据,因此必须在 forward transfer(新任务学得更快)和 backward transfer / forgetting(旧任务性能保持)之间折中。

【Analysis】 LIBERO 的实验设计比“在一张总表上比较算法”更有诊断性:Spatial 主要考察空间关系,Object 主要考察对象概念,Goal 主要考察动作目标,LIBERO-100 则把这些因素纠缠在一起。这种 controlled distribution shift 是理解失败原因的前提。

3. 问题定义#

【Paper】 每个机器人任务 TkT^k 由初始状态分布 μ0k\mu_0^k 和目标谓词 gkg^k 定义;所有任务共享状态空间 SS、动作空间 AA、动力学 TT 和 horizon HH。机器人按顺序学习 KK 个任务,并使用同一个 task-conditioned policy π(s;T)\pi(\cdot\mid s;T)

在实际 benchmark 中,论文采用 lifelong imitation learning:每个任务提供示教集合 Dk={τik}D^k=\{\tau_i^k\},轨迹包含图像、机器人关节/夹爪状态和连续末端执行器动作。由于图像观测通常不是 Markov 的,策略使用历史观测 oto_{\le t} 近似状态。

目标是累计优化已经见过的任务:

JLRL(π)=1kp=1kE[t=1Lpgp(stp)].J_{\mathrm{LRL}}(\pi)=\frac{1}{k}\sum_{p=1}^{k} \mathbb E\left[\sum_{t=1}^{L^p}g^p(s_t^p)\right].

行为克隆阶段则最小化:

JBC(π)=1kp=1kE(otp,atp)Dp[tL(π(ot;Tp),atp)].J_{\mathrm{BC}}(\pi)=\frac{1}{k}\sum_{p=1}^{k} \mathbb E_{(o_t^p,a_t^p)\sim D^p} \left[\sum_t\mathcal L\big(\pi(o_{\le t};T^p),a_t^p\big)\right].

4. 方法#

4.1 Overall Architecture#

LIBERO 的系统由三层组成:任务生成器负责把自然语言行为模板变成场景和目标;benchmark 层固定任务套件、示教和任务顺序;policy 层接收图像、语言和机器人状态并输出连续动作。

LIBERO procedural task generation pipeline from paper Figure 2

【Paper】 数据流可以概括为:Ego4D 语言模板 → 采样任务指令 → 选择 Robosuite 场景并生成 PDDL 初始状态 → 用谓词描述目标 → 视觉语言策略通过 GMM action head 输出末端执行器动作。

4.2 核心模块#

程序化任务生成器#

  • 输入:Ego4D 的人类活动语言描述和模拟器已有物体/场景。
  • 中间结果:行为模板、自然语言 instruction、PDDL 文件。
  • 输出:可执行的初始状态分布 μ0\mu_0、目标谓词 gg 和对应模拟任务。

【Paper】 生成器先从 Ego4D 抽取“Open …”“Put …”等行为模板,再填入模拟器物体;随后根据 instruction 选择厨房等场景,PDDL 同时描述对象类别、摆放关系和初始开关状态。目标由 unary predicates(如 Open(X))和 binary predicates(如 On(A,B)In(A,B))的合取组成,全部谓词满足时 episode 结束。

三种视觉语言策略#

LIBERO policy architectures from paper Figure 6

【Paper】

PolicyVision encoderTemporal backboneLanguage fusion适合观察
ResNet-RNNResNetLSTMFiLM + LSTM input低成本、较短时序
ResNet-TResNetTransformer decoderlanguage token + visual tokens时序与空间关系
ViT-TViTTransformer decoderlanguage token 参与视觉和时序融合物体种类丰富的场景

三者都把多模态特征送入 Gaussian Mixture Model(GMM)输出头,再采样连续末端执行器动作。【Code】 官方仓库当前配置将 bc_transformer_policy 的时序 Transformer 设为 4 层、6 个 heads、最大序列长度 10,并默认使用 ResNet image encoder、MLP language encoder 与 GMM head;可通过 Hydra 配置切换 bc_rnn_policybc_vilt_policy 和不同 lifelong algorithm。

Lifelong learning algorithms#

  • Sequential Fine-tuning(SeqL):只用当前任务数据更新共享策略,作为低成本基线。
  • Experience Replay(ER):保存旧任务少量样本,与新任务混合训练,属于 memory-based 方法。
  • Elastic Weight Consolidation(EWC):用 Fisher 信息估计参数重要性,对旧任务重要参数施加正则,属于 regularization-based 方法。
  • PackNet:为已学任务冻结/分配参数子网络,属于 dynamic-architecture 方法。
  • Multitask Learning(MTL):同时访问所有任务数据,作为理想化上界。

4.3 关键公式#

Forward transfer、negative backward transfer 与 AUC#

ci,j,ec_{i,j,e} 是已经学习前 i1i-1 个任务、在任务 ii 上训练 ee 个 epoch 后评估任务 jj 的 success rate。当前任务 ii 的最佳成功率为 ci,i=maxeci,i,ec_{i,i}=\max_e c_{i,i,e},达到该值的最早 epoch 为 eie_i^*

FWTk=111e{0,5,,50}ck,k,e,NBTk=1Kkτ=k+1K(ck,kcτ,k),\mathrm{FWT}_k=\frac{1}{11}\sum_{e\in\{0,5,\ldots,50\}}c_{k,k,e}, \quad \mathrm{NBT}_k=\frac{1}{K-k}\sum_{\tau=k+1}^{K}(c_{k,k}-c_{\tau,k}), AUCk=1Kk+1(FWTk+τ=k+1Kcτ,k).\mathrm{AUC}_k=\frac{1}{K-k+1}\left(\mathrm{FWT}_k+\sum_{\tau=k+1}^{K}c_{\tau,k}\right).

【Paper】 FWT 越高表示新任务学得快,NBT 越低表示旧任务保留得好,AUC 同时考虑两者。【Analysis】 这三个指标避免只看最后一个 success rate:一个算法即使不遗忘,但每个新任务都要从头学,也不算好的 lifelong learner。

4.4 Training#

【Paper】 每个任务使用 50 条人类 teleoperation trajectories;训练采用 behavioral cloning,策略根据当前图像历史、语言指令和机器人状态预测 GMM 动作分布。论文实验使用单张 A100 或 A40,训练和评估在仿真中进行;LIBERO-90 的短任务可用于预训练,LIBERO-LONG 的 10 个长任务用于下游终身学习。

【Code】 官方 README 的复现实验入口是 python libero/lifelong/main.py seed=SEED benchmark_name=BENCHMARK policy=POLICY lifelong=ALGO;配置中可选 baseerewcpacknetmultitask,数据下载脚本支持四个任务套件和 Hugging Face 镜像。

Algorithm 1 LIBERO lifelong training
输入:
按顺序到达的任务套件、当前任务示教数据 DkD^k、策略架构和终身学习算法。
输出:
在当前任务达到最佳 checkpoint 后,更新的共享 policy 与历史任务评测结果。
  1. 初始化或加载 policy π\pi,读取第 kk 个任务的语言、图像、机器人状态和示教动作。
  2. 按 behavioral cloning loss 训练当前任务;ER 采样回放缓存,EWC 加入参数重要性正则,PackNet 分配可训练参数掩码。
  3. 在 epoch {0,5,,50}\in\{0,5,\ldots,50\} 保存 checkpoint,并在当前任务及已见任务上测量 success rate。
  4. 选择当前任务最佳 checkpoint,冻结/更新算法状态,转入下一个任务并累计 FWT、NBT、AUC。

4.5 Inference#

【Paper】 推理时机器人只访问当前 observation 和 task instruction,不再访问旧任务数据;策略输出 GMM 的连续末端执行器动作并与模拟器交互。任务在所有 PDDL goal predicates 满足时成功。

Algorithm 2 LIBERO policy inference
输入:
当前图像观测、机器人关节/夹爪状态、语言任务指令和已训练 policy。
输出:
一条执行到终止或 horizon 的连续动作轨迹及 success flag。
  1. 将多视角 RGB、proprioception 与语言 instruction 编码为视觉、时序和任务 token。
  2. 通过 LSTM 或 Transformer 融合历史 token,GMM head 产生末端执行器动作分布。
  3. 从分布采样动作并执行一步,更新 observation history。
  4. 检查 PDDL goal predicates;全部满足则返回成功,否则循环直到 episode 结束。

4.6 代码实现对照#

【Code】 官方实现把 benchmark、policy、lifelong method 和 optimizer 拆成 Hydra 配置树。benchmark_scripts/download_libero_datasets.py 负责下载示教;libero/configs/policy/ 定义三种 BC policy、ResNet/patch image encoder、语言 encoder、位置编码和 GMM head;libero/configs/lifelong/ 提供 er.yamlewc.yamlpacknet.yamlmultitask.yaml 等算法配置。

【Analysis】 论文中的方法贡献是“可控 benchmark + 初始研究协议”,而不是仓库中的某个单一模型。代码最重要的可复现接口是把五种算法和三种 policy 组合成实验矩阵;因此阅读结果时应同时记录 benchmark_namepolicylifelongseed,否则不同表格之间并不可直接比较。

5. 实验#

5.1 Experimental Setup#

四个套件的分布变化如下:

Suite任务数主要变化需要迁移的知识
LIBERO-Spatial10物体相同,空间关系变化declarative spatial knowledge
LIBERO-Object10布局相近,物体类型变化declarative object knowledge
LIBERO-Goal10物体和布局固定,目标变化procedural goal/behavior knowledge
LIBERO-100100物体、布局、目标混合变化entangled knowledge

LIBERO evaluation metrics from paper Figure 3

【Paper】 所有结果平均三个 random seeds,并报告标准误;success rate 被选作底层指标,因为操作任务中的训练 loss 与真实完成率并不总是同步。

5.2 Main Results#

【Paper】 论文的主要结论可以压缩成三点:

  1. Transformer temporal backbone 普遍优于 RNN:ResNet-T 和 ViT-T 在多数套件上的 AUC 明显高于 ResNet-RNN,说明长期依赖的抽象方式本身就是关键变量。
  2. 视觉架构具有任务专长:在 ER 下,ResNet-T 往往在 Spatial/Goal 上更强;ViT-T 在 Object 上受益于更强的视觉容量。没有单一 encoder 在所有分布变化上胜出。
  3. 算法与架构存在交互:PackNet 在 LIBERO-X 上的 NBT 很低,但在 LIBERO-LONG 上 forward transfer 较差;ER 的整体表现更稳健。

以 LIBERO-LONG 为例,ResNet-T + ER 的 FWT/NBT/AUC 为 0.48/0.32/0.32,ViT-T + PackNet 为 0.36/0.14/0.34;后者更不容易忘记,但前者学新任务更快。【Analysis】 这正是 AUC 比单一“最终成功率”更有解释力的地方。

5.3 Ablation Study#

语言 embedding。 BERT、CLIP、GPT-2 与 Task-ID embedding 在 LIBERO-LONG 上没有统计显著差异。论文推测,当前 sentence embedding 更像 bag-of-words,只负责区分任务,而没有真正利用 instruction 的语义结构。

终身算法。 SeqL 在所有套件上 FWT 最好,说明 ER/EWC/PackNet 的抗遗忘机制同时牺牲了新任务适应速度;PackNet 在短任务上保护旧知识有效,但参数分割会减少单个长任务可用容量;EWC 的正则化甚至可能阻碍当前任务优化。

任务顺序。 同一算法和架构仅改变 task ordering,性能就会显著变化,尤其是 PackNet。任务顺序不是实验噪声,而是 benchmark 应显式报告的条件。

Task ordering results from paper Figure 4

5.4 Generalization#

【Paper】 作者用 LIBERO-90 的 90 个短任务做 supervised pretraining,再在 LIBERO-LONG 上进行 lifelong learning。结果显示,朴素预训练不一定改善下游性能,部分架构/算法组合反而下降。

Pretraining effects from paper Figure 5

【Analysis】 这不是“预训练无效”的普遍结论,而是说明行为克隆预训练可能把模型塑造成过于具体的动作/视觉表示,降低后续任务中的可塑性;预训练目标、数据顺序和冻结策略需要与 lifelong objective 一起设计。

6. 方法分析#

6.1 为什么有效?#

【Analysis】 LIBERO 有效的根本原因是把变量拆开了。Spatial/Object/Goal 三套任务共享大量因素,只改变一个知识轴,因而可以把性能差异归因到空间、对象或程序行为,而不是笼统地归因于“泛化能力”。同时,FWT 与 NBT 把适应速度和记忆保持分离,避免算法通过完全冻结模型获得虚假的抗遗忘成绩。

6.2 核心创新#

  1. Benchmark as a microscope:任务套件不是简单增加数量,而是提供知识类型的受控实验。
  2. Procedural generation:自然语言模板、场景、PDDL 状态和目标形成可扩展的任务生产线。
  3. Policy–algorithm matrix:同一 benchmark 同时比较视觉/时序架构和终身算法,揭示二者的交互效应。
  4. Lifecycle metrics:FWT、NBT、AUC 让“学得快、忘得少、总体好”成为可复现实验对象。

6.3 与已有方法的本质区别#

LIBERO 不把 lifelong robot learning 简化为“多任务 BC 的最后一个 checkpoint”。它保留任务到达顺序、旧数据不可完全访问和持续评估旧任务三个约束;MTL 只是上界,SeqL 则是 forward-transfer 参照。【Analysis】 因此 LIBERO 更接近真实部署中的数据生命周期,而非离线数据集上的静态 benchmark。

6.4 关键假设#

  • 【Paper】 所有任务共享状态/动作空间和动力学,主要变化来自初始分布与目标谓词。
  • 【Paper】 机器人主要通过少量示教进行 imitation learning,当前版本不是稀疏奖励 RL 的完整解决方案。
  • 【Analysis】 仿真中的视觉和动力学差异仍然有限,benchmark 分数不能直接等价为真实机器人上的终身能力。
  • 【Analysis】 任务文本被当作 task condition,但现有 embedding 实验表明策略可能只使用任务 ID 的区分信息。

7. 局限性#

7.1 作者明确提出的局限#

【Paper】 LIBERO 的初始研究集中在四个模拟任务套件、三种 policy 和三种 lifelong algorithm;作者将更丰富的语言编码、对任务顺序更鲁棒的算法、以及更有效的预训练列为开放方向。当前 benchmark 主要采用 imitation learning,因为 sparse-reward RL 在这些操作任务上训练困难。

7.2 自己分析得到的局限#

【Analysis】

  1. 仿真偏差:PDDL goal 成功并不包含接触安全、力控制和硬件磨损,sim-to-real 仍需独立验证。
  2. 示教分布限制:每任务 50 条轨迹足以做 benchmark,但可能不足以覆盖多种合法行为,影响对多模态 procedural knowledge 的测量。
  3. 记忆预算未完全统一:ER 的 replay 容量、PackNet 的参数掩码和 EWC 的正则强度有不同资源含义,横向比较需要同时报告内存和可训练参数。
  4. 语言变量仍较弱:如果自然语言只承担 task identifier,LIBERO 还不能充分检验 compositional language grounding。
  5. 长程交互有限:LIBERO-LONG 只有 10 个长任务,真实世界中任务数量、对象变化和动力学变化可能更加开放。

8. 启发与研究思考#

【Analysis】 读完 LIBERO 后,最值得带走的不是“ER 还是 PackNet 更好”,而是以下研究方法:

  • 先定义要迁移的知识,再设计只改变一个因素的任务套件;否则任何结果都难以解释。
  • 评估 lifelong policy 时同时画出 learning curve、FWT、NBT 和 AUC,并报告 task ordering 与 seed。
  • 把 policy architecture 当成一等公民:视觉 encoder、temporal module 和 language fusion 可能比算法名字更决定迁移效果。
  • 预训练应优化“可塑性 + 稳定性”,而不是只追求短期 BC success rate;可以尝试 representation replay、任务关系建模或 meta-learned consolidation。
  • 下一步可把 LIBERO 的 PDDL 目标与真实机器人安全约束连接起来,并增加开放词汇对象、触觉、力反馈和可组合语言 instruction。
LIBERO 论文精读:终身机器人学习知识迁移基准
https://agusexp25.top/blog/paper-deep-dive-libero
Author 菊花花
Published at August 27, 2026