Skip to content

CS224R L13:Meta-RL——讓 agent 學會怎麼快速學新任務

2026年9月30日1 分鐘
TL;DRMeta-RL 在很多任務上訓練,目標是遇到新任務時只靠少量經驗就能解決。CS224R 第 13 講把它寫成「先探索收一點資料,再用這些資料適應」,最直接的做法是 black-box meta-RL(RL²):一個有記憶的網路把過去的 (s, a, r) 當輸入,隱藏狀態跨 episode 保留。它通用、表達力強,但難最佳化,尤其探索很難時:探索和執行互相依賴,端到端訓練容易卡住。投影片接著比較 PEARL 的 posterior sampling、MetaCURE 的預測式探索,以及 DREAM 用任務表示把探索和執行拆開訓練。

🌏 English version

本文依據 CS224R Spring 2026 版。 這是 Stanford CS224R 導讀系列第 17 篇,接續 L12 多任務與 Goal-Conditioned RL,對應 2026 年 5 月 13 日的第 13 講「Meta-RL」。兩天後(5 月 15 日)是課堂期中考。

用到的官方材料:

存取等級是 A3:投影片匿名可下載,2026 錄影只放在 Canvas 上。

配套影片(補充教材):

2026 拿掉了 2025 的 L14 Exploration,14 號改成考試日。比對兩年投影片:2025 L14 投影片前半講 bandit 探索演算法、機器人與 LLM 的探索,後半講「用 meta-learning 學探索」,DREAM 和 CS 教育的應用都在那裡。2026 把後半併進本講,前半的 bandit 探索則沒有出現在 2026 投影片裡。想看 DREAM 那段的口頭講解,要找的是 2025 L14 錄影。

場景:換一台咖啡機

第 7 頁的例子:你想讓機器人學會用一台新的濃縮咖啡機。用 PPO 從頭訓練要試幾百萬次;有人稍微指點、或本來就會煮咖啡的人,幾分鐘就學會了。人不是從零開始的:用過別台咖啡機,或只是有一般的動作控制經驗,都會幫上忙。解數學題也一樣,過去的解題經驗讓新題目解得更快。

第 8 頁把「拿以前任務的經驗學新任務」分成三種框架(投影片註明改編自 Sergey Levine):

框架做法前提
Forward transfer在來源任務上訓練,再到目標任務上微調來源和目標任務要相似
Multi-task transfer在很多任務上訓練,遷移到新任務;任務描述 z_i 要能捕捉任務結構才能 zero-shot目標任務要跟訓練任務分佈相似
Meta-learning在很多任務上「學會怎麼學」;訓練時就把「之後要適應新任務」考慮進去,任務描述是 in-context 給的幾筆資料同上

這一講的兩個學習目標:理解 meta-RL 的問題設定;理解 black-box meta-RL 演算法的基礎與挑戰。

直覺:跟 in-context learning 是同一件事

第 9–10 頁先離開 RL。給你幾幅 Braque 和 Cézanne 的畫,再問一幅新畫是誰畫的,這是 few-shot 影像分類。LLM 的 in-context learning 也是同一個形式:訓練一個模型 ŷ = f(x, D_train),用少量範例做預測。

第 11–12 頁換成 RL 的迷宮導航(圖改編自 Duan et al. 2017):

  • Meta-test 時:到一個新迷宮,先用探索 policy π^exp 收一點經驗 D_tr,再用 D_tr 得到能解這個迷宮的 policy π^task
  • Meta-train 時:在很多迷宮上學怎麼有效探索、怎麼解題,也就是同時學 π^exp 和 π^task

投影片標了兩個重點:探索與利用的取捨是 meta-RL 獨有的部分;關鍵假設是 meta-test 的 MDP 和 meta-train 來自同一個任務分佈,所以才能期待泛化。

第 13 頁的任務分佈例子:不同迷宮、不同地形和坡度的步行、不同物體和目標的操作、跟偏好不同的使用者對話。

機制一:問題設定

第 14 頁把三種問題並排:

  • Multi-task learning:一次解多個任務,最小化 Σ L_i(θ, D_i)
  • Transfer learning:解完來源任務 a 之後,用學到的知識解目標任務 b
  • Meta-learning:給定任務 T_1…T_n 的資料,快速解新任務 T_test

