- 论文标题:METRA: Scalable Unsupervised RL with Metric-Aware Abstraction
- ICLR 2024 Oral。
- arxiv:https://arxiv.org/abs/2310.08887
- pdf:https://arxiv.org/pdf/2310.08887
- html:https://arxiv.org/html/2310.08887
- website:https://seohong.me/projects/metra/
- GitHub:https://github.com/seohongpark/METRA
主要内容:
- metra 关注 RL 的子领域 skill discovery,是目前 skill discovery 领域的 sota 方法之一。
- skill discovery 希望以无监督的方式(没有 reward 信号)训练一系列策略 \(\pi(a|s,z)\) ,它们 condition on 一个高维向量 z,z 被称为 skill。总的来说,我们希望这一系列策略,可以彼此有很大的区分度,但又覆盖整个状态空间。具体的,这些策略满足两个特征:
- 1 可区分性:不同 skill z 生成的轨迹可以被区分,即,我们可以训练 / 得到一个 \(q(z|\tau)\),来分辨一个轨迹是哪个 skill 生成的。
- 2 状态覆盖:这些策略应该尽可能地覆盖状态空间。
- skill discovery 的通常做法:最大化 s 和 z 之间的互信息,\(I(s|z) = I(z|s) = H(s) - H(s|z) = H(z) - H(z|s)\) 。
- metra 的核心思想:使用 temporal distance,为 state space 训练一个 embedding space,然后让 policy 在 embedding space 里跑的尽可能远。
- 训 embedding space 的动机:传统 skill discovery 的互信息方法,认为 ① 一个 humanoid 抬左脚 / 抬右脚 ② humanoid 往左跑 / 往右跑 是没有区别的,认为这两个行为都是可分的。
- 然而,人类会觉得 ② 比 ① 区分度更大,这其实因为,抬左脚 / 抬右脚 是很容易互相达到的两个状态(temporal distance 小),而 humanoid 在地图左边 / 右边,这两个状态不容易相互达到(temporal distance 大)。
- metra 发现,当我们跑一些复杂的环境,其中 state space 大一些,比如 state 维度高一些,传统 skill discovery 方法就很难覆盖很多 state 了。这是因为它们的很多 skill,都用来覆盖细枝末节、人类认为不重要的 state(temporal distance 小)。
- 因此,metra 认为,如果我们可以为 state space \(s\) 训练一个紧凑的 embedding space \(\phi(s)\),使得 \(\phi(s_1),\phi(s_2)\) 之间的距离,与 \(s_1,s_2\) 之间的 temporal distance 相匹配;然后让 policy 尽可能覆盖 embedding space,便可以学到更有价值的 skill。
目录
- 1 metra 的故事
- 1.1 动机:现有方法的 Gap,METRA 如何解决
- 1.2 方法:METRA 为什么合理和精妙
- 1.3 总结一下这个故事
- 2 metra 的理论 & 方法
- 3 metra 的实验 & 实验结果
- 3.1 实验环境
- 3.2 baseline
- 3.3 评估指标
- 3.4 实验结果
1 metra 的故事
(deepseek 总结的,感觉比我写得好)
这篇论文讲的是如何在没有奖励信号的情况下,让 agent 自己摸索出各种有用的动作技能。这很重要,因为如果机器人能自己学会很多基础技能(比如走路、转身、拿东西),以后学具体任务(比如送快递)就会快得多。下面,分析它的动机和方法:
1.1 动机:现有方法的 Gap,METRA 如何解决
<ul>现有方法的 Gap:
- 方法一:瞎逛型(Pure Exploration):让机器人尽量去没去过的地方。问题:在复杂环境(比如有很多关节的人形机器人)里,状态多到逛不完,效率太低。就像让你蒙着眼探索整个城市,可能一直绕圈子。
- 方法二:技能区分型(Mutual Info Skill):让机器人学不同的技能,保证每个技能去的地方不一样。问题:它只关心技能“不一样”,不关心“多有用”。机器人可能学会“轻微抖腿”和“使劲抖腿”就算两种技能,但根本没移动!相当于厨师只会切不同形状的土豆丝,但不会炒菜。原文:“然而,它们存在一个共同局限,即它们往往最终发现的是简单、静态的行为,且状态覆盖范围有限”。
- 核心问题:这两种方法在简单环境还行,但在高维复杂环境(如像素输入的四足机器人、人形机器人)都搞不定,学不到真正有用的移动技能。
METRA 的动机,METRA 如何解决 Gap:
<ul>关键 Insight:不用费劲覆盖整个状态空间(太庞大),只需覆盖一个紧凑的“核心”空间(Latent Space Z),这个空间能代表环境中真正重要的变化方向。
如何连接“核心”空间和真实世界?:用时间距离(Temporal Distance) 当尺子。时间距离 = 两点间最快需要多少步到达。这很合理:在像素世界里,两个看起来不同的画面(比如机器人位置变化1米),如果一步就能到,那它们在这个“核心”空间里就该离得很近;如果需要跑 10 秒才能到,就该离得远。
METRA 的目标:学一个映射函数 \(\phi(s)\) 把状态 \(s\)(比如像素图)映射到“核心”空间 \(Z\)(比如2维点),并满足:\(||\phi(s1) - \phi(s2)|| |