本文依據 CS224R Spring 2026 版。 這是 Stanford CS224R 導讀系列第 17 篇,接續 L12 多任務與 Goal-Conditioned RL,對應 2026 年 5 月 13 日的第 13 講「Meta-RL」。兩天後(5 月 15 日)是課堂期中考。
用到的官方材料:
- 當期投影片 13_cs224r_metarl_2026.pdf(45 頁)
- 課表上的指定閱讀:RL²: Fast Reinforcement Learning via Slow Reinforcement Learning(Duan et al. 2016);課表在 5 月 15 日考試那一列另外列了 Decoupling Exploration and Exploitation for Meta-Reinforcement Learning without Sacrifices(Liu et al. 2021,即 DREAM)
- 延伸練習:Spring 2025 HW4 的 Part 2(2025 封存)
存取等級是 A3:投影片匿名可下載,2026 錄影只放在 Canvas 上。
配套影片(補充教材):
- Spring 2025 Lecture 13: Meta RL(約 69 分鐘),對應本講前半的問題設定和 black-box 方法
- 選看:Spring 2025 Lecture 14: Exploration(約 73 分鐘)
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
- 抽一個任務 T_i
- 在 T_i 的 dynamics 和 reward 下,用 π(a | s, D_i^tr) 跑 N 個 episode
- 把整串序列存進 T_i 的 replay buffer
- 更新 policy,最大化所有任務的折扣回報
Meta-test
- 抽一個新任務 T_j
- 用 π(a | s, D_j^tr) 跑最多 N 個 episode
注意 meta-test 沒有梯度更新,適應完全發生在隱藏狀態裡。
第 20 頁的三種架構與最佳化器
| 論文 | 架構 | 外層最佳化器 |
|---|---|---|
| RL²(Duan et al. 2017)、Learning to Reinforcement Learn(Wang et al., CogSci 2017) | RNN | TRPO/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 要:
- 跑一個端到端訓練的 black-box meta-RL 方法(RL²)
- 實作 DREAM 的部分元件,取代端到端的最佳化目標
- 比較端到端和解耦兩種最佳化
環境是有公車的 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。
延伸閱讀
- Berkeley CS285 Spring 2026:更難的探索與跨任務重用,另一門課怎麼講探索與 meta-learning
- CS224R L10:LLM Reasoning 的 RL,跟本講例 2 的 test-time compute 是同一個話題
這一篇可以確認與不能確認的
可以確認:2026 投影片的文字、表格和引用,課表日期與指定閱讀,2025 L13/L14 投影片的內容切分,2025 HW4 題目 PDF 的內容,兩支 2025 影片的標題與長度。不能確認:第 17、27 頁提問在課堂上的答案,例 2 的完整實驗設定(投影片只有兩行結果),以及 2026 是否在課堂上口頭補講 bandit 探索。
系列導覽:上一篇 L12 多任務與 Goal-Conditioned RL|下一篇 L15 階層式 RL 與 IL|系列入口
參考資料
- CS224R: Deep Reinforcement Learning(Spring 2026 課程官網與課表)
- Lecture 13 投影片:Meta Reinforcement Learning(2026)
- Spring 2025 Lecture 13: Meta RL(YouTube,補充)
- Spring 2025 Lecture 14: Exploration(YouTube,選看)
- Spring 2025 Lecture 14 投影片:Exploration(封存)
- CS224R Spring 2025 Homework 4 題目(封存)
- CS224R Spring 2025 HW4 starter code(封存)
- Duan et al. RL²: Fast Reinforcement Learning via Slow Reinforcement Learning(arXiv 1611.02779)
- Liu, Raghunathan, Liang, Finn. Decoupling Exploration and Exploitation for Meta-Reinforcement Learning without Sacrifices(arXiv 2008.02790,ICML 2021)
- Rakelly, Zhou, Quillen, Finn, Levine. Efficient Off-Policy Meta-Reinforcement Learning via Probabilistic Context Variables(arXiv 1903.08254,ICML 2019)
- Mishra, Rohaninejad, Chen, Abbeel. A Simple Neural Attentive Meta-Learner(arXiv 1707.03141)
- Wang et al. Learning to Reinforcement Learn(arXiv 1611.05763)
- Qu et al. Optimizing Test-Time Compute via Meta Reinforcement Fine-Tuning(arXiv 2503.07572)
Loading...