一個 RL 任務的定義跟上一講相同:T_i ≜ {S_i, A_i, p_i(s_1), p_i(s'|s, a), r_i(s, a)}。

第 15 頁分兩種變體:

  • Episodic:輸入是探索 policy 跑出的 k 條 rollout,輸出是 π^task(· | s, D_train)
  • Online:輸入是探索 policy 跑的前 1…k 個時間步,輸出同樣是 π^task(· | s, D_train)

投影片註明,D_train 可以看成任務識別碼 z_i;π^exp 和 π^task 可以共用參數。

機制二:Black-box meta-RL

把 reward 當輸入的記憶網路

第 17 頁的架構:一個有記憶的黑箱網路(transformer 或帶記憶的神經網路),每一步輸入 (s_t, r_{t−1})、輸出 a_t。D_train 就是這串不斷變長的歷史。

投影片問:**這跟普通的 recurrent policy 做 RL 有什麼不同?**答案有三點:

  • reward 被當成輸入
  • 在多個 MDP 上訓練
  • 隱藏狀態在同一任務的多個 episode 之間保留

演算法

第 18–19 頁:

Meta-training

  1. 抽一個任務 T_i
  2. 在 T_i 的 dynamics 和 reward 下,用 π(a | s, D_i^tr) 跑 N 個 episode
  3. 把整串序列存進 T_i 的 replay buffer
  4. 更新 policy,最大化所有任務的折扣回報

Meta-test

  1. 抽一個新任務 T_j
  2. 用 π(a | s, D_j^tr) 跑最多 N 個 episode

注意 meta-test 沒有梯度更新,適應完全發生在隱藏狀態裡。

第 20 頁的三種架構與最佳化器
論文架構外層最佳化器
RL²(Duan et al. 2017)、Learning to Reinforcement Learn(Wang et al., CogSci 2017)RNNTRPO/A3C(投影片註:類似 PPO)
SNAIL(Mishra et al., ICLR 2018)Attention + 1D 卷積TRPO
PEARL(Rakelly et al., ICML 2019)Feedforward + 平均SAC(off-policy、有 replay buffer)

三個例子

  • 例 1(第 21–22 頁,SNAIL):用視覺導航迷宮,在 1000 個小迷宮上訓練,測試在沒見過的小迷宮和大迷宮上
  • 例 2(第 23 頁,Qu et al., Optimizing Test-Time Compute via Meta Reinforcement Fine-Tuning):任務是解不同的數學題,先探索不同解法、再依最好的策略作答;關鍵想法是能不能最佳化 test-time compute。投影片上的結果寫「同樣 token 數下表現更好」「同樣準確率少用 1.6 倍 token」。投影片把這篇標成 ICML 2019,但 arXiv 版本是 2025 年 3 月才發表,年份以 arXiv 為準
  • 例 3(第 27 頁,PEARL):連續控制,任務差在方向、速度或物理 dynamics。投影片說 meta-RL 演算法在新任務上非常有效率,**但 meta-training 本身的效率呢?**並問 off-policy meta-RL 會比 on-policy 更有效率還是更沒效率

換個角度:它其實是 POMDP

第 24 頁把 meta-RL 跟多任務 policy 連起來:多任務 policy 是 π_θ(a | s, z_i),meta-RL 就是用經驗當任務識別碼的多任務 policy。那 goal-conditioned policy 呢?投影片的回答是 reward 嚴格比目標更一般;而且 meta-RL 的目標是適應新任務(k-shot),goal-conditioned 是泛化到新目標(0-shot)。

第 25–26 頁:z_i 不在狀態裡時,agent 不確定自己在哪個 MDP,必須從經驗推論 z_i。所以 meta-RL 可以看成先探索、推論出未知的任務,再執行任務,是一種特殊的部分可觀測 MDP(POMDP)。

第 28 頁的小結,black-box meta-RL:

  • 通用、表達力強
  • 架構有很多設計選擇
  • 難最佳化
  • 樣本效率繼承自外層的 RL 最佳化器

怎麼做:拿任何一個 recurrent policy 的 RL 程式碼,列出要改成 RL² 的三個地方:把上一步 reward 串進輸入、episode 結束時不要重設隱藏狀態、每個「trial」換一個任務。三處都改完,它就從普通 RL 變成 meta-RL。

機制三:探索與執行要不要拆開

端到端為什麼難

第 30 頁是第一種解法:對任務 reward 端到端地一起最佳化探索和利用(RL² 等一系列方法)。好處是簡單,原則上能得到最佳的探索與利用取捨;壞處是探索很難時,最佳化會很困難。

第 31–32 頁用走廊例子說明。有 N 條走廊,不同任務要走到不同走廊的盡頭,旁邊有一塊寫著該去哪裡的指示牌:

meta-training 時的 episode訓練訊號
直接走到正確走廊的盡頭當下任務拿到正向 reward,但 D_tr 跟其他任務沒有差別
先走錯、再走對給出一個次佳的探索加利用策略的訊號
去看指示牌很好的探索行為,但這個行為本身拿不到任何 reward

投影片的結論:要同時學會探索和利用很難。

第 33–34 頁換成廚房的例子:在以前的廚房學過烹飪,目標是在新廚房快速上手。端到端的做法有雞生蛋問題:找不到食材(探索差)就學不會煮(執行差);不會煮,不管怎麼探索都拿到低 reward。投影片稱這是耦合問題,會導致很差的局部最佳解和低樣本效率。這頁引用的就是 DREAM 論文。

三種替代方案

第 36–39 頁:

方法做法優點缺點
2a. Posterior sampling(PEARL,也叫 Thompson sampling)學潛在任務變數的分佈 p(z)、q(z | D_tr) 和對應的 π(a | s, z);從目前的後驗抽 z 再照 π 行動好最佳化,多數基於有原則的策略投影片的反例:目標很遠、牆上有指示牌告訴你正確目標時,後驗抽樣不會去看牌子
2b. 預測 dynamics 和 reward(MetaCURE,Zhang et al. 2020)訓練模型 f(s', r | s, a, D_train),收集能讓模型變準的 D_train同上干擾因素很多,或狀態 dynamics 複雜、高維時會出問題
2c. 預測壓縮過的任務表示(DREAM)訓練 f(z_comp | D_train),收集能讓任務預測變準的 D_train原則上能得到最佳策略,實務上也好最佳化訓練時需要任務識別碼

投影片對 2a、2b 下的總評是:在某些環境裡,它們可以差到任意大的程度。

DREAM 具體怎麼訓練(依 2025 HW4 Part 2 題目 PDF)

2026 投影片只寫到上表那一格。2025 HW4 的題目 PDF 把它寫得更具體,以下依 PDF 摘要:

  • 每個 meta-training 任務都有一個唯一的 problem ID μ;meta-test 時不假設能拿到它
  • 學執行:用 encoder F_ψ(z | μ) 把 μ 轉成任務表示 z,執行 policy π^task(a | s, z) 以 z 為條件最大化回報。encoder 的訓練方式讓 z 只含「解題所需」的資訊
  • 學探索:探索 policy π^exp 的目標是讓探索軌跡 τ^exp 和 z 的 mutual information 最大,用一個 decoder q_ω(z | τ^exp) 的變分下界來最佳化
  • 把下界拆成逐步的差,就得到探索 policy 的 intrinsic reward:每一步多看到的 (a_t, r_t, s_{t+1}) 讓 log q_ω(z | τ) 增加多少,也就是這一步帶來多少關於 z 的「資訊增益」
  • meta-test 時,decoder 把探索軌跡轉成 z,交給執行 policy

應用:用 meta-RL 批改學生作業

第 40–43 頁是「時間夠的話」的段落:批改互動式的學生程式(Code.org 的 Bounce、CS106A 的 Breakout)很花助教時間,可以用 meta-RL 學「怎麼探索一個程式才能找到 bug」。投影片寫,在 CS106A(Spring 2023)用於輔助批改,速度快 44%、準確度高 6%,Stanford 的助教喜歡用;autograder 會預先填好評分表並附上影片。引用的是 Liu et al. NeurIPS 2022 和 SIGCSE 2024 兩篇。

連回來:從多任務到 meta-RL

把這三講串起來看:

  • L11 學環境的模型
  • L12 告訴 policy 任務是什麼(z_i),並跨任務共享權重和資料
  • L13 連任務是什麼都不告訴 policy,讓它自己從經驗推論

投影片第 45 頁說,下一講(下週三)是階層式方法。見 L15 階層式 RL 與 IL。

延伸練習:Spring 2025 HW4 Part 2(封存)

依題目 PDF,Part 2 要:

  1. 跑一個端到端訓練的 black-box meta-RL 方法(RL²)
  2. 實作 DREAM 的部分元件,取代端到端的最佳化目標
  3. 比較端到端和解耦兩種最佳化

環境是有公車的 grid world:agent 每個 episode 拿到一個目標,要盡快走到;可以搭公車瞬移到同色的另一台公車。不同任務只差在角落公車的排列,共 4! = 24 種任務;地圖固定在一個位置,走上去就會知道每台公車開往哪裡。設定是一個探索 episode 加一個執行 episode,只算執行 episode 的回報。

題目結構:

  • Problem 0:紙筆題,分析直接走路的回報、已知公車目的地時的最佳回報、最省步數的探索策略,以及 meta-RL agent 能達到的最佳回報
  • Problem 1:跑 RL²(PDF 估計 2–3 小時),看 tensorboard 和影片,描述它學到的探索與執行行為、是否達到最佳
  • Problem 2:在 encoder_decoder.py 實作 decoder 的 loss 和探索的 intrinsic reward,跑 DREAM,跟 RL² 比較

自學者要注意的地方:跟 Part 1 一樣,PDF 規定在課程的 AWS EC2 環境上跑、不支援其他平台,並禁止用生成式模型協助寫程式;starter code 仍可匿名下載,但要自己設定環境,也沒有 autograder。

延伸閱讀

這一篇可以確認與不能確認的

可以確認:2026 投影片的文字、表格和引用,課表日期與指定閱讀,2025 L13/L14 投影片的內容切分,2025 HW4 題目 PDF 的內容,兩支 2025 影片的標題與長度。不能確認:第 17、27 頁提問在課堂上的答案,例 2 的完整實驗設定(投影片只有兩行結果),以及 2026 是否在課堂上口頭補講 bandit 探索。

系列導覽:上一篇 L12 多任務與 Goal-Conditioned RL|下一篇 L15 階層式 RL 與 IL|系列入口

參考資料