论文速读记录 | 2025.09




SkiLD: Unsupervised Skill Discovery Guided by Factor Interactions

主要内容:

一、背景与动机:传统 USD 的困境

1.1 任务设定:无监督技能发现 (unsupervised skill discovery,USD)

USD 的目标是在没有外部奖励的 setting 下,让智能体纯探索,自主学习一套可复用、有意义的低级技能(Skills)。这些 skill 随后可用于高效解决下游任务,甚至是一些长视界、稀疏奖励的下游任务。

(但是感觉,这篇文章并没有做传统 skill discovery,而是在做一种 goal-conditioned RL:想学会操作各种物体,policy 的 condition 是操作方式)

1.2 传统方法的瓶颈 (The Gap)

现有主流方法(如 DIAYN)的核心是多样性最大化,即鼓励智能体学习可区分的行为,并覆盖尽可能多样的状态

然而,在如家庭环境(厨房、客厅)等复杂场景中,状态空间因物体数量(状态因素)的增加而指数级爆炸,导致传统方法面临两大挑战:

  • 效率低下: 试图覆盖所有状态是徒劳的。
  • 技能简单: 智能体倾向于学习“容易”的技能,例如只移动自身到不同位置,或独立地移动某个物体,而忽略了物体间的复杂交互

核心 Motivation: 许多复杂任务的瓶颈状态都涉及状态因素之间的关键交互(例如,机器人必须先抓取刀,才能用它去切割水果)。SkiLD 的动机是:与其被动地等待随机探索“撞到”这些关键交互,不如主动地将“诱导特定交互”作为技能学习的目标。

二、核心概念:因子化与交互的定义

SkiLD 的方法建立在两个关键概念之上:

2.1 因子化 MDP (Factored MDP)

  • 概念: 将整个环境状态 \(S\) 分解为 \(N\) 个独立的状态因子(State Factors)的组合:\(S = S_1 \times S_2 \times \cdots \times S_N\)
  • 例子: 在厨房环境中,状态 \(S\) 被分解为 \(S_1\)(机器人的位置)、\(S_2\)(刀的位置)、\(S_3\)(桃子的状态)等。
  • 作用: 这种分解为我们讨论和形式化“因素之间的交互”提供了基础。

2.2 局部依赖图 \(G\)(这篇文章中,agent 与物体的“交互”的定义)

  • 概念: \(G\) 是一个 N×(N+1) 的二值矩阵,它描述了在一次状态转移 \((s, a, s')\) 中,哪些当前状态因素 \(S_j\) 对下一个状态因素 \((S_i)'\) 的变化产生了影响(即发生了交互)
  • 例子: 智能体用刀切桃子。下一个状态的桃子 \((S_{\text{Peach}})'\) 的变化,依赖于当前状态的刀 \(S_{\text{Knife}}\) 和智能体 \(S_{\text{Agent}}\)。图 \(G\) 中对应的元素 \(G_{\text{Peach}, \text{Knife}}\)\(G_{\text{Peach}, \text{Agent}}\) 为 1。
  • 作用: SkiLD 将达成特定的 \(G\)(即达成特定的交互)定义为一种有意义的技能。

三、SkiLD 算法流程:分层学习与交互驱动

SkiLD 采用分层强化学习(HRL)架构,分为技能学习(无监督)和任务学习(有监督)两个阶段。

3.1 阶段一:无监督技能学习(核心)

目标: 学习一套可复用的技能 \(Z\),以及执行这些技能的低级策略 \(\pi_{skill}\)

3.1.1 技能表示 \(Z\)

技能 \(Z\) 由两部分组成:\(Z = (G, B)\)

  • \(G\) (目标依赖图): 定义了智能体需要诱导的特定交互。
  • \(B\) (多样性指示器): 一个额外的参数,用于确保技能在不同的状态或位置上执行,从而增强泛化性。(个人理解,这个 B 对应传统 skill discovery 的 skill z)
    • 例子: \(G\) 是“将钉子锤入木板”,\(B\) 则可能指示“锤入木板的哪个位置”。

3.1.2 局部依赖图 \(G\) 的识别与选择

  • \(G\) 的识别(Learning): 通过学习一个动力学模型来近似状态转移概率,并使用 pCMI(点态条件互信息)来判断 \(S_j\) 是否是预测 \((S_i)'\) 所必需的。这使得算法能为任何一次状态转移 \((s, a, s')\) 自动生成一个它实际达成的依赖图 \(G_{\text{induced}}\)
  • \(G\) 的选择(Selection):高层图选择策略 \(\pi_G\) 负责。
    • \(\pi_G\) 只从历史上成功诱导的 \(G\) 集合中选择目标 \(G_{\text{target}}\),确保目标是可实现的
    • \(\pi_G\)奖励 \(R_G\) 基于图的新颖性\(R_G = 1 / Count(G_{\text{visited}})\)),鼓励智能体去探索和掌握那些新颖的、或尚未被充分掌握的 \(G\)

