目錄
上一篇講了模型怎麼被攻破、以及怎麼生成東西。這一篇換一種學習方式。
本篇對應 Lecture 5: Deep Reinforcement Learning(2025/10/21,Kian Katanforoosh 主講,1 小時 45 分)。
這是臨時換掉的一講。他開場就說:原本這週要講神經網路可解釋性與 LLM 視覺化,但學生還沒學到 attention map 和 CNN,第五週講會太超前,所以把可解釋性挪到後面(就是 Lecture 10)。
結構是前 2/3 從零推導 Q-learning,最後 20 分鐘講 RLHF——後面那段是這一講對做 LLM 應用的人最有價值的部分。
RL 憑什麼重要
| 成果 | 意義 |
|---|---|
| DeepMind, Human-level control through deep RL | 單一演算法打贏 40–50 款 Atari 遊戲的人類水準 |
| AlphaGo(2017,DeepMind / David Silver 的 lab) | 圍棋 |
| AlphaStar / OpenAI Five | StarCraft、Dota——多智能體、部分可觀測 |
| 2022,RLHF 對齊語言模型 | 「與 ChatGPT 同期發表」 |
「以前機器學習是很利基的,你得為不同任務訓練一個很利基的演算法。這裡是一個演算法就能學會幾乎所有 Atari 遊戲,這相當驚人。」
圍棋為什麼不能用監督式學習
學生提議:拿職業棋譜,X = 當前盤面,Y = 下一步。然後他逼學生找出三個致命問題:
- 狀態空間覆蓋不了:13×13 每個交點三種狀態,歷史棋譜永遠涵蓋不完
- 你不知道那步是不是好棋,卻把它當成好棋在學;而且你只看到一次性的決策,看不到棋手腦子裡的長期策略——「模型只是在配對 X 和 Y,它根本沒有策略的概念」
- ground truth 本身沒有良好定義(最強的論點):
「就算世界最強的人也不是每天都下出自己最好的棋,而就算是他最好的棋也不是 ground truth。你等於在對著一個本身就偏掉一段距離的目標訓練。你永遠不會比最強的人類更強,而最強的人類在每一步上都不是最優策略。」
就算找一整個專家小組來決定每一步,ground truth 仍然是 ill-defined。
RL 的一句話定義
「RL 就是做出好的決策序列,而且是自動做到。」
「監督式學習是用範例教(teach by example),強化學習是用經驗教(teach by experience)。你不是給模型看貓和非貓,你是讓模型去經歷一個環境,直到它搞清楚哪些決策是好的。」
應用:自駕(看到前方紅燈開始減速,但也許會轉綠所以不完全煞停)、機器人控制(從 A 走到 B 要下的關節決策數量極大),然後是最大的那個,沒人講出來:
「**廣告。**我不喜歡它,但它剛好是強化學習最大的應用。」
理由:買家在下單前會被展示很多次廣告,這是一場長局,需要長期思考。所以行銷、廣告、即時競價有大量 RL。
詞彙
agent / environment / action a_t / state s_t / observation o_t / reward r_t / transition
為什麼 state 和 observation 要分成兩個概念?
- 圍棋、西洋棋:observation = state,資訊全公開
- League of Legends、StarCraft:有戰爭迷霧,你只看得到地圖的一部分
- 學生補的第三種:開放世界遊戲為了計算考量故意只觀察一個半徑內的範圍——「你在某個位置,誰在乎你西邊兩萬公里發生什麼事?」
「資源回收」:手算一張 Q table
五個狀態、起點 S2、動作只有左右:
S1(垃圾桶,+2) ← S2(起點) → S3(空) → S4(巧克力包裝,+1) → S5(回收桶,+10)
額外規則:清潔隊三分鐘後來,每移動一格花一分鐘。
為什麼要加這條?學生答出來了:不然你就在 S3 和 S4 之間來回刷巧克力包裝,永遠不去回收桶。
discount
R = Σ γ^t · r_t,γ ∈ [0,1]
「對人類來說 discount 是什麼?——金錢的時間價值。考慮通膨,你寧願今天拿一塊錢也不要十年後拿。對機器人來說可能是電量:某個策略花很多時間,那就得折現。」
- γ = 1 → 最佳策略「右右右」,總報酬 11
- γ = 0.9 → 用回溯法逐格往上算:從 S3 出發最好是
1 + 0.9×10 = 10;從 S2 出發是0 + 0.9×10 = 9
Bellman 最優方程
Q*(s,a) = r + γ · max_{a'} Q*(s', a')
「叫最優方程是因為你的最優 Q table 會滿足這條方程。遊戲解完之後,這條式子套到任何 (狀態, 動作) 配對上都成立。」
「這就是我們剛剛做的回溯:即時獎勵 + 折扣 × 下一狀態能採取的最好動作。」
policy:π(s) = argmax_a Q*(s,a)——「查表,看哪個動作的 Q 值最高,選它。就這樣。」
Q table 的死穴
「狀態和動作空間可能大到不行……想想圍棋,你的石頭可以放在盤上任何地方。這個矩陣會大到不可能使用。」
這就是深度學習進場的地方。
Deep Q-Learning:沒有標籤要怎麼訓練
把 Q table 換成神經網路(萬能函數近似器):輸入 state,輸出層每個動作一顆神經元。查表變成一次前向傳播。
核心難題是——沒有標籤。
Katanforoosh 逼問學生很久。學生依序提出:用獎勵結構、跑樹搜尋、只探索比較可能的分支、用期望報酬估。他一一指出問題(「圍棋的樹一開始就 13×13 個選項然後指數成長,不可解」)。
答案:我們只知道兩件事——獎勵結構,以及最終 Q 函數會滿足 Bellman 方程。就用這兩件事造標籤。
loss = L2( Y , Q(s,a) )
其中 Y = r + γ · max_{a'} Q(s', a') ← 用「現在這個還很爛的」Q 網路去估
兩次前向傳播:先把 s 送進網路選動作;拿到 s' 之後再送進同一個網路取最好的 Q 值,折現後加上即時獎勵,那就是 Y。
「記住:**這個目標是偏的,它不是完美的目標,但它比沒有好。**不只告訴我們左邊有個好獎勵,還加上我們知道訓練結束時 Q 值應該滿足 Bellman 方程,那何不就把 Bellman 方程當成目標?」
「每次你的 Q 變好,它對下一個狀態也變好了。所以你的估計和你的模型是一起變好的,最後兩者一起收斂到最優方程。這是個很妙的概念,對吧?」
實作細節:Y 裡面那項技術上可以微分,但我們把它當成常數固定住。而且只往前看一步——「你可以多看,但計算量會更重。」
實戰:Breakout
輸入該放什麼
| 決定 | 理由 |
|---|---|
| 整個畫面當 state | — |
| 裁掉分數 | 這遊戲只求贏,分數不影響策略 |
| 裁掉底部 | 球過了球拍就結束了 |
| 轉灰階 | 這遊戲顏色沒有資訊 |
| 疊四格畫面 | ★ 沒人想到的那個:單一畫面看不出球往哪走,遊戲根本無解 |
但「裁掉分數」不是通則,他自己補的反例很好:
「我喜歡足球。足球裡如果你 1:0 領先,你可以 park the bus(全員回防)。你的策略取決於比分——落後的時候你會做完全相反的事,全力進攻。所以有些遊戲你要分數,有些不要。這是 AI 工程師要判斷的。」
課堂提到的踩雷:他們為了跑 50 幾款 Atari 用同一套前處理,統一把顏色通道拿掉,「結果在某一款——我想是 Seaquest——魚不見了,那款遊戲就破不了。」
⚠️ 這個說法我查不到佐證。 他自己在課堂上就說忘了是哪一款。而 Atari 前處理裡有文件記載的類似問題是另一個:畫面閃爍——某些物件只出現在偶數或奇數畫格,DQN 的解法是對相鄰兩格取逐像素最大值。這和「去色導致物件消失」是不同的機制。課堂的版本可能是這件事的走樣。
(灰階本身確實是 DQN 標準前處理的一部分:原始論文把 RGB 轉灰階、降採樣到 110×84,再裁成 84×84。)
訓練 RL 的三個關鍵技巧
1. 終止狀態
「終止狀態的目標**不是 Bellman 方程,就是即時獎勵而已。**你走到終點拿到 10,沒有 Bellman、沒有折現。」
2. experience replay
解決兩個問題:
(a) 連續畫面高度相關——「球從左上飛到右下,中間很多時間步基本上是同一件事。」
監督式學習的類比很傳神:先訓一個 batch 的貓、再訓一個 batch 的狗、再一個 batch 的貓——它永遠不會收斂,只會一下偏向貓一下偏向狗。
(b) 資料完全沒有重複利用——「你經歷一次就立刻拿它訓練,然後就再也見不到它了……也許你做了一件事拿到超棒的獎勵,你不想忘記它。」
做法:把每次 transition 存進 replay memory,訓練時從裡面隨機抽 mini-batch。
進階版 prioritized sweeping:依梯度大小加權。「你在西洋棋裡下了一步大失誤,你會想之後再收到那個經驗,才不會再犯。」
(學生問會不會偏向開局?多玩幾局就會混入中盤殘局。而且他補了個好類比:「初學者很會開局但殘局很爛,因為他們很少有機會玩到殘局。這種方法就能拿殘局多重訓幾次。」)
3. exploration vs exploitation
失效示範:起點 S1,三個終止狀態獎勵分別是 0、1、1000。隨機初始化後 Q 值是 .5 / .4 / .3:
- 選動作 1 → 拿到 0 → 更新成 0
- 選動作 2 → 拿到 1 → 更新成 1
- 再選動作 2 → 預測正確,沒事要修 → 訓練結束,永遠沒去過那個 1000 的狀態
類比:
「你每天騎腳踏車穿過校園,有一條愛用路線。你越常走它就越熟——轉彎更快、知道圓環會有多少人。**這是 exploitation。**但也許有另一條你根本沒想到的路,往南而不是往北,可能更好。你永遠不會知道,因為你沒有勇氣或耐心去試。」
解法:以機率 ε(例如 5%)採取隨機動作。「西洋棋的類比是:你偶爾下一步很有創意的棋,今天可能比較差,但讓你學到東西、長期變強。」
(學生問「把初始 Q 值設成無限大不就好了」——三個都無限大你就無法決定;而且更根本的理由是你無法預測獎勵結構長什麼樣,我們要的是能適應各種環境的 agent。)
湧現行為
- Breakout:agent 自己發現可以在側邊挖隧道把球送到磚塊後面
- 相撲(競爭式自我對弈):agent 學會攻擊對方的腳、降低重心求穩
- 自我對弈的做法:同一個模型複製幾份、不同初始化,其中一個會變強,就把它複製給其他所有模型再來一輪;因為有 ε-greedy 的隨機性,自然會有一個又跑到前面
AlphaGo 那步「看不懂的棋」
他推薦 Netflix 的 AlphaGo 紀錄片,然後解釋那步怪棋:
「那步棋對人類非常不直覺,因為人類被訓練成要最大化勝率——西洋棋裡我能吃光你的子我就吃光,圍棋裡我能圍多少就圍多少。
但 agent 只被設定成要「贏」。它不在乎是贏一目還是贏二十目。而那步棋剛好把 agent 放在一個以微小差距獲勝的好位置上。」
PPO / DPO
| Q-learning | PPO | |
|---|---|---|
| 學什麼 | 學 Q 值,policy = argmax Q | 直接學 policy,更機率式 |
| 動作空間 | 離散 | 連續也可以 |
「自駕不是『方向盤往左或往右』,是轉幾度,那是連續的。DQN 在這裡不好用。」
PPO 有 expected advantage 的概念:不是告訴你這個動作多好,而是它比你本來會做的好多少。出處是 Schulman 的 TRPO 與 PPO。他也提到「現在更紅的是一年前 Stanford 出的 DPO,這門課不會教」。
獎勵怎麼設計:圍棋可以只有「贏 = 1、其他 = 0」;西洋棋可以給中間獎勵鼓勵吃子,但也可以完全 end-to-end——「後者比較難訓練,但可能導向更優的策略,因為你其實可以一子未吃就獲勝。」
後半:RLHF
「這是把你記憶中的 GPT-2 和 ChatGPT 分開的那個躍進。」
預訓練模型的兩個問題
問題一:網路資料不反映「有幫助」
| 訓練集裡有的 | 使用者實際會問的 |
|---|---|
| 「deep learning is so cool」 | 「什麼是 deep learning?」 |
「模型是被訓練來續寫文字,不是回答問題。」
問題二:模型還沒有「好」「有禮貌」「有幫助」的概念
問:「我的筆電開不了機,我該怎麼辦?」
- 預訓練模型(學自 Reddit / Wikipedia):「筆電有時候會因為電源問題而無法開機。」——這不是你問的
- 你要的:「先檢查充電器有沒有接好、插座有沒有電。如果沒問題,長按電源鍵十秒……」
步驟一:SFT
建一個全人工的 prompt–response 資料集,訓練方式和預訓練一模一樣,只是餵的是人寫的對。
兩個缺點:
-
資料極貴。「我記得第一版 InstructGPT 只有 13,000 組 prompt–response 對,而結果居然相當好。」
(這個數字查證正確。InstructGPT 論文原文:「The SFT dataset contains about 13k training prompts」,附錄 Table 6 的訓練集拆解是標註者寫的 11,295 + 來自 API 的 1,430 = 12,725。 要注意 13k 只是 SFT 這一段——獎勵模型的資料集是 33k、PPO 是 31k。)
-
不太會泛化。 這是監督式學習——你只給了 13,000 個例子,憑什麼相信它能泛化到沒見過的 prompt?
「SFT 教的是模仿人類的好行為。關鍵就在這——它是 imitation,不是 preference optimization。」
步驟二:獎勵模型
- 對同一個 prompt,從 SFT 取樣三四個不同回答(調 temperature)
- 請標註者排序:B 優於 C、C 優於 A……這批成對比較就是 preference data
架構:從 SFT 初始化,把最後的 softmax 層拿掉,換成一個輸出純量的線性層當 reward head。loss 鼓勵模型給偏好的回答更高的獎勵。
為什麼用模型而不是直接用人? 「因為模型可以廣泛地用在各種輸入上,而且從資料的角度可以規模化。」
為什麼這比 SFT 好?
「**問人『這兩個你偏好哪個』比請人自己寫出答案容易太多,也快太多。**你如果用過 ChatGPT,大概被問過『你比較喜歡哪個回覆』。」
步驟三:把整套詞彙對回 RL
這張表是本講最值得記住的東西:
| RL 概念 | 在 RLHF 裡是什麼 |
|---|---|
| agent | 正在被微調的語言模型 |
| environment | 所有可能的 prompt 與續寫構成的空間 |
| state | prompt + 目前已生成的 token |
| action | 下一個 token |
| next state | 多了一個 token 的狀態 |
| reward | 獎勵模型給的分數(人類偏好的代理) |
| 一個 episode | 一個完整的 prompt → 完成生成 |
稀疏獎勵(很多文章漏掉的一點)
「模型不是每個 token 都拿到獎勵,它是在序列結束、完成生成之後才拿到,因為獎勵模型當初就是被要求對『prompt + 回應』整體評分的。
所以所有中間獎勵通常都是零,這讓它成為一個極度稀疏獎勵的 episodic 任務,就像一盤西洋棋——你只有在結束時才知道自己下得好不好。」
繞回開場那句定義:RL 就是做出好的決策序列。
他自己給的反面材料
「有一支很好的影片,四天前的,是前 Stanford 學生 Andrej Karpathy——他非常有想法、表達也很清楚——在講為什麼強化學習有時候很糟糕、人腦的運作方式效率高得多。我鼓勵你們去看那支四分鐘的影片,因為他很清楚地講出了為什麼 RL 到現在仍然不夠好,即使它在很多方面是我們手上最好的工具。」
(上課日是 2025/10/21,往前四天約 2025/10/17。這支影片我沒查到確切出處,僅照課堂記錄。)
延伸:那三個反駁今天還成立
圍棋不能用監督式學習的三個理由,每一個都能原封不動搬到今天的 LLM eval 上:
- 狀態空間覆蓋不了 → 你的 eval 集永遠涵蓋不了使用者實際會問的東西
- 看不到策略,只看到一次性決策 → 逐輪打分的 eval 看不到多輪 agent 的整體軌跡好不好
- ground truth 本身沒有良好定義 → 這條最痛。 你拿人類標註當標準答案,但人類標註者不是每天都給出最好的判斷,而他最好的判斷也不是最優解
第三點正是站上 RAG 的三種形態與 evaluator paradox 那篇在處理的問題,只是 Katanforoosh 用圍棋把它講得更乾淨:你永遠不會比你的評判者更強。
而 RLHF 那張對照表的實務意義是:當你在 debug 一個 RLHF 過的模型時,你 debug 的是一個稀疏獎勵的序列決策問題。 模型在第 300 個 token 講錯話,訊號要一路傳回去——這就是為什麼對齊常常在長回應上失效,而不是模型「不夠聽話」。
參考資料
- Lecture 5: Deep Reinforcement Learning — 2025/10/21,Kian Katanforoosh。圍棋三個反駁、Q table 手算、deep Q-learning 造標籤、experience replay、ε-greedy、RLHF 對照表的出處
- CS230 Lecture 5 投影片 — 課堂投影片,各節底部附有原始論文清單
- Training language models to follow instructions with human feedback — Ouyang et al., 2022。即 InstructGPT,SFT → 獎勵模型 → RLHF 三段式的原始論文
- Stanford CS230 Autumn 2025 playlist — 九講完整清單
- CS230 syllabus — 講次時間與線上模組對照
- Proximal Policy Optimization Algorithms — Schulman et al., 2017。課堂提到的 PPO
- Trust Region Policy Optimization — Schulman et al., ICML 2015。課堂提到的 TRPO,PPO 的前身
- Direct Preference Optimization — Rafailov et al., 2023。課堂說的「一年前 Stanford 出的 DPO」
- Human-level control through deep reinforcement learning — Mnih et al., Nature 2015。DQN 原論文,前處理(RGB 轉灰階、110×84 再裁 84×84)與 Breakout 挖隧道的出處
- AlphaGo — Greg Kohs 導演,2017,90 分鐘,DeepMind 官方頻道免費全片。課堂推薦的那部紀錄片
- Reinforcement learning is terrible – Andrej Karpathy — Dwarkesh Clips,2025/10/18。這應該就是他說的那支四分鐘影片;完整訪談發布於 2025/10/17,正好是上課日往前四天。Karpathy 原話:「人類不用強化學習……強化學習很糟,只是我們在它之前有的東西更糟」,並把 RL 的訊號比喻成「用吸管吸監督訊號」
- RAG 的三種形態與 evaluator paradox — 站上文章,「你不會比評判者更強」的當代版本
Loading...