介绍终身机器人学习的数据集LIBERO

介绍终身机器人学习的数据集LIBERO
在这里插入图片描述

1 LIBERO的作用

在这里插入图片描述

LIBERO是一个用于研究多任务和终身机器人学习中知识迁移的综合基准测试平台,LIBERO是基于robosuite框架构建的。它专注于机器人操作任务,这些任务需要两类知识:

  1. 陈述性知识:关于物体和空间关系的知识
  2. 程序性知识:关于运动和行为的知识

2 核心原理

任务生成与基准设计

LIBERO提供了一个程序化生成管道,原则上可以生成无限数量的操作任务。系统包含130个任务,分为四个任务套件,每个套件都有受控的分布偏移

  • LIBERO-Spatial/Object/Goal:专注于特定类型知识的迁移
  • LIBERO-100:包含需要迁移纠缠知识的100个操作任务

学习框架

系统采用模仿学习作为主要学习方法,因为任务使用稀疏奖励函数(任务完成时获得+1奖励)。LIBERO提供高质量的人类遥操作演示数据集用于训练。

算法与策略架构

LIBERO实现了三种视觉运动策略网络:

  • bc_rnn_policy:基于RNN的行为克隆策略
  • bc_transformer_policy:基于Transformer的行为克隆策略
  • bc_vilt_policy:基于视觉-语言Transformer的行为克隆策略

以及五种终身学习算法:

  • base:顺序微调(基线)
  • er:经验回放(Experience Replay)
  • ewc:弹性权重巩固(Elastic Weight Consolidation)
  • packnet:渐进式网络架构方法
  • multitask:多任务学习(基线)

3 任务套件概览

LIBERO包含130个任务,分为四个主要任务套件:

  1. LIBERO-Spatial(10个任务)
  2. LIBERO-Object(10个任务)
  3. LIBERO-Goal(10个任务)
  4. LIBERO-100(100个任务)

LIBERO-100进一步分为LIBERO-90(90个任务,用于预训练)和LIBERO-10(10个任务,用于测试下游持续学习性能)。

3.1 LIBERO-Spatial(空间关系迁移)

这10个任务都涉及将黑碗放到盘子上,但黑碗的初始位置不同:

  1. 拾取盘子和小碗之间的黑碗并放到盘子上
  2. 拾取小碗旁边的黑碗并放到盘子上
  3. 拾取桌子中央的黑碗并放到盘子上
  4. 拾取饼干盒上的黑碗并放到盘子上
  5. 拾取木柜顶部抽屉中的黑碗并放到盘子上
  6. 拾取小碗上的黑碗并放到盘子上
  7. 拾取饼干盒旁边的黑碗并放到盘子上
  8. 拾取炉子上的黑碗并放到盘子上
  9. 拾取盘子旁边的黑碗并放到盘子上
  10. 拾取木柜上的黑碗并放到盘子上
3.2 LIBERO-Object(物体知识迁移)

这10个任务都是将不同物体放入篮子:

  1. 拾取字母汤罐头并放入篮子
  2. 拾取奶油奶酪并放入篮子
  3. 拾取沙拉酱并放入篮子
  4. 拾取烧烤酱并放入篮子
  5. 拾取番茄酱并放入篮子
  6. 拾取番茄酱罐并放入篮子
  7. 拾取黄油并放入篮子
  8. 拾取牛奶并放入篮子
  9. 拾取巧克力布丁并放入篮子
  10. 拾取橙汁并放入篮子
3.3 LIBERO-Goal(目标导向迁移)

这10个任务涉及不同的操作目标:

  1. 打开柜子的中间抽屉
  2. 将碗放到炉子上
  3. 将酒瓶放到柜子顶部
  4. 打开顶部抽屉并将碗放入
  5. 将碗放到柜子顶部
  6. 将盘子推到炉子前面
  7. 将奶油奶酪放入碗中
  8. 打开炉子
  9. 将碗放到盘子上
  10. 将酒瓶放到架子上
