系列CS234 是 Emma Brunskill 在 Stanford 教的強化學習入門課,從有模型的 MDP 規劃一路講到策略梯度、RLHF/DPO、bandit 探索和 MCTS。Winter 2026 的 14 講投影片、三份作業的題目與起始碼、專題規格都能匿名下載,本系列評為 A3(足以自學)。缺口是官網沒有 2026 錄影、L15 與 L16 沒有投影片、期中考與 tutorials 不公開。公開錄影是 Spring 2024 版,本系列只拿它當補充;2024 有兩講 Offline RL,2026 投影片裡沒有對應內容。
CS234 Winter 2026 第一講先回答 RL 是什麼:在不確定之下,從經驗學會做好決策。它通常同時牽涉四件事:最佳化、延遲後果、探索、泛化。接著用火星探測車的七格世界,從 Markov process 一路加到 Markov reward process,定義 return、value function 和折扣因子,最後推出 MRP 的 Bellman 方程:可以直接解矩陣反轉,也可以用動態規劃迭代。加上動作之後就是 MDP,這是下一講的起點。
CS234 Winter 2026 第二講假設世界模型已知,回答怎麼算出最好的 policy。先把 MDP 加上 policy 變回 MRP,用 Bellman backup 迭代評估 policy;再用 policy iteration 交替評估與改進,並證明每一輪都不會變差,最多 |A|^|S| 輪就停。另一條路是 value iteration:直接重複套用 Bellman 最佳化運算子,因為它在 γ < 1 時是 contraction,所以一定收斂。最後補上 finite horizon:這時最好的 policy 通常會隨剩餘步數改變。
CS234 Winter 2026 的作業一共 68 分、四題:庫存 MDP 看視野與折扣怎麼改變最佳策略(8)、自駕車的 proxy reward 為什麼讓 AI 車乾脆不上匝道(5)、用 Bellman residual 界住貪婪策略的表現(30),以及在 RiverSwim 上親手寫 value iteration 與 policy iteration(25)。三題紙筆在練同一件事:你寫下的 reward、γ 與價值函數,不一定是你以為的那個目標。
不知道轉移機率與 reward,要怎麼估一個策略值多少?CS234 第 3 講給三個答案:Monte Carlo 直接平均整條軌跡的回報(無偏、變異大、要等 episode 結束),TD(0) 用「一步 reward+下一狀態的估計值」當目標(有偏、變異小、每一步都能更新),certainty equivalence 先估模型再做動態規劃(最省資料、最貴的計算)。第 4 講開頭的 AB 例子把差別講到最清楚:同一批資料,MC 說 V(A)=0,TD 說 V(A)=0.75。
會評估之後,下一步是一邊收資料一邊把策略變好。CS234 第 4 講的路線是:ε-greedy 讓策略改進仍然單調;GLIE 規定探索要多到什麼程度、何時收手;Q-learning 在 GLIE 加上 Robbins–Monro 步長下會收斂到 Q*;最後把表格換成參數化的 Q̂(s,a;w),用 MC、SARSA 或 Q-learning 的目標做 SGD。代價是 deadly triad:函數近似、bootstrapping、off-policy 三者同時出現時,可能震盪或發散。
Q-learning 在表格上會收斂,接上函數近似就可能發散。CS234 把原因歸成 deadly triad:bootstrapping、function approximation、off-policy learning 三者同時出現。DQN 用兩招撐住:experience replay 打散樣本之間的相關性,fixed Q-targets 讓目標值在 C 步內不動。投影片引用的 Atari 消融表裡,Breakout 從線性模型的 3 分、沒有兩招的深度網路 3 分,到兩招都用的 317 分;只加 replay 就到 241。
策略梯度不學價值再導出策略,而是直接對策略參數 θ 做梯度上升。關鍵一步是把 ∇P(τ;θ) 改寫成 P(τ;θ)∇log P(τ;θ),動態模型在取 log 後消失,只剩策略自己的 score function。原始估計量無偏但雜訊很大,CS234 用三招降噪:只看動作之後的回報(REINFORCE)、減掉只依賴狀態的 baseline(證明它不引入偏差)、用 critic 估計的價值取代 Monte Carlo 回報(actor-critic)。
Vanilla 策略梯度有兩個毛病:每批資料只走一步就丟,而且參數空間的距離不等於策略空間的距離,步長一大表現就崩。CS234 沿用 Joshua Achiam 的講法,從 performance difference lemma 出發,把新策略的表現改寫成舊策略資料上的 surrogate objective,再用 KL 散度界住近似誤差。最大化「surrogate 減 KL 懲罰」保證不退步,但理論常數太大,PPO 改用可調的 KL 懲罰或 clipping 近似它;advantage 則用 GAE 在偏差與變異之間折衷。
CS234 Winter 2026 的作業二共 102 分、四題:DQN 紙筆題(8)、在 CartPole、Pendulum、HalfCheetah 三個 PyBullet 環境上實作 REINFORCE、神經網路 baseline 與 clipped PPO(54 分程式+21 分報告),證明策略誘導的狀態分布與 performance difference lemma(14),以及用 Belmont Report 檢視一個會邊學邊影響學生的 RL 實驗(5)。程式題的重點是把 L5–L7 的式子一行一行變成可以跑出 21 條學習曲線的程式。
有專家示範、沒有 reward 時,CS234 L7 後半給三條路:直接用監督式學習抄動作(behavioral cloning),發現誤差會隨時間累積後改成邊跑邊問專家(DAgger),或者乾脆反推專家在最佳化什麼 reward(inverse RL)。反推 reward 會碰到「無限多組 reward 都解釋得了示範」的問題,feature matching 與最大熵原則是兩種收斂答案的方式。這一段是下一篇 RLHF 的前身:從示範換成偏好,問題結構幾乎一樣。
CS234 L8 把上一篇的 inverse RL 換了輸入:不再是專家示範,而是人類說「A 比 B 好」。Bradley-Terry 模型把這種成對比較變成一個可以用交叉熵擬合的 reward;RLHF 拿這個 reward model 加上 KL 懲罰去跑 PPO;DPO 則證明 KL 限制下的最佳策略有封閉解,把 reward 改寫成策略的對數比值,代回 Bradley-Terry 後 partition function 相消,於是可以直接在偏好資料上訓練策略、跳過 reward model。2026 投影片沒有 offline RL 的內容,DPO 也改由課堂自己講,不再是 2024 的客座。
CS234 Winter 2026 作業三共五題、94 分。前三題都在 MuJoCo Hopper 上:先用手寫 reward 跑 PPO(13),再從 1 萬筆偏好對學 reward model 後跑 PPO(19+8),最後用 SFT+DPO 直接從偏好學策略、完全不碰環境(6+19)。第四題換成純理論:用 Hoeffding 與 union bound 算出找 ε-最佳臂要幾次試驗(25),這題要等讀完下一篇 bandit 再做。第五題是新聞推薦的 stated vs revealed preference(4)。
CS234 L9 與 L10 前半把「探索」從 ε-greedy 這種經驗法則,變成可以證明的東西。先定義 regret:跟一直選最好的手臂相比,你少拿了多少。greedy 會鎖死在次佳手臂,固定 ε 的 ε-greedy 永遠有 ε 比例在亂選,兩者的 regret 都隨時間線性成長。Lai-Robbins 下界說最好也要對數成長,而 UCB 靠「對不確定的手臂樂觀一點」做到了:Bandit Algorithms 定理 7.1 給出每隻次佳手臂只會被拉大約 16 log n / Δ² 次。
CS234 L11 把探索的邏輯從「樂觀」換成「抽樣」。Thompson sampling 替每隻手臂維護一個後驗分布,每一步從後驗各抽一個值,選抽到最大的那隻;Bernoulli reward 配 Beta 先驗時,更新只是把成功或失敗次數加一。它剛好實作了 probability matching:選每隻手臂的機率,等於它是最佳手臂的後驗機率。在 Bayesian regret 下它跟 UCB 同階,在批次與延遲回饋的場景裡還比確定性的 UCB 更合適;代價是先驗錯得離譜時會表現很差。
前兩篇的 UCB 與 Thompson sampling 只處理單步決策。CS234 第 12 講把同一組想法搬進有狀態的 MDP:先換一把尺,用 PAC 限制「不夠好的步數」而不是總 regret;再看樂觀派的 MBIE-EB(計數+探索獎勵)與抽樣派的 PSRL(每個 episode 抽一個 MDP 來解)。狀態多到數不完時,計數失效,就改成在 Q-learning 目標上加 bonus,這是 Montezuma's Revenge 上贏過 ε-greedy DQN 的關鍵。最後一段問:探索策略能不能用學的?答案之一是 Decision-Pretrained Transformer。
到目前為止,CS234 都在替整個狀態空間算一個策略。第 13、14 講換一個問題:如果我只在乎「現在這一步」該怎麼走,能不能多花一點本地運算,做出更好的決定?從 simple Monte Carlo search、expectimax tree 到 MCTS,再把每個節點當成一個 bandit,就得到 UCT。AlphaZero 把 MCTS 跟一個同時預測策略與價值的網路綁在一起,用 self-play 互相推進。投影片借用 Silver et al. 2017 的圖回答三個問題:架構有多重要、MCTS 加了多少、需不需要人類資料。
整門 CS234 都假設 reward 是給定的。Winter 2026 的倫理與社會客座(Wanheng Hu,教材原本由 Dan Webber 發展)分兩次問:你真正想要的是什麼?第一次把「對齊」拆成三個目標:使用者的意圖、顯示偏好、客觀最佳利益,並用 RLHF 造成的 sycophancy 與個人 AI agent 當案例。第二次加入第四個目標:對使用者以外的人來說什麼是對的,再比較 top-down(寫下原則)、bottom-up(從範例學)與 participatory AI 三條路。結論沒有銀彈,但對齊有好壞之分。
CS234 Winter 2026 的最後一份客座投影片,由 Google DeepMind 的 Shane Gu 主講,36 頁、沒有公開錄影。主線有三段:先用 Solomonoff induction 說「最好的預測就是找出最短的生成程式」,再把預測分成三個層次;接著把正向模型 F、逆向模型 Π 與 Q 寫在同一組符號裡,說明 shooting 與 direct collocation 兩種規劃方式怎麼各用一種模型,並把 TDM 與 Generalized Decision Transformer 解讀成「換了時間尺度的世界模型」;最後談影片模型能不能成為物理世界的基礎模型。