來源年份:依據 Spring 2026 的 07_cs224r_offline_rl_2026 投影片(課表日期 2026-04-22)。配套影片是 Spring 2025 L7 錄影(補充),標題相同,但切分不同:2025 的 L7 投影片把「implicit policy constraint」和「conservative methods」(CQL)並列為兩類方法,課表也把 CQL 列為指定閱讀;2026 版的第二類改成 IQL 的 expectile 做法,指定閱讀只剩 IQL。看影片時遇到 CQL 的段落,是 2026 投影片沒有的內容。本文是 Stanford CS224R 導讀系列的第 9 篇。
前面幾講(L3 policy gradients 到 L6 Q-learning)都有一個共同假設:policy 可以一邊學、一邊到環境裡收新資料。CS224R 的第七講拿掉這個假設。現在你只有一批固定的資料,不能再互動,要怎麼學?
投影片把當天的學習目標寫成三條:
- offline RL 的關鍵挑戰是什麼
- 兩類 offline RL 核心技巧,以及它們為什麼有效
- offline RL 怎麼做到比模仿學習更好
這講也是 HW3 的理論基礎,投影片在 AWAC 和 IQL 兩頁都直接寫「你會在 HW3 實作它」。
先回顧:線上 RL 的四種 model-free 演算法
投影片開頭用一張表收束前半學期:
| Vanilla PG | PPO 類 | Off-policy actor-critic(如 SAC) | Q-learning | |
|---|---|---|---|---|
| 用什麼資料 | on-policy | 技術上是 off-policy,通常稱 on-policy | off-policy,有 replay buffer | off-policy,有 replay buffer |
| 怎麼變成 off-policy | 不適用 | importance weights | 用 TD 擬合 Q,從 π 取樣 a | 用 TD 擬合 Q* |
| 擬合哪個 value | 不擬合 | V^π | Q^π | Q* |
最右邊兩欄已經能用舊資料了。那 offline RL 還有什麼難的?這講後半就是在回答這個問題。
為什麼需要 offline RL
線上 RL 的流程是「收資料 → 用最新或全部資料更新 policy → 再收資料」。Offline RL 只有前半:給一份靜態資料集,在上面訓練 policy,結束。
投影片列三個適用情境:
- 想利用別人或既有系統已經收好的資料
- 線上收資料有風險、不安全
- 重複使用以前收過的資料,不要每次重收(例如之前的實驗、專案、機器人或其他機構的資料)
投影片也提醒兩種混合做法:先 offline 預訓練再 online 微調,以及反覆做 offline 訓練的「batch online RL」。
形式上,資料來自某個未知的 behavior policy πβ(可能是多個 policy 的混合),目標卻是在學到的 policy πθ 下最大化期望獎勵。兩個分佈不一樣,這就是 distribution shift。資料來源的例子有:人類收集、手工設計的控制器、之前的 RL 訓練,或以上混合。
Stitching:offline RL 跟模仿學習差在哪
投影片用一張九個狀態的圖說明。資料裡有兩條不完整的好行為:s1 → s3 是好的,s7 → s9 也是好的,走到 s9 得 +1,走到 s6 得 −1。問題是:能不能學出一個從 s1 一路走到 s9 的 policy?
投影片丟出兩個問題:
- 用一般模仿學習學到的 policy 會做什麼?
- 用 RL 學到的 policy 應該做到什麼?答案跟 value function 用 TD 還是 Monte Carlo 學有沒有關係?
投影片給的結論是三句話:
- 模仿學習的表現沒辦法超過收集資料的 policy
- offline RL 可以利用獎勵資訊,超過 behavior policy
- 好的 offline RL 方法能把好的行為**拼接(stitch)**起來
第二題投影片沒有直接寫答案。我的理解是:TD 用下一個狀態的估計值當目標,只要兩條軌跡經過同一個狀態,後段軌跡的高價值就能往回傳到前段;Monte Carlo 只加總同一條軌跡實際拿到的獎勵,傳不過去。後面 AWR 那頁寫「Monte Carlo 估計雜訊大」,IQL 則改用 TD,可以對照著讀。
為什麼不能直接拿 off-policy 演算法來用
SAC 這類 off-policy actor-critic 本來就能用 replay buffer 裡的舊資料。把 buffer 換成一份固定資料集,會發生什麼事?
關鍵在 critic 的目標值 r + γ·E_{a′~πθ}[Q(s′, a′)]。這裡的 a′ 是從正在學的 policy 取樣,很可能是資料裡從沒出現過的動作(out-of-distribution,OOD)。投影片畫了一條隨機初始化的 Q(s′, a′) 曲線,只有資料支撐範圍內被訓練過,範圍外的值是隨便的。接著就會連鎖出錯:
- Q-function 在 OOD 動作上不可靠
- policy 會去找 Q-function 過度樂觀的動作
- policy 更新之後,Q 值被嚴重高估
投影片也給了另一個角度:學到的 policy 偏離 behavior policy 太遠。下一講開頭的複習補上一句關鍵差別:線上 RL 裡,新 policy 收來的資料會在之後修正這些錯誤;offline RL 沒有新資料,所以要更保守。
投影片說得很直接:怎麼減少高估,就是 offline RL 方法的核心目標。
第一類技巧:只在資料裡的動作上訓練 policy
Filtered behavior cloning
有獎勵標註的話,最簡單的做法是只模仿好的軌跡:
- 依 return 排序所有軌跡
- 只留前 k%
- 對留下的資料做 behavior cloning,最大化 log πθ(a | s)
投影片評它「非常原始」,所以正好拿來當比較的 baseline。HW3 的 PointMass 題也用它當對照組。
Advantage-weighted regression(AWR)
比「留或不留」更細的做法,是依每個動作有多好來加權。衡量動作好壞的工具是 L4 講過的 advantage:
θ ← argmax_θ E_{(s,a)~D} [ log πθ(a | s) · exp(A(s, a)) ]
這仍然是模仿學習,只是每筆資料乘上一個權重。投影片附了一個旁註:可以證明這個加權目標近似於「在 KL(π‖πβ) < ε 的限制下最大化 Q」,出處是 Peters 等人的 REPS 和 Rawlik 等人的 psi-learning。換句話說,只在資料的動作上做加權模仿,等於隱含地把 policy 綁在 πβ 附近。
接下來的問題是 advantage 怎麼估。AWR(Peng 等人 2019)的做法最簡單:用 Monte Carlo 擬合 V^πβ,advantage 就是實際 return 減掉 V。完整演算法兩步:擬合 value function,再用 exp(advantage / α) 加權模仿,α 是超參數。
投影片列的優缺點:
| 優點 | 缺點 |
|---|---|
| 簡單 | Monte Carlo 估計雜訊大 |
| 完全不查詢、也不在 OOD 動作上訓練 | 估的是 πβ 的 advantage,比 πθ 弱 |
投影片還留了一題:如果 πβ 是確定性的,你會學到什麼?值得停下來想。
AWAC:改用 TD 估 advantage
要估目前 policy πθ 的 advantage,可以改用 TD 擬合 Q^πθ,advantage 是 Q(s, a) − E_{ā~πθ}[Q(s, ā)],再用它做 AWR 式的更新。投影片把這叫做「advantage-weighted actor-critic」,也就是 AWAC。
| 優點 | 缺點 |
|---|---|
| 得到的是目前 policy πθ 的 Q,不是 πβ 的 | TD 目標要查詢 OOD 動作的 Q 值 |
| policy 仍然只在資料的動作上訓練 |
投影片在這裡也提到一個替代寫法:TD 目標裡的 a′ 改從資料取樣(a′ ~ D)。於是逼出這講的關鍵問題:能不能估計比 πβ 更好的 policy 的 advantage,同時完全不查詢 OOD 動作?
第二類技巧:不查詢 OOD 動作,也能估更好的價值
想法:不對稱的損失
如果 TD 目標裡的 a′ 從資料取樣,得到的是 Q^πβ,也就是 behavior policy 的價值。投影片畫了一張 V(s) 的直方圖:同一個狀態下,資料裡不同動作的 Q 值有高有低。一般的 L2 損失會學到平均值 E_{a~πβ}[Q(s, a)];我們想要的是「資料支撐範圍內最好的 policy」的價值,也就是分佈偏高的那一端。
工具是 expectile regression。它把 L2 損失改成不對稱:誤差在一側乘 λ,另一側乘 1 − λ。調整 λ,估計值就會往分佈的高端或低端移,而不是停在平均值。
IQL 的完整演算法
投影片列的 Implicit Q-Learning(Kostrikov、Nair、Levine,ICLR 2022)是三步:
- 擬合 V:對 V(s) − Q̂(s, a) 用 expectile loss,λ 取小於 0.5 的值
- 更新 Q:一般的 MSE,目標是 r + γ·V̂(s′)
- 抽出 policy:用 AWR,權重是 exp((Q̂(s, a) − V̂(s)) / α)
注意符號方向。 投影片把損失寫在 V − Q 上,所以取「小的 λ」;IQL 原論文和 HW3 PDF 把損失寫在 Q − V 上,取的是大於 0.5 的值。兩種寫法都是要 V 落在偏高的 expectile,做 HW3 時別被方向搞混。
投影片列的優點:
- 完全不需要查詢 OOD 動作
- policy 仍然只在資料的動作上訓練
- actor 和 critic 的訓練解耦,計算上很快
名字的由來也寫在投影片上:policy improvement 是隱含在 expectile 裡完成的,所以叫 implicit Q-learning。
整理:這講的三個技巧
投影片最後一頁的總結:
- 為什麼要 offline RL:線上資料很貴,重用 offline 資料是好事
- 關鍵挑戰:πβ 和 πθ 之間的分佈差異,導致 Q 值被高估
- 技巧:
- filtered 或 weighted 模仿學習是簡單的 baseline
- 只在資料的動作上監督,隱含地把 policy 限制在 πβ 附近
- 用不對稱損失估計比 πβ 更好的 policy 的價值
- Trajectory stitching 讓 offline RL 能勝過模仿學習
下一講開頭會再用一頁複習這兩個關鍵想法,並舉一個機器人 post-training 的實際例子。
今晚可以做的事
拿紙畫出投影片那張九狀態圖,假設資料只有兩條軌跡:s1 → s2 → s3 → s4 → s6(得 −1)和 s7 → s8 → s3 → s5 → s9(得 +1)。這兩條軌跡是我為了練習自己編的,不是投影片上的原始資料。分別用 Monte Carlo 和 TD 算一次 V(s3)、V(s2),看看哪一種會讓「從 s1 出發」的 policy 知道該往 s9 走。算完再回頭讀 filtered BC 那段:只留 return 最高的軌跡,它會學到什麼?
延伸閱讀
- Berkeley CS285:推論與 offline RL:同一主題的另一種講法,涵蓋更多保守式方法
- CS224R L6:Q-learning:本講的 TD 目標與 target network 都從這裡來
系列導覽:上一篇 HW2:線上 RL|下一篇 L8:獎勵從哪裡來|系列總覽
參考資料
- CS224R 課程首頁與課表(Spring 2026)
- Lecture 7 投影片:Offline Reinforcement Learning(2026)
- Spring 2025 Lecture 7: Offline RL(YouTube,補充)
- CS224R Spring 2025 封存頁(課表與指定閱讀)
- Kostrikov, Nair, Levine. Offline Reinforcement Learning with Implicit Q-Learning(arXiv 2110.06169)
- Peng, Kumar, Zhang, Levine. Advantage-Weighted Regression(arXiv 1910.00177)
- Nair, Gupta, Dalal, Levine. AWAC: Accelerating Online Reinforcement Learning with Offline Datasets(arXiv 2006.09359)
- Kumar et al. Conservative Q-Learning for Offline Reinforcement Learning(arXiv 2006.04779,2025 指定閱讀)
Loading...