3.4 LIBERO-10(综合测试套件)

这10个任务来自不同场景,涉及复合操作:

  1. 客厅场景2:将字母汤和番茄酱都放入篮子
  2. 客厅场景2:将奶油奶酪盒和黄油都放入篮子
  3. 厨房场景3:打开炉子并将摩卡壶放上去
  4. 厨房场景4:将黑碗放入柜子底部抽屉并关闭
  5. 客厅场景5:将白色杯子放到左边盘子上,黄白杯子放到右边盘子上
  6. 书房场景1:拾取书并放入收纳盒后部隔间
  7. 客厅场景6:将白色杯子放到盘子上,巧克力布丁放到盘子右边
  8. 客厅场景1:将字母汤和奶油奶酪盒都放入篮子
  9. 厨房场景8:将两个摩卡壶都放到炉子上
  10. 厨房场景6:将黄白杯子放入微波炉并关闭
3.5 LIBERO-90

包含90个任务用于预训练。

系统支持21种不同的任务顺序排列,用于评估持续学习算法在不同任务序列下的表现。

4 框架算法详解

4.1 终身学习算法

1. Sequential (base)

顺序微调基线,也是所有终身学习算法的父类。

原理:按顺序在每个任务上训练策略网络,不采用任何防止遗忘的机制。每个任务开始时初始化优化器和调度器,然后通过observe()方法学习数据点。

学习过程包括:

  • 将数据移到设备上
  • 计算策略损失
  • 反向传播并应用梯度裁剪
  • 更新参数
2. Experience Replay (ER)

经验回放算法

原理:维护一个包含之前任务数据的缓冲区。学习新任务时,从缓冲区采样旧任务数据与当前任务数据混合训练,防止灾难性遗忘。

每个任务结束后,将该任务的数据集截断并添加到缓冲区。学习时合并当前数据和缓冲区数据。

3. Elastic Weight Consolidation (EWC)

弹性权重巩固算法

原理:通过添加正则化惩罚项来保护重要参数不被修改。计算Fisher信息矩阵来估计参数重要性,然后在损失函数中添加惩罚项,限制重要参数的变化。

每个任务结束后计算Fisher信息,学习时在损失中加入惩罚项。

4. PackNet

渐进式网络剪枝算法

原理:为每个任务分配网络的不同子集。学习新任务时,先将之前任务使用的权重冻结,然后在剩余可训练权重上学习。任务结束后进行剪枝,保留当前任务的重要权重。

学习时将固定参数的梯度置零,任务结束后进行剪枝并可选地进行微调。

5. Multitask

多任务学习基线,所有任务同时训练。

4.2 神经网络架构

1. BCRNNPolicy

基于RNN的行为克隆策略

架构组成

  1. 图像编码器:处理RGB/深度图像,输出固定维度的嵌入
  2. 语言编码器:编码任务描述
  3. 额外模态编码器:处理关节状态、夹爪状态、末端执行器位置等
  4. LSTM网络:处理时序信息
  5. 策略头:输出动作分布
2. BCTransformerPolicy

基于Transformer的行为克隆策略

架构组成

  1. 图像编码器:与RNN策略类似
  2. 语言编码器
  3. 额外模态token化:将额外模态转换为token
  4. 时序Transformer:处理时序依赖
  5. 策略头
3. BCViLTPolicy

基于视觉-语言Transformer的行为克隆策略

架构组成

  1. 图像编码器:使用patch embedding
  2. 空间语言编码器时序语言编码器
  3. 位置嵌入和模态嵌入:用于区分不同输入
  4. 空间Transformer:融合图像和语言信息
  5. 时序Transformer策略头

前向传播包括空间编码和时序编码两个阶段。

