論文速讀記錄 | 2025.09
SkiLD: Unsupervised Skill Discovery Guided by Factor Interactions
- arxiv:https://arxiv.org/abs/2410.18416
- open review:https://openreview.net/forum?id=i816TeqgVh
- website:https://wangzizhao.github.io/SkiLD/
- 來源:同學的 claude 推薦的文章。neurips 2024,8 6 5 5 poster,5 是 borderline ac。
- (發現這篇文章不是韓國人的)
主要內容:
一、背景與動機:傳統 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 中所指出的:“經驗上,我們發現沒有這個改變,低級策略很難學會任何東西,甚至是對智能體的簡單控制?!?/p>
- 策略結構的變化:從一個策略到 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}\) 的輸入和輸出與之前略有不同。
- 高層策略 \(\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\) 是可實現的。
- 低級策略 \(\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}\) 的獲?。?/strong> 算法仍然會計算完整的 \(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)
- arxiv:https://arxiv.org/abs/2410.11251
- open review:https://openreview.net/forum?id=ePOBcWfNFC
- website:https://jiahenghu.github.io/DUSDi-site/
- 來源:同學的 claude 推薦的文章,neurips 2024。7 5 5 4 poster。
- 這篇文章也不是韓國人的;感覺這篇文章跟 上一篇 的 setting 有點像,但這一篇明顯做的更簡單,不像上一篇,感覺很復雜。發現這一篇跟上一篇的作者互為 1 2 作()以及感覺 iGibson 這個 benchmark 非常難,是一個復雜的機器人 manipulation benchmark,有點好奇他們是怎么 online 訓出來的。
主要內容:
一、背景與核心問題: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)\),以實現技能的解耦:
- 關聯項 \(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 算法流程(兩階段)
- 技能學習(階段一,無監督): 使用 SAC 算法,以 \(r_z\) 為獎勵,訓練低層策略 \(\pi_\theta\) 和分解的 Q 網絡 \(Q = \sum Q_i\)。
- 任務學習(階段二,有監督): 凍結 \(\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 的性能提升則不明顯。

浙公網安備 33010602011771號