3.1.3 低级策略 \(\pi_{skill}\) 的训练

  • \(\pi_{skill}\) 学习如何执行动作 \(a\) 来达成上层策略 \(\pi_{skill}\) 给出的目标技能 \(Z=(G_{\text{target}}, B)\)
  • 技能奖励 \(R_{skill}\) 这是一个稀疏奖励,只有当 \(G_{\text{induced}}\) 完全匹配 \(G_{\text{target}}\) 时才获得奖励:

    \[R_{skill} = \mathbf{1}[G_{\text{induced}} = G_{\text{target}}] \cdot (1 + \lambda R_{\text{diversity}}) \]

    • \(\mathbf{1}[\cdot]\) 确保技能的精确性
    • \(R_{\text{diversity}}\) 只有在成功诱导 \(G\) 时才激活,形式为 \(\log q(b|s, g)\),通过判别器 \(q\) 确保状态 \(s\)\(B\) 具有高互信息。(没认真看,gemini 说这个 diversity 的 intrinsic reward 跟 DIAYN 的形式是一样的)
  • 关键技巧: 使用 Hindsight Experience Replay (HER) 来解决稀疏奖励问题,并使用因子化低级策略来简化学习难度。

3.1.4 因子化低级策略(Factored Lower-Level Policy)

这是 SkiLD 极其重要的实现上的技巧。正如论文在附录 A 中所指出的:“经验上,我们发现没有这个改变,低级策略很难学会任何东西,甚至是对智能体的简单控制。”

  1. 策略结构的变化:从一个策略到 N 个策略
  • 传统(未因子化): 只有一个低级策略 \(\pi_{\text{skill}}\),它接受整个技能 \(Z=(G, B)\) 作为输入,并尝试诱导整个 \(G\) 矩阵:\(\pi_{\text{skill}} : S \times Z \rightarrow A\)
  • SkiLD(因子化): \(\pi_{\text{skill}}\) 被结构化为一个策略集合,集合中有 \(N\) 个子策略,每个子策略 \(\pi_{\text{skill}, i}\) 专门负责影响\(i\) 个状态因素 \(S_i\)\(\pi_{\text{skill}} = \{\pi_{\text{skill}, 1}, \pi_{\text{skill}, 2}, \dots, \pi_{\text{skill}, N}\}\),其中,每个子策略 \(\pi_{\text{skill}, i}\) 的输入和输出与之前略有不同。
  1. 高层策略 \(\pi_G\) 动作空间的变化:不再选择整个 \(N \times (N+1)\) 的依赖图 \(G\) 作为目标,而是选择一个目标因素 \(i\) 和该因素对应的目标依赖行 \(g_i\)
  • \(G\) 矩阵的行 \(g_i\) 原先的 \(G\)\(N \times (N+1)\) 的矩阵。第 \(i\)\(g_i\) 描述了“哪些当前 factor \(S_j\) 和动作 \(A\) 影响了下一个状态因素 \((S_i)'\)”。
  • \(\pi_G\) 的输出: \(\pi_G\) 的动作空间变为 \(Z' = (i, g_i, B)\)
    • \(i \in \{1, \dots, N\}\):目标 factor 的索引(例如 \(i\) = "Peach")。
    • \(g_i\):目标依赖图 \(G\) 的第 \(i\) 行(例如 \(g_{\text{Peach}}\)),即,是哪些当前 factor 会影响目标 factor。
  • 历史集合的变化: 算法不再维护整个图 \(G\) 的历史集合 \(H\),而是维护G 图的行的历史集合 \(H_f\)\(\pi_G\) 的选择也只从 \(H_f\) 中进行,确保选择的目标行 \(g_i\)可实现的
  1. 低级策略 \(\pi_{\text{skill}}\) 的执行和奖励变化:这是最关键的一步。当高层策略选择了目标 \(Z'=(i, g_i, B)\) 后:
  • 策略调用: 智能体只调用对应的子策略 \(\pi_{\text{skill}, i}\) 来执行动作 \(A\)\(\pi_{\text{skill}, i} : S \times (g_i, B) \rightarrow A\)
    • 直觉: 如果目标是改变桃子的状态,那么我们只激活桃子的子策略。这使得策略的学习目标非常集中。
  • 奖励计算: 低级策略 \(\pi_{\text{skill}, i}\) 的奖励 \(R_{\text{skill}}\) 不再要求整个 \(G_{\text{induced}}\) 匹配 \(G_{\text{target}}\),而只要求实际诱导的行 \(g_{\text{achieved}, i}\) 匹配目标行 \(g_i\)\(R_{\text{skill}} = \mathbf{1}[g_{\text{achieved}, i} = g_i] \cdot (1 + \lambda R_{\text{diversity}})\)
    • \(g_{\text{achieved}, i}\) 的获取: 算法仍然会计算完整的 \(G_{\text{induced}}\),但只从中提取第 \(i\)\(g_{\text{achieved}, i}\) 来进行匹配。
    • 效果: 奖励信号变得更精确、更直接。策略 \(\pi_{\text{skill}, i}\) 只需要学习如何精确地诱导它自己负责的那个因素 \(i\) 的变化,而不用担心其他 \(N-1\) 个因素的变化是否符合目标。

3.2 阶段二:有监督任务学习

  • \(\pi_{skill}\)冻结
  • 训练一个新的高级任务策略 \(\pi_{task}\),它以 \(Z\) 作为动作空间,选择最佳的 skill 序列,来最大化外部任务奖励。

四、实验验证与性能指标

4.1 实验环境与任务

SkiLD 在两个具有挑战性的多因素环境中进行评估:

  • Mini-behavior (Mini-BH): 网格世界,具有高度序列依赖性(如“清洗汽车”、“解冻”等任务)。
  • Interactive Gibson (iGibson): 逼真的家庭模拟环境,动作空间连续且复杂(如“抓取”、“清洗”、“切割桃子”)。
  • 总计: 10 个下游任务,用于验证技能的实用性。

4.2 baseline

与 SkiLD 对比的基线包括:纯多样性方法(DIAYN、CSD)、基于因果关系的方法(ELDEN、COInS)和传统 RL 方法(Vanilla RL/PPO)。

4.3 评价指标(metric)

  • 交互图多样性: 衡量智能体成功达成复杂局部依赖图 \(G\) 的百分比,验证其是否学会了复杂的交互行为。
  • 下游任务性能: 成功率和样本效率,验证学到的技能是否能更有效地解决实际任务。

4.4 核心实验结果

  • 交互图多样性: SkiLD 成功达成了复杂的交互图(例如 car, rag -> car),而基线方法大多只能学习到简单的单因素操作。
  • 下游任务性能: SkiLD 在 10 个任务中的 9 个上表现出更快的收敛速度和更高的成功率。在最困难的两个任务(“清洗脏抹布”和“切割桃子”)上,SkiLD 是唯一能取得非零成功率的方法。
  • 消融实验: 移除依赖图 \(G\) 导致性能完全崩溃,证明了 \(G\) 是 SkiLD 成功的关键。移除多样性 \(B\) 也会导致性能显著下降,证明了 \(B\) 对技能泛化性的重要性。

Disentangled Unsupervised Skill Discovery for Efficient Hierarchical Reinforcement Learning (DUDSi)

主要内容:

一、背景与核心问题:skill 效果的“相互纠缠”

1.1 任务背景:unsupervised skill discovery(USD)与 hierarchical RL(HRL)

  • USD 的目标: 在没有外部奖励的情况下,通过自由探索,自动学习一套可重用、多样化的基本动作或“技能库”。随后,利用这个技能库通过 HRL 高效地解决新的、有奖励的复杂任务。
  • 环境设定(f-MDP): DUSDi 关注的环境是因子话马尔可夫决策过程 (factored MDP,f-MDP)。即,环境状态 \(S\) 可以自然地分解为 \(N\) 个独立因子 \(S_1, S_2, \dots, S_N\)
    • 例子: 复杂的机器人环境,状态因素可能包括机器人的位置视野内的物体电器的开关状态等,这些因素可以被分解。

1.2 核心痛点:技能纠缠 (Entangled Skills)

  • 传统做法(如 DIAYN): 通过最大化技能变量 \(Z\) 与整个状态 \(S\) 的互信息 \(I(S; Z)\) 来学习技能。
  • 问题: 这种方法学到的技能是纠缠的。改变一个技能变量 \(Z\),会导致环境中多个独立因素同时发生变化。
    • 直观例子: 想象一个驾驶任务。一个技能 \(Z\) 既控制汽车的速度,又控制转向。如果下游任务要求“保持速度不变,但只改变转向”,高层策略必须找到一个单一的 \(Z\) 恰好能实现这个精确的组合,这在复杂的 \(N\) 维空间中搜索效率极低。

1.3 DUSDi 的动机:对环境中的各个因素,实现独立、并发的控制

  • 目标: 像人类一样,能够并发且独立地控制环境的各个因素。
  • 策略: 利用环境状态的分解特性(即 \(S\) 可分解为 \(S_1, \dots, S_N\)),将技能 \(Z\) 也分解为 \(N\) 个组件 \(Z = (Z_1, \dots, Z_N)\)
  • 核心要求: 强制要求每个技能组件 \(Z_i\) 只影响其对应的状态因素 \(S_i\),同时抑制其对其他因素 \(S_{\neg i}\) 的影响,从而实现技能的解耦

二、DUSDi 方法详解:解耦与优化

DUSDi 的方法分为两个阶段,核心在于第一阶段的内在奖励设计优化技巧

2.1 技能结构与维度

  • 技能分解: 总技能变量 \(Z\) 被分解为 \(N\) 个独立的组件 \(Z = (Z_1, Z_2, \dots, Z_N)\)
  • 维度: 如果传统方法需要 \(K\) 个技能,DUSDi 将这 \(K\) 个技能结构化\(N\) 个组件,每个组件有 \(k\) 个取值,总技能数 \(K=k^N\)。也就是把 N 个 k dim 的 one-hot skill concat 起来。

2.2 核心机制:解耦的内在奖励

DUSDi 设计了一个基于互信息(MI)的内在奖励目标函数 \(J(\theta)\),以实现技能的解耦:

\[J(\theta) = \sum_{i=1}^{N} [I(S_i; Z_i) - \lambda I(S_{\neg i}; Z_i)] \]

  • 关联项 \(I(S_i; Z_i)\) 鼓励技能组件 \(Z_i\) 与其对应的状态因素 \(S_i\) 具有高互信息。这确保了 \(Z_i\) 能够控制 \(S_i\)
  • 惩罚项 \(I(S_{\neg i}; Z_i)\) 惩罚 \(Z_i\)所有其他因素 \(S_{\neg i}\) 之间的互信息。这确保了 \(Z_i\) 不会影响其他因素,实现解耦。
  • 变分近似: 互信息 \(I\) 通过 \(2N\) 个可学习的判别器(\(N\) 个关联判别器 \(q_\phi\)\(N\) 个惩罚判别器 \(q_\psi\))进行变分下界近似,从而转化为可优化的内在奖励 \(r_z\)。这一步应该跟 DIAYN 是一样的。
  • 耦合处理(\(\lambda\) 的作用): 论文设置 \(\lambda < 1\)(实验中 \(\lambda=0.1\))。这承认了状态因素间可能存在弱耦合,例如,控制速度也可能轻微影响转向。\(\lambda < 1\) 确保了关联项始终占主导地位,优先保证 \(Z_i\)\(S_i\) 的主导控制,同时最小化次要影响,而不是要求绝对的零耦合。

2.3 优化技巧:Q 值分解 (Q-Decomposition)

  • 问题: 当环境因素 \(N\) 很大时(例如 \(N=20\)),总的内在奖励 \(r_z\)\(2N\) 个项的加和,导致 Q 函数训练的方差过高,收敛缓慢。
    • 直观例子: 奖励信号是 40 个独立噪声源的叠加,单一 Q 网络很难稳定拟合。
  • 解决方案: 利用奖励的线性可加性,将总 Q 函数 \(Q_{total}\) 分解为 \(N\) 个独立的 Q 函数之和:\(Q_{total}(s, a, z) = \sum_{i=1}^{N} Q_i(s, a, z)\)
  • 如何实现: 训练 \(N\) 个独立的 Q 网络 \(Q_1, \dots, Q_N\)。每个 \(Q_i\) 使用其对应的分解奖励 \(r_i\) 进行更新。
  • 优势: 显著降低了每个 Q 网络的奖励方差,提高了在多因素复杂环境下的技能学习稳定性和效率。

2.4 算法流程(两阶段)

  1. 技能学习(阶段一,无监督): 使用 SAC 算法,以 \(r_z\) 为奖励,训练低层策略 \(\pi_\theta\) 和分解的 Q 网络 \(Q = \sum Q_i\)
  2. 任务学习(阶段二,有监督): 冻结 \(\pi_\theta\)。训练一个高级策略 \(\pi_{high}(z|s)\) 来选择组合技能 \(z\),以最大化外部任务奖励。

三、实验验证与性能优势

3.1 评价指标

  • 技能解耦性: 使用 DCI 指标(Disentanglement 解耦性、Completeness 完整性、Informativeness 信息量)来量化 \(Z\)\(S\) 之间的对应关系。高分(接近 1)表明技能是真正解耦的。
  • 任务性能: 在 HRL 阶段,高层策略学习到的累积奖励 (Return)

3.2 核心实验环境

实验主要在需要并发控制的复杂环境中进行:

  • Multi-Particle (MP): 10 个 Agent 与 10 个 Station 交互,状态因素 \(N=20\),agent 貌似可以同时与多个 station 交互。
  • iGibson (IG): 3D 模拟机器人环境,需要并发控制导航、电器交互、视野等多个因素。

论文明确指出,DUSDi 的优势体现在需要并发控制多个独立因素的复杂任务中。

  • DUSDi 适用的环境: Multi-Particle(控制 10 个智能体/因素)、iGibson(控制导航、电器、头部检查等多个因素)。
  • DUSDi 不适用的环境: DMC-Walker(任务主要是移动质心,不需要并发控制多个独立因素)。
  • 实验结果: DUSDi 在 Multi-Particle 和 iGibson 上显著优于所有基线,而在 DMC-Walker 上性能相似(Sec. 4.4)。

3.3 关键实验结果

A. 技能解耦性验证

DUSDi 在 DCI 指标的解耦性完整性上,均显著优于基线方法 DIAYN-MC。这证明了 DUSDi 成功学习到了 \(Z_i\)\(S_i\) 之间清晰的一对一映射。

B. Q 值分解的必要性

在 Multi-Particle 和 iGibson 等 \(N\) 值大、动力学复杂的环境中,使用 Q 值分解的 DUSDi 模型的判别器准确率更高,训练收敛更快、更稳定。

C. 下游任务性能(核心优势)

  • 在需要并发控制多因素的复杂任务(如 MP 的序列交互、iGibson 的家政服务)中,DUSDi 显著优于所有现有无监督 RL 基线方法(包括 DIAYN, CSD, METRA 等),表现为收敛更快,并达到更高的最终回报
  • 性能提升的机制: 解耦技能将高层策略的探索空间从传统方法的指数级 \(O(k^N)\) 降维到 DUSDi 的多项式级 \(O(N \cdot k)\) 或更低。这使得高层策略能够以更高的样本效率学习如何组合技能来完成任务。

四、总结与适用性

DUSDi 通过利用环境的状态分解特性,设计了解耦的技能结构和内在奖励目标,并结合 Q 值分解的优化技巧,成功解决了传统 USD 方法中技能纠缠的问题。DUSDi 为 HRL 提供了一个更高效、更具结构化的技能库。

DUSDi 的适用边界:

  • DUSDi 的优势主要体现在下游任务需要并发、独立控制多个状态因素的场景中(例如,机器人同时进行导航、操作和观察)。
  • 如果任务本身是高度耦合的(例如,单一目标任务),DUSDi 的性能提升则不明显。


posted @ 2025-09-02 14:16  MoonOut  阅读(65)  评论(0)    收藏  举报