所有策略网络都继承自BasePolicy基类,实现了统一的接口。三种网络的主要区别在于时序建模方式:RNN使用LSTM,Transformer使用自注意力机制,ViLT则采用双层Transformer分别处理空间和时序信息。所有算法都基于行为克隆,通过模仿学习从人类演示中学习策略。

5 待解决的问题

LIBERO旨在解决终身机器人学习中的几个核心挑战:

5.1. 知识迁移评估

通过受控的分布偏移,系统可以系统性地研究不同类型知识的迁移能力。前三个任务套件分别测试空间关系、物体知识和目标导向知识的迁移。

5.2. 灾难性遗忘

终身学习算法需要在学习新任务时保持对旧任务的性能。系统通过混淆矩阵跟踪这一问题,记录在学习任务k后对任务p的性能。

5.3. 前向和后向迁移

系统计算两个关键指标:

  • 前向迁移:学习速度,通过成功率AUC衡量
  • 后向迁移:学习新任务后对旧任务性能的影响

6 实验评估方法

6.1 评估指标

训练过程中系统跟踪多个指标:

  1. 损失混淆矩阵:记录在不同训练阶段各任务的BC损失
  2. 成功率混淆矩阵:记录在不同训练阶段各任务的成功率
  3. 学习曲线AUC:衡量智能体学习和成功的速度

6.2 实验流程

对于顺序学习算法,系统按以下流程进行:

  1. 对每个任务i,训练智能体
  2. 在所有已见任务(0到i)上评估损失和成功率
  3. 更新混淆矩阵和前向迁移指标

对于多任务学习基线,所有任务同时训练。

6.3 计算效率

系统报告策略网络的计算复杂度,以GFLOPs和参数量(MParams)衡量。

7 下载及安装

7.1 项目下载

# 安装 pip install libero # 下载示范数据与套件 python -m libero.download_suite --suite libero_100 # 顺序微调实验(以 bc_transformer 为例) python libero/lifelong_train.py \ --suite libero_100 \ --policy bc_transformer_policy \ --algo sequential 

7.3 数据集下载

(1)直接下载链接
libero_object: https://utexas.box.com/shared/static/avkklgeq0e1dgzxz52x488whpu8mgspk.zip
libero_goal: https://utexas.box.com/shared/static/iv5e4dos8yy2b212pkzkpxu9wbdgjfeg.zip
libero_spatial: https://utexas.box.com/shared/static/04k94hyizn4huhbv5sz4ev9p2h1p6s7f.zip
libero_100: https://utexas.box.com/shared/static/cv73j8zschq8auh9npzt876fdc1akvmk.zip

(2)HuggingFace (推荐)
HuggingFace仓库地址: download_utils.py:108
仓库ID: yifengzhu-hf/LIBERO-datasets
完整地址: https://huggingface.co/datasets/yifengzhu-hf/LIBERO-datasets
下载方法
使用下载脚本: download_libero_datasets.py:1-27

# 使用HuggingFace下载(推荐)  python benchmark_scripts/download_libero_datasets.py --use-huggingface 
# 下载特定数据集  python benchmark_scripts/download_libero_datasets.py --datasets libero_spatial --use-huggingface 

脚本会提示原始链接可能失效,建议使用HuggingFace源。

Read more

【记录】Copilot|Github Copilot重新学生认证通过方法(2025年7月,包括2FA和认证材料、Why are you not on campus)

【记录】Copilot|Github Copilot重新学生认证通过方法(2025年7月,包括2FA和认证材料、Why are you not on campus)

