​开源仓库LIBERO githubPaperLIBERO paperNeurIPS 2023 的一个 Benchmark现在已经被刷到 99 分了不过是一个比较好的了解具身 Task 的渠道。LIBERO 包括四个 subtask总计 130 个任务LIBERO-Spatial10 tasks一组对象布局不同测试模型对空间关系的理解LIBERO-Object10 tasks相同场景布局不同对象测试模型对对象类型的理解LIBERO-Goal10 tasks由相同的对象和布局组成但任务目标不同测试模型对不同面向任务的行为的了解。LIBERO-100100 tasks for pretrainingLIBERO 利用程序化生成Procedural Generation技术构建了 130 种不同的家居操作任务例如把碗放到盘子里、打开特定的抽屉等。它为你规定好了初始场景长什么样、机器人能拿到什么观测RGB 图像、关节角度、任务的语言提示词Prompt是什么以及判断任务是否成功的奖励函数。LIBERO 项目实现了三种终身学习算法ER (Experience Replay) 经验回放 [1902.10486] On Tiny Episodic Memories in Continual Learning保存少量数据。当 agent 学习到新任务时ER 会利用包含旧数据和新数据的组合数据进行训练。EWC (Elastic Weight Consolidation) 弹性权重整合法 https://arxiv.org/pdf/1612.00796EWC 是一种基于正则化的方法它会对那些在任务学习中起重要作用的网络参数施加较强的正则化约束。这些参数的重要性是通过 Fisher 信息矩阵来估计的。PACKNET [1711.05769] PackNet: Adding Multiple Tasks to a Single Network by Iterative Pruning在学习新任务时算法会移除网络中不太重要的神经元然后重新初始化被删减的部分只学习与新任务相关的参数。另外还提供了架构BDDL 文件在 LIBERO 中我们能看到很多 .bddl 文件。BDDL 的全称是 BEHAVIOR Domain Definition LanguageBEHAVIOR 领域定义语言。它是由斯坦福大学等团队在 BEHAVIOR 项目中提出的一种基于一阶谓词逻辑First-Order Logic的文本数据格式。它与 PDDLPlanning Domain Definition Language规划领域定义语言语法很相似都使用 Lisp 风格的括号对齐而区别在PDDL 通常包含操作/动作声明:action规定了状态如何转移用于符号规划器Planner生成动作序列。BDDL 移除了动词Action Symbols。 它只定义状态不定义动作。它把具体的运动和动作如何执行完全交给了底层的物理仿真器如 RoboSuite、OmniGibson以及机器学习策略Policy它只负责作为裁判来初始化场景和检验最终结果。仿真环境基于 RoboSuite会自动加载这些 .bddl 文件并在每个时间步检查机器人的操作是否满足了 Goal Conditions以此来给机器学习算法计算奖励Reward或判定任务是否完成。底层依赖底层物理引擎真正的引擎MuJoCoLIBERO 并没有自己写物理法则。它最底下使用的是 MuJoCo。这是一个极其强大的物理引擎负责计算重力、摩擦力、机械臂关节的动力学以及物体之间的碰撞。中间层仿真框架robosuite在 MuJoCo 之上LIBERO 使用了 robosuite。robosuite 将 MuJoCo 复杂的 C 接口封装成了友好的 Python 接口提供了现成的 Franka 机械臂模型、夹爪模型、摄像头渲染功能等。而 LIBERO 是建立在 robosuite 之上的任务集和评测标准。​