文章目录 * 前言 * 步骤 * 最重要的一步 前言 事实上,Github Copilot马上就要开源了,我原本的认证过期了。但是在我体验了众多的代码补全工具实在是太难用了之后,我觉得一天也等不了了,就去再一次认证了学生认证。 这次严格了很多,要求巨无敌多,这里写一下新认证要干的事情。 一口气认证了八次的含金量谁懂,把要踩的坑全踩完了。。 步骤 (如果你是第一次认证还要额外添加一下自己的学校邮箱,这里我就略过不提了) 在所有的步骤之前,最好确保你的本人就在学校或者在学校附近。当你出现了报错You appear not to be near any campus location for the school you have selected.时,会非常难通过。 而其他的报错可以按我下文这种方式通过。 (对于部分学校,比如华科大)双重认证Two-factor authentication要打开:跳转这个网站https://github.com/settings/security,然后点下一步开启认证,

Flutter for OpenHarmony:Flutter 三方库 dart_openai — 激发鸿蒙应用的 AIGC (AI 大模型/ChatGPT、Deepseek等) 无限创意(适配鸿蒙

Flutter for OpenHarmony:Flutter 三方库 dart_openai — 激发鸿蒙应用的 AIGC (AI 大模型/ChatGPT、Deepseek等) 无限创意(适配鸿蒙

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net。 Flutter for OpenHarmony:Flutter 三方库 dart_openai — 激发鸿蒙应用的 AIGC (AI 大模型/ChatGPT、Deepseek等) 无限创意(适配鸿蒙 HarmonyOS Next ohos) 前言 随着生成式 AI(AIGC)浪潮席卷全球,将大语言模型(LLM)的智慧集成到移动应用中已成为大势所趋。无论是智能对话、代码生成,还是图像创作,AI 正在重塑我们的交互方式。 在 Flutter for OpenHarmony 开发中,我们如何让鸿蒙应用直接对话全球顶尖的 AI 模型?dart_openai 库通过对 OpenAI API 的完美封装,

毕业论文写到头秃?Paperzz AI写作神器让开题到定稿效率翻倍!附全流程实操指南

毕业论文写到头秃?Paperzz AI写作神器让开题到定稿效率翻倍!附全流程实操指南

Paperzz-AI官网免费论文查重复率AIGC检测/开题报告/文献综述/论文初稿paperzz - 毕业论文-AIGC论文检测-AI智能降重-ai智能写作https://www.paperzz.cc/dissertation   导语 “导师说标题太大”“参考文献找不到”“提纲改了八遍还是被批”……每年毕业季,多少大学生在论文的泥潭里挣扎到凌晨?当同龄人已经投递简历,你还在为“研究方法怎么写”抓耳挠腮?别慌!今天给大家挖到一个能救命的AI写作神器——Paperzz,从选题到定稿,全流程帮你把论文“丝滑”搞定!(附真实界面截图,手把手教你用) 一、Paperzz是什么?学术人的“智能外挂” Paperzz并非传统代写平台,而是一款专注学术辅助的AI工具,核心定位是“用技术提效,而非替代思考”。它聚焦毕业论文全流程,覆盖选题、提纲、文献、写作、格式等环节,特别适合被“论文 deadline”追着跑的学生党。 划重点: * ✅ 合规性保障:

llama-cpp-python完整安装指南:5步解决90%新手问题 [特殊字符]

llama-cpp-python完整安装指南:5步解决90%新手问题 🎯 【免费下载链接】llama-cpp-pythonPython bindings for llama.cpp 项目地址: https://gitcode.com/gh_mirrors/ll/llama-cpp-python llama-cpp-python是专为llama.cpp库设计的Python绑定项目,为开发者提供了在Python环境中高效运行本地大语言模型的完美解决方案。通过该项目,您可以轻松实现文本生成、对话交互、多模态推理等AI功能,无需依赖云端API即可享受强大的本地AI推理能力。 🔧 一键编译配置技巧 环境配置是新手最容易遇到问题的环节。llama-cpp-python支持多种硬件加速后端,正确配置编译环境至关重要。 步骤1:基础环境检查 确保系统已安装Python 3.8+和C编译器: * Linux/Mac: gcc或clang * Windows: Visual Studio或MinGW * MacOS: Xcode命令行工具 步骤2:核心安装命令 pip in