Skip to content
所有標籤

#stanford

361 篇文章

深度學習:翻轉教室怎麼排,九堂實體課怎麼讀|Stanford CS230 課程總覽

CS230 是 Andrew Ng 與 Kian Katanforoosh 在 Stanford 教的深度學習課,採翻轉教室:神經網路、最佳化、CNN、序列模型與 Transformer 的基礎放在 Coursera 的五門線上課,每週一堂實體課講專案方法、對抗攻擊與生成模型、強化學習、LLM 應用與可解釋性。九堂實體課的錄影、多數投影片與兩份附解答的期中練習考公開;Stanford 專用的 Coursera 場次、助教課錄影與專案指導拿不到。

機器學習在學什麼:監督式、非監督式與強化學習|Stanford CS229 第 1 堂

CS229 Spring 2026 的開場課只有 37 分鐘、沒有推導。它用 Tom Mitchell 的「經驗 E、任務 T、衡量 P」定義機器學習,再把整門課分成監督式、非監督式、強化學習三類,三者的差別在於資料裡有沒有答案、資料是不是模型自己收集來的。大型語言模型在這個分類裡同時出現三次。

監督式學習設定與線性迴歸:一條線怎麼從資料裡學出來|Stanford CS229 第 2 堂

第 2 堂把監督式學習拆成三件事:假設函數 h、最小平方成本 J(θ)、把 J 壓低的演算法。梯度下降每步要掃過全部 n 筆資料,minibatch SGD 只看一小批就更新,代價是在最佳解附近晃動;線性迴歸另有封閉解 θ = (XᵀX)⁻¹Xᵀy,前提是 XᵀX 可逆。

最大概似與邏輯斯迴歸:最小平方為什麼是合理的選擇|Stanford CS229 第 3 堂

假設誤差是零均值、獨立同分布的高斯雜訊,對概似函數取 log 之後,最大概似就等於上一堂的最小平方。同一套做法換成 0/1 標籤與 sigmoid,得到邏輯斯迴歸,梯度仍是「誤差乘上輸入」。最後用 Newton 法對照 SGD:步數少,但每步要付 n·d² + d³ 的計算量。

指數族、廣義線性模型與 softmax:換一種誤差分布要重推幾次?|Stanford CS229 第 4 堂

只要 y 的分布能寫成 b(y)·exp(ηᵀT(y) − a(η)),對 a(η) 微分一次就是期望值、兩次就是變異數;再令 η = θᵀx,線性迴歸、邏輯斯迴歸與 softmax 的更新式都是同一條 θ ← θ + α(y − h(x))x。後半堂用四個類別的例子講 softmax、交叉熵與 label smoothing。

高斯判別分析與 Naive Bayes:先學每一類長什麼樣,再用貝氏定理分類|Stanford CS229 第 5 堂

第 5 堂把分類問題反過來做:不直接學 p(y|x),改學 p(x|y) 與 p(y)。GDA 假設兩類是共用共變異數的高斯,最大概似估計只要數比例、取平均,決策邊界推出來是一條直線,事後機率剛好是 sigmoid;Naive Bayes 用條件獨立把 2^d 個參數壓到 2d+1 個。

偏差與變異、正規化與模型選擇:模型該多複雜|Stanford CS229 第 6 堂

這堂課把測試誤差拆成雜訊 σ²、偏差平方、變異三項,再用 ridge regression 的閉式解說明正規化怎麼把特徵值從 λ 推到 λ+ρ,用一點偏差換掉大量變異。後半堂講雙降、ImageNet-V2,以及用開發集、k 折交叉驗證與 successive halving 挑超參數。

神經網路的架構:從一個 ReLU 疊到殘差連接與正規化層|Stanford CS229 第 7 堂

第 7 堂先把線性模型的訓練流程原封不動搬到非線性模型:每筆資料一個 loss、取平均、用 SGD 往下走,剩下兩個問題是模型長什麼樣、梯度怎麼算。後半堂回答第一個:一個神經元是 ReLU(wᵀx+b),m 個神經元疊成矩陣就是一層 ReLU(Wx+b),參數 md+m 個;再往上是殘差區塊 z+σ(MM(σ(MM(z)))) 與 LayerNorm、RMSNorm。梯度怎麼算留給第 8 堂。

反向傳播:算梯度為什麼只要一次前向的成本|Stanford CS229 第 8 堂

這堂課從一個定理出發:能用 N 個基本運算算出來的純量函數,梯度也能在 O(N) 時間算完。做法是把鏈鎖律讀成「拿到 ∂J/∂u 就能算 ∂J/∂z,而且只需要中間那個模組的資訊」,再替矩陣乘法與啟動函數各推一個 backward 函數:Wᵀv、vzᵀ、σ′(z)⊙v。本文另外用一個 2-2-1 的小網路把前向與反向手算一遍。

k-means 與高斯混合模型:沒有標籤時怎麼分群|Stanford CS229 第 9 堂

第 9 堂從 k-means 的「指派、取平均」兩步出發,說明它為何一定停下來卻只保證到局部最佳;接著把硬指派換成機率,得到高斯混合模型與 EM 的 E-step(貝氏定理)和 M-step(加權平均)。最後用 Jensen 不等式畫出 EM 的圖像:每一輪造一條貼著 log-likelihood 的下界再爬到頂,完整推導留到第 10 堂。

EM 演算法與 PCA:下界怎麼保證概似不下降|Stanford CS229 第 10 堂

前半堂用 Jensen 不等式替對數概似造出下界 ELBO,把 Q 取成後驗機率讓下界在目前參數緊貼,推出每一輪 EM 都不會讓概似下降,套回高斯混合就得到上一堂的加權平均公式。後半堂把 PCA 寫成在單位向量上最大化 uᵀΣu,答案是共變異數矩陣最大特徵值對應的特徵向量。

擴散模型:加噪的過程要怎麼倒著學回來|Stanford CS229 第 11 堂

前向過程每一步把資料乘上 √(1−β_t) 再加變異數 β_t 的高斯雜訊,展開後 x_t = √ᾱ_t·x_0 + √(1−ᾱ_t)·ε̂_t,不必學。反向用高斯 p_θ(x_{t−1}|x_t) 去學,把上一堂的 ELBO 套在整條軌跡上,再用 KL 連鎖律拆開,每一步的損失是 ‖μ̃_t(x_t,x_0) − μ_θ(x_t,t)‖²/(2β̃_t)。這堂停在這個式子,化簡成預測雜訊留到第 12 堂。

擴散模型的雜訊預測損失、基礎模型與 LoRA|Stanford CS229 第 12 堂

前半堂把擴散模型的 ELBO 收成一條式子:每個時間步都是「猜出當初加進去的雜訊」的平方誤差,訓練五步、取樣一個迴圈。後半堂開始講基礎模型:預訓練加適應的兩階段、linear probe、finetune、LP-FT,以及 LoRA 只訓練 2dr 個參數卻省不了多少運算的原因。

對比學習與語意檢索:沒有標籤,怎麼學出能比相似度的向量|Stanford CS229 第 13 堂

這堂課把 SimCLR 損失拆成一張 B×B 相似度矩陣:每一列做一次 softmax 分類,答案是對角線那一格。對角線被拉高、其餘被壓低,模型不需要標籤就學到「相似的東西向量相近」。後半堂用同一組向量做語意檢索,再接到 RAG。

大型語言模型:next-token 損失與 attention 怎麼算|Stanford CS229 第 14 堂

這堂課把大型語言模型拆成三層:分詞把文字變成 token 編號,鏈式法則把整段文字的機率拆成一連串「下一個 token」的條件機率,訓練就是把每個位置的交叉熵加起來。後半堂打開 Transformer:query 與 key 的內積過 softmax 得到權重,對 value 做加權平均,再用 causal mask 擋住未來位置;單層 attention 的計算量隨序列長度 T 的平方成長。

Attention 變體、MoE 與提示用法:KV cache 太大怎麼辦|Stanford CS229 第 16 堂

生成時每個 head 都要把過去所有位置的 key 與 value 留在 GPU 記憶體裡,這份 KV cache 會卡住 batch size。GQA 讓 τ 個 query head 共用一組 key/value,把它縮成 1/τ;sliding window 把 T² 的運算壓到 T·w;MoE 讓 128 個 expert 裡每個 token 只跑 8 個。後半堂講怎麼用訓練好的模型:few-shot、zero-shot 都不動參數,SFT 才動,而且 loss 只算在答案的 token 上。

強化學習基礎與 Policy Gradient:參數藏在取樣分布裡,梯度怎麼算|Stanford CS229 第 18 堂

這堂課前 55 分鐘把循序決策寫成 MDP(狀態、動作、轉移機率、獎勵、折扣因子),推出固定策略的 Bellman 方程式是一組線性方程式;後 20 分鐘推導 policy gradient:用 ∇p = p∇log p 把梯度換回期望值,轉移機率因為不含 θ 而從梯度裡消失,最後停在「log 機率梯度的和 × 折扣獎勵的和」這條公式,變異數縮減留到下一堂。

Baseline、PPO 與可驗證獎勵:只對答案給分,怎麼訓練出長思維鏈|Stanford CS229 第 20 堂

學期最後一堂把 policy gradient 收尾:過去的獎勵與只依賴狀態的 baseline 都可以從權重裡拿掉而不改變期望值。接著用重要性取樣推出 PPO 的截斷目標函數,拆成四種情況看哪些樣本還有梯度,再比較 CISPO 的改法。最後把語言模型逐 token 生成寫成 MDP,只在答案對的時候給 1 分,用同一題 8 個樣本的平均當 baseline 訓練長思維鏈。

從一顆晶片到整座資料中心——資料流硬體、kernel 融合、平行策略與記憶體瓶頸|Stanford CS149 第 12 堂

L12 的主軸是「搬資料」。前段用 SambaNova SN40L 說明資料流架構與 metapipelining:同樣跑 Llama 3.1 8B,投影片說 RDU 每個 token 約 3 次 kernel 呼叫,GPU 約 800 次,差別來自能不能把整個 decoder 融合進一個 kernel。中段把尺度拉到資料中心:TP、PP、EP、DP 各自需要哪種集體通訊,以及計算與通訊重疊為什麼決定擴展效率。後段回到能源與 DRAM:搬一個 byte 比算一次貴得多,記憶體控制器、burst mode、HBM 都是在解同一個問題。這講沒有公開錄影,本文只依投影片。

Cache coherence:MSI、MESI 與 false sharing|Stanford CS149 第 14 堂

每個核心都有自己的 cache,同一個位址就可能同時有好幾份副本,各核看到的值會不一樣。這不是加鎖能解決的問題,是硬體複製資料造成的。CS149 L14 先定義什麼叫 coherent,再拆解 snooping 的 MSI 協定:要寫就先廣播 BusRdX 讓別人作廢,MESI 多一個 E 狀態省掉「讀完再寫」的第二筆交易,directory 則把廣播改成點對點。對程式設計師最實際的後果是 false sharing:兩個 thread 寫不同變數,只因為落在同一條 cache line,就讓 cache line 在核心間來回彈,投影片的 demo 慢了三倍。

平行計算:課程定位與兩條閱讀路線|Stanford CS149 課程總覽

CS149 是 Kayvon Fatahalian 與 Kunle Olukotun 在 Stanford 教的平行計算課,從多核 CPU、SIMD 一路講到 GPU、AI 加速器、資料中心,最後回到 cache coherence 與 lock-free。Fall 2025 的 18 份投影片、5 個程式作業的 starter code 與 README、4 份書面作業 PDF 都能匿名取得,本系列評為 A3(足以自學)。缺口有四個:當期錄影只在 Canvas;PA1 評分用 Stanford myth 機器;PA4 要自費租 AWS Trainium2,而且課程 AMI 是私有的;PA5 的 H100 排隊系統與排行榜要 SUNet ID。公開錄影是 2023 版,本系列只拿它當聽講補充。

資料平行思維,用 map、scan 與 sort 取代鎖|Stanford CS149 第 8 堂

第 8 講要你換一個腦袋:不再想「每個 worker 做什麼」,而是把演算法寫成對序列的操作,例如 map、fold、scan、segmented scan、gather/scatter、sort、groupBy。這些原語都有高效的平行實作,能把不規則的平行變規則、把細粒度同步變粗粒度。代價是要多掃幾遍資料,所以很吃頻寬。

在 GPU 上高效跑 DNN——卷積改寫成矩陣乘、分塊、融合,一路推到 FlashAttention|Stanford CS149 第 9 堂

L9 開場就說:懂了 arithmetic intensity 與 roofline,你就幾乎懂了現代 AI 軟體面效能最佳化的一切。接著示範三件事:全連接層、卷積層、attention 最後都變成矩陣乘(GEMM);GEMM 要靠分塊(blocking)讓資料留在快取裡;層與層之間要融合(fusion),別把中間結果寫回 DRAM 再讀回來。softmax 可以分塊計算,這就是融合版 attention(FlashAttention 的核心想法)不必存下 N×N 矩陣的原因。

讓效能最佳化不再只靠專家——Halide 的演算法/排程分離、自動排程器與 LLM agent|Stanford CS149 第 13 堂

L13 問的是:寫快程式的專家太少,怎麼辦?投影片給三個答案。一是提高抽象層級:Halide 把「算什麼」(演算法)和「怎麼算」(排程)拆成兩種語言,同一段模糊濾波可以只改一行排程就換成分塊、向量化、多核版本。二是智慧搜尋:因為排程空間定義清楚,可以用搜尋加學出來的成本模型自動產生排程。三是新興的 LLM agent:讓模型寫 CUDA、執行、看 profiler、反思、再改,並用範例資料庫或 prompt 最佳化讓它自我改進。投影片最後把問題留給你:真正的價值在 DSL 設計,還是 LLM agent?

細粒度鎖與 lock-free:從 test-and-set 到 ABA 問題|Stanford CS149 第 16 堂

CS149 L16 分三段:先用 cache coherence 的眼光看鎖怎麼實作(test-and-set、test-and-test-and-set、ticket lock、CAS、LL/SC),再用一條排序 linked list 示範從一把大鎖改成 hand-over-hand 細粒度鎖,最後介紹 lock-free:單一生產者單一消費者佇列、用 CAS 寫的 stack、ABA 問題與 hazard pointer。投影片的結論很務實:在只有你的程式佔用機器的情境下,寫得好的鎖版本常常一樣快,而且好寫得多;lock-free 的價值在於執行緒可能被搶佔、page fault 的系統。

GPU 架構與 CUDA 程式設計|Stanford CS149 第 7 堂

CUDA 的 grid、thread block、CUDA thread 是一套程式抽象;GPU 用 SM、warp 與硬體 block 排程器把它實作出來。這一講的核心是分清兩件事:thread block 之間系統可以任意排序,同一個 block 裡的 thread 則保證同時存在,所以 block 能用 shared memory 和 __syncthreads() 合作,也所以一個 SM 能塞幾個 block 由暫存器與 shared memory 的量決定。

通用處理器為什麼浪費能量——硬體專用化、Tensor Core、TPU 脈動陣列與資料流架構|Stanford CS149 第 10 堂

L10 從一條式子出發:功耗固定時,效能只能靠「每個運算花多少焦耳」來換,而通用處理器把大部分能量花在取指令、解碼、搬資料,不是在算。投影片的經驗法則是 GPU 比 CPU 好約 10 倍 perf/watt,固定功能 ASIC 可達 100–1000 倍。接著用同一套標準(分塊 tensor、非同步計算與記憶體、運算單元直接互傳)檢視 H100 的 Tensor Core 與 TMA、Google TPU 的脈動陣列,以及可重組資料流架構。

處理器很快,資料送不過來——延遲 vs 頻寬,以及 ISPC 教你分清「抽象」與「實作」|Stanford CS149 第 3 堂

L3 前半用高速公路與洗衣服的比喻分開延遲與頻寬,再算給你看:向量逐元素相乘在 V100 上效率不到 1%,因為記憶體送資料的速度追不上 ALU。後半的主題是「抽象 vs 實作」:ISPC 讓你用 SPMD 的方式思考(一群 program instance 各做一份),編譯器卻用 SIMD 指令實作。把這兩層混在一起,是這門課最常見的困惑來源。

Locality、通訊與 arithmetic intensity:為什麼少搬資料比多開核更重要|Stanford CS149 第 6 堂

CS149 L6 要你把「通訊」看得很廣:處理器和 cache、和記憶體、和另一台機器之間的資料搬移都算。現代平行處理器的算力遠高於頻寬,所以 arithmetic intensity(每搬一單位資料做多少計算)決定了你能不能把硬體餵飽。提高它的手段有三類:改分配方式減少必要通訊、用 blocking 與 loop fusion 減少 cache 造成的額外通訊、用分散與錯開存取降低 contention。

多核、SIMD、硬體多執行緒,三種平行各解決什麼問題|Stanford CS149 第 2 堂

CS149 Fall 2025 第二講用一個計算 sin(x) 的迴圈,依序加上三個想法:把電晶體拿去做更多核心(multi-core)、讓一道指令同時驅動多個 ALU(SIMD)、在同一個核心上交錯執行多個執行緒來隱藏記憶體延遲(hardware multithreading)。前兩個增加運算能力,第三個讓運算單元在等記憶體時不閒著。結論是三個條件:平行工作要夠多、同一組工作要跑同樣的指令、平行工作要比 ALU 更多才能隱藏延遲。

在四核 CPU 上量 speedup,並解釋它為什麼不是線性|Stanford CS149 程式作業 1/書面作業 1

PA1 程式寫得不多,重點是分析:六個程式分別練 threads 的工作分配、SIMD 遮罩、ISPC gang 與 task、輸入資料如何影響 SIMD 效率、頻寬受限的 saxpy,以及用計時找 K-Means 的熱點。Written 1 則用紙筆題練峰值吞吐量、指令相依、管線、多執行緒藏延遲與 SIMD divergence。官方評分以 Stanford myth 機器為準,校外可以在自己的機器跑,但數字不能直接對照。

從零打造 task execution library——thread pool、sleep 到有依賴的 task graph|Stanford CS149 程式作業 2

CS149 PA2 要你用 C++ 寫一個多核 CPU 上的任務執行庫,而且要寫四次:每次 run() 都開 thread、改成 spinning 的 thread pool、改成會睡覺的 thread pool,最後擴充成非同步、有依賴的 task graph。每一步都得是完全正確的系統,並跟官方參考實作比速度。官方評分機器是 AWS c7g.4xlarge;校外可以在自己的多核機器上跑,但數字不能直接和官方比。

與 Written 2:CUDA 圓形渲染器,順序正確與速度要一起拿|Stanford CS149 程式作業 3/書面作業 2

PA3 有三部分:把 SAXPY 改寫成 CUDA 並分開計時、用 exclusive scan 實作 find_repeats、再寫一個又對又快的 CUDA 圓形渲染器(85 分)。渲染器的難點是半透明圓的混色不可交換,每個像素都得照輸入順序更新,而起始程式碼一個圓一個 thread 的做法兩樣都沒守住。Written 2 則是五題計分題(fusion、SIMD 利用率、用 barrier 取代鎖、用資料平行原語處理圖、粒子模擬的鎖)加 14 題練習。校外要自備 NVIDIA GPU,本文不提供解答。

在 Trainium2 上自己搬資料——NKI、SBUF/PSUM 與 fused conv+maxpool|Stanford CS149 程式作業 4/書面作業 3

PA4 把你丟到 AWS Trainium2 的一顆 NeuronCore 上。這裡沒有 cache 幫你決定什麼資料留在晶片上:SBUF(28 MiB)與 PSUM(2 MiB)都要你用 dma_copy 明確搬進搬出,partition 維度最多 128。Part 1 用 vector add 和 transpose 教你這些限制與 DMA 成本,Part 2 要你把 convolution 拆成一串 matmul、再和 max pool 融合成一個不落地到 HBM 的 kernel。Written 3 用 line buffer、兩次 box blur、softmax 硬體與 metapipelining 練同一件事:把中間結果留在晶片上。環境需要課程 private AMI 與付費 capacity block,校外實質只到 A2。

在 H100 上寫最快的 kernel:五道 AI kernel 題,評分看工作日誌不看排名|Stanford CS149 程式作業 5

CS149 Fall 2025 的最後一份程式作業是開放式的:從 Histogram、1D occupancy decoder、FlashAttention、3D 熱方程 RK4、SwiGLU 五題挑一題以上,在 H100 上把 PyTorch baseline 調快,可以用 CUDA、Triton 或 TileLang,也允許用 LLM。分數不看速度門檻,看你交的工作日誌能不能說清楚每一步量了什麼、推出什麼假設、為什麼停手。H100 job queue 與排行榜要 SUNet ID,校外只能在自己的 NVIDIA GPU 上用 eval.py 跑。

拿到一個程式,怎麼把它平行化?——分解、分配、協調,以及 Amdahl 定律|Stanford CS149 第 4 堂

L4 給了一套平行化的思考流程:先分解(decomposition)找出彼此獨立的工作,再分配(assignment)給工作者,再協調(orchestration)通訊與同步,最後對應到硬體。Amdahl 定律提醒你循序部分決定 speedup 上限。貫穿全講的例子是 2D 網格解算器:原本的相依關係很難平行,改用紅黑著色換一種更新順序後,就能用資料平行或共享位址空間兩種模型寫出來。

怎麼替專用硬體寫程式——ThunderKittens 管住 H100 的非同步,資料流架構用 metapipeline 換掉它|Stanford CS149 第 11 堂

L11 問的是:硬體為 AI 專用化之後,程式設計師要付出什麼?投影片以 H100 為例:要吃滿 Tensor Core,就得用 16×16 tile、讓 TMA 非同步搬資料、讓 producer 與 consumer warp 管線化,寫起來很複雜,所以有了 ThunderKittens 這類 DSL。另一條路是資料流架構(SambaNova SN40L):用 map/reduce/zip 等平行模式描述計算,編譯器做分塊、metapipelining 與佈局,投影片說它能把 Llama 3.1 8B 的整個 decoder 融成一個 kernel。

記憶體一致性:write buffer 讓 r1 = r2 = 0 變成可能|Stanford CS149 第 15 堂

Coherence 只管單一位址;memory consistency 管的是不同位址之間的讀寫,在別的 thread 眼中以什麼順序生效。CS149 L15 用兩個 thread、兩個變數的例子說明:sequential consistency 下 r1 = r2 = 0 不可能,但每顆現代處理器都有的 write buffer 會讓讀跑到寫前面,於是它變成可能。TSO、PSO、weak ordering 依序放寬更多順序換取效能,fence 與同步原語再把需要的順序補回來。對應用程式設計師的結論很短:寫沒有 data race 的程式,用同步函式庫,C11、C++11、Java 5 就保證你看到 sequential consistency。

Transactional memory 與 Written 4:把「這段要原子」交給系統|Stanford CS149 第 17–18 堂/書面作業 4

粗鎖好寫但慢,細鎖快但容易寫錯。Transactional memory 讓程式設計師只宣告 atomic { },由系統負責原子性與隔離。CS149 L17 講動機(failure atomicity、composability)與設計空間:資料版本管理分 eager(undo log)與 lazy(write buffer),衝突偵測分 pessimistic 與 optimistic。L18 拆 STM 的執行期資料結構與 McRT 演算法,再講 HTM 怎麼用 cache 的 R/W 位元加上 coherence 協定偵測衝突,最後是 Intel Haswell 的 RTM。Written 4 則把 MSI、LL/SC、鎖與記憶體順序、雙向 linked list 的細粒度鎖串成四題。

單核為什麼不再變快,以及「快」為什麼不等於「有效率」|Stanford CS149 第 1 堂

CS149 Fall 2025 第一講先定義 speedup,再用三個課堂示範說明通訊與負載不均會吃掉加速比。接著解釋單核效能為什麼停滯:superscalar 能挖的指令層級平行大約在每時脈發四道指令就用完,時脈又被功耗牆擋住,所以效能只能靠多核與專用硬體。最後一段把焦點轉到效率:取一次 DRAM 的延遲約是 L1 cache 的 60 倍,搬 64 bits 的能耗是一次整數運算的上千倍,高效率幾乎都歸結到高效率地存取資料。

工作分配與排程:從 work queue 到 Cilk 的 work stealing|Stanford CS149 第 5 堂

負載平衡的難處在於它和排程成本互相拉扯:任務切得越細越好平衡,但每次領任務都要付同步成本。CS149 L5 先把選項排成一條從 static 到 dynamic 的連續光譜,再拆解 Cilk 的執行期:每個 worker 一條 deque,spawn 時先跑 child、把 continuation 留給別人偷,閒置的 thread 從別人 deque 的頂端偷走最大塊的工作。

Actor-Critic 與價值估計——先學會判斷好壞,再多做好事|Stanford CS224R 第 4 堂

Policy gradient 只能從實際拿到的獎勵判斷好壞,資料用得很浪費。Actor-critic 多訓練一個價值函數(critic)來估計「這個狀態有多好」,再用它算 advantage 去加權 policy(actor)的梯度。估計價值有三條路:用整條 rollout 的獎勵總和直接監督(Monte Carlo)、用「這一步獎勵加上自己對下一個狀態的估計」監督(bootstrap),或折衷的 n 步回報。L4 最後把它推到 off-policy:先在同一批資料上多走幾步(這是 PPO 的起點),再用 replay buffer 重用所有舊資料(這是 SAC 的起點)。

深度強化學習:課程定位與閱讀路線|Stanford CS224R 課程總覽

CS224R 是 Chelsea Finn 在 Stanford 教的深度強化學習課,從模仿學習一路講到 LLM 的 RL 和機器人基礎模型。Spring 2026 的 17 份投影片、三份作業的題目與起始碼、default project 規格與起始碼都能匿名下載,本系列評為 A3(足以自學)。缺口是 2026 錄影只在 Canvas、期中考卷與解答不公開、HW2 和 HW3 規定在 Modal 上跑。公開錄影是 Spring 2025 版,本系列把它當補充,逐講標出差異。

用 SFT、IPO、RLOO 微調 LLM 解 Countdown|Stanford CS224R 主題單元

CS224R Spring 2026 的 default project 要你在 Qwen2.5-0.5B Base 上,針對 Countdown 算術推理任務依序實作三個階段:SFT 暖身、IPO 偏好最佳化、用規則式 verifier 當獎勵的 RLOO,三者用同一套 vLLM 評估比較,再做一個自選的研究延伸。實作部分禁止用 SFTTrainer 這類高階 trainer,也禁止任何 AI 工具協助,只有延伸部分例外。延伸占報告成績的一半,看的是方法和紀錄,不是分數。起始碼和資料集都公開,校外讀者缺的是 Modal credits 和 autograder。

Deep RL 的前沿問題,以及怎麼做研究|Stanford CS224R 第 18 堂

CS224R 最後一講分三段:先把整學期的方法收成一個工具箱,再列七個還沒解決的問題(沒有可驗證獎勵的領域、怎麼用 prior data、world model、怎麼 scale、安全、幻覺與校準、通才系統的評估),最後用一半的篇幅講怎麼做研究:同時要有重要的問題和可行的計畫、先把風險挪到最前面、及早考慮轉向、研究成果要分享出去才算數。配著 2026 年 244 份公開的期末專題報告一起讀,最容易看出這些原則落地的樣子。

階層式 RL 與模仿學習|Stanford CS224R 第 15 堂

長 horizon 任務難,是因為要走過的狀態太多、犯錯和卡住的機會也多。CS224R 第 15 講的答案是拆成兩層:高層 policy 出子目標,低層 policy 以較高頻率執行。真正要做的設計決定有三個:子目標用什麼表示、兩層各自拿什麼監督、什麼時候換下一個子目標。投影片也坦白,階層和「單一 policy 加 chain of thought」誰比較好,還沒有定論。

Flappy Bird 上的回歸式 BC、Flow Matching 與 DAgger|Stanford CS224R 作業 1

CS224R Spring 2026 的 HW1 用一個自製的 Flappy Bird 環境考模仿學習:policy 一次預測 20 步目標高度、只執行前 10 步。你要依序寫出 MSE 回歸式 BC、flow matching policy 和 DAgger,並在 easy 與 hard 兩種模式下比較。題目 PDF、LaTeX 模板和起始碼都能匿名下載,CPU 也跑得動;解答、autograder 和 Gradescope 不公開。這篇整理每一題要實作什麼、要回答什麼,不寫解答。

Gridworld Q-learning、PPO 與 Sawyer 鐵鎚任務|Stanford CS224R 作業 2

CS224R Spring 2026 的 HW2 分三段:先在 5×4 的格子世界用表格型 Q-learning 看 reward 設計怎麼改變學到的路徑;再用 GAE 加 PPO clip 解一個只在完成時給 1 分的鐵鎚任務;最後用 BC 預訓練、critic ensemble 和更高的 UTD 做 off-policy actor-critic,並比較兩條學習曲線。題目、起始碼和算力指南都公開,但作業只支援 Modal,課程 credits 只發給修課學生。

AWAC、IQL 與 AntMaze 上的 stitching|Stanford CS224R 作業 3

CS224R Spring 2026 的 HW3 要你從零補完兩個 offline RL 演算法:AWAC 和 IQL,並在 D4RL 的 AntMaze 上比較。Problem 1 在 antmaze-umaze 和 antmaze-medium-diverse 跑 AWAC;Problem 2 先比較 IQL 的 expectile ζ = 0.2 和 0.9,再用較好的值跑 medium-diverse,最後在一份最高 return 只有 −46 的 PointMass 資料上,看 IQL 能不能拼出比資料更好的路徑,並跟只取前 10% 軌跡的 filtered BC 比較。題目 PDF、LaTeX 模板和起始碼都公開,但作業規定在 Modal 上跑,課程 credits 只發給修課學生。本文只整理題目和環境,不寫解答。

模仿學習與能表達多峰分佈的 policy|Stanford CS224R 第 2 堂

CS224R Spring 2026 第二講處理模仿學習的兩個失敗模式。第一個是示範有多種合理做法時,回歸只學到平均值;解法是把 policy 換成生成模型(高斯混合、離散化加自迴歸、diffusion/flow matching),再加上 action chunking。第二個是 compounding errors:policy 一犯錯就走到示範沒涵蓋的狀態;解法是 DAgger 和 human-gated DAgger 收集修正資料。前兩部分就是 HW1 的內容。

把做決策寫成 RL 問題|Stanford CS224R 第 1 堂

CS224R Spring 2026 第一講做三件事:交代課務、說明為什麼要學 deep RL、把「行為」寫成可以學的東西。核心是一組定義:state、action、trajectory、reward、policy,以及「最大化期望總獎勵」這個目標。最後用一個例子收尾:拿 ℓ2 回歸去模仿一群要切換車道、一群要直行的駕駛,policy 會學到兩者的平均值,一個沒人示範過的半切換動作。這個問題是 L2 的起點。

Meta-RL——讓 agent 學會怎麼快速學新任務|Stanford CS224R 第 13 堂

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

Model-Based RL——學一個模擬器,然後別太相信它|Stanford CS224R 第 11 堂

Model-based RL 先學一個預測 s_{t+1} 的 dynamics model,再拿它做兩件事:生成額外的訓練資料(Dyna、MBPO),或在執行時往前想幾步再行動(planning)。CS224R 第 11 講的主線是怎麼不被模型誤差拖垮:合成資料只從真實狀態出發跑短 rollout、用多個模型的 ensemble 平均掉誤差、長 horizon 的 planning 在尾端接一個 value function。模型值不值得學,取決於它比 policy 好學還是難學。

多任務與 Goal-Conditioned RL——共享權重,也共享資料|Stanford CS224R 第 12 堂

多任務 RL 把「任務是哪一個」當成狀態的一部分:s = (s̄, z_i),於是它還是一個普通的 MDP,標準 RL 演算法照樣能用。CS224R 第 12 講講兩種共享:權重共享(一個網路以 z_i 為條件做所有任務)和資料共享(hindsight relabeling:把為任務 A 收的資料改標成任務 B 的資料)。Goal-conditioned RL 是特例,任務就是要到達的目標狀態;用「最後到達的狀態」當目標重新標記,稀疏獎勵的探索問題就緩解很多。資料共享有三個前提:dynamics 跨任務一致、reward 能算、演算法是 off-policy。

Off-Policy Actor-Critic——PPO 與 SAC 的共同骨架|Stanford CS224R 第 5 堂

PPO 和 SAC 都在回答同一個問題:一批花錢收來的資料,能不能多用幾次。PPO 對同一批資料多走幾步梯度,用 clip 把新舊 policy 的比值鎖在 1±ε 之內;SAC 把所有歷史資料放進 replay buffer,改學 Q(s, a),讓舊資料也能評估新 policy。前者穩、好調,後者省資料、難調。

Offline RL——不能再互動時,Q-learning 為什麼會壞掉|Stanford CS224R 第 7 堂

CS224R Spring 2026 第七講處理一個問題:手上只有一批別人收的資料、不能再跟環境互動時,要怎麼學出比資料更好的 policy。直接拿 SAC 這類 off-policy 演算法來訓練會壞掉,因為 Q-function 在資料沒出現過的動作上亂估,policy 又專挑被高估的動作。投影片給兩類解法:只在資料裡的動作上訓練 policy(filtered BC、AWR、AWAC),以及用不對稱的 expectile loss 估計比資料更好的 policy 的價值、完全不查詢資料外的動作(IQL)。兩者都能做到模仿學習做不到的事:把不同軌跡的好片段拼起來。

Policy Gradients——不知道環境怎麼運作,也能直接對 policy 求梯度|Stanford CS224R 第 3 堂

Policy gradient 是 CS224R 的第一個線上 RL 演算法。它的梯度長得跟模仿學習的梯度幾乎一樣,只是每條軌跡多乘上一個獎勵權重:好結果的動作變得更可能,壞結果的動作變得更不可能。原始版本雜訊很大,L3 用兩招降低變異:只算「未來」的獎勵(causality)和減掉平均獎勵(baseline)。它也是 on-policy 的,每走一步梯度就要重新收資料;用 importance sampling 加上 KL 限制,才能在同一批資料上多走幾步。

Q-learning 與它的穩定化|Stanford CS224R 第 6 堂

Q-learning 把 actor-critic 的 actor 拿掉:直接學最優 Q 函數,要行動時取 argmax。代價是它不保證收斂,連線性 Q 都可能發散。CS224R 第 6 講用三個工程技巧把它拉回來:target network 讓目標值暫時不動、Double Q 拆開「選動作」和「估價值」來壓低高估、n 步回報用一點偏差換速度。

獎勵從哪裡來——從範例與偏好學獎勵|Stanford CS224R 第 8 堂

CS224R Spring 2026 第八講先花幾頁複習 offline RL,再問一個前面七講都跳過的問題:獎勵從哪裡來?遊戲有分數,真實世界的機器人、對話和自駕通常沒有。投影片給兩條路。第一條是從成功範例訓練一個目標分類器當獎勵,但 RL 會去鑽分類器的漏洞,解法是把 policy 走過的狀態不斷加進負例,跟 GAN 同一個結構。第二條是請人比較兩條軌跡哪條好,用 Bradley-Terry 式的 log σ(r(τw) − r(τl)) 學獎勵,這也是 LLM 的 RLHF 在用的方法。整講的第一個重點只有一句:獎勵不能視為理所當然。

用 RL 改進機器人基礎模型(VLA)|Stanford CS224R 第 17 堂

只用模仿學習訓練的 VLA,成功率常卡在 80% 左右,要讓機器人自己上工卻常需要 99% 以上。CS224R 第 17 講把「怎麼在真機上用 RL 改進 VLA」拆成三條路:把 RL 改寫成監督學習(iterated offline RL)、在 VLA 的表示或擴散雜訊上另外學一個小 policy、學一個小 policy 去修改 VLA 的動作。投影片自己說這是還沒解決的研究問題,內容是近期主題加講者觀點。

LLM 推理的 RL 與 test-time compute|Stanford CS224R 第 10 堂

CS224R Spring 2026 第十講由 OpenAI 的 Noam Brown 客座,論點只有一條:reasoning model 替 scaling 開了新的維度,把算力從訓練推到推論。他從自己做撲克 AI 的經驗講起,再用西洋雙陸棋、西洋棋和圍棋說明「推論時多想一下」一直都有用;接著談 LLM 怎麼做到這件事:chain of thought、多數決、o1/o3、GRPO 和 DeepSeek-R1-Zero。後半段主張整個領域要為大規模 test-time compute 重新思考:multi-agent、以分數對算力作圖的評估方式、安全評估的預算假設。投影片以圖為主,本文只寫投影片上看得到的論點。

RLHF、DPO 與偏好最佳化|Stanford CS224R 第 9 堂

CS224R Spring 2026 第九講由 Archit Sharma 客座,投影片註明改寫自 CS224N。主線是一條推導鏈:instruction tuning 解決不了「沒有標準答案」和「錯誤輕重不同」,所以改成最大化人類偏好;人類評分太貴又不準,所以改用成對比較訓練 Bradley-Terry reward model;RLHF 拿它當獎勵、加 KL 懲罰做 policy gradient;DPO 則利用 KL 約束問題的封閉解,把 reward 寫成 policy 的對數比值,整件事變成一個二元分類損失。最後一段談前沿:reward hacking、可驗證獎勵,以及用 AI 回饋取代人類回饋。

Sim-to-Real 機器人學習|Stanford CS224R 第 16 堂

模擬器便宜、快、安全,還附贈真實世界拿不到的標籤,但它永遠和真實世界有落差。CMU 的 Guanya Shi 在 CS224R 第 16 講把縮小落差的方法分成三類:domain randomization 讓一個 policy 在很多種物理參數下都能用;teacher-student 先用特權資訊訓練老師、再讓只看得到真實感測器的學生去模仿;real2sim2real 用真實資料把模擬器修得更像。進階題目是用人類動作資料定義任務,以及挑選適合 sim2real 的 RL 演算法。

3D 視覺——同一個形狀,五種存法|Stanford CS231N 第 15 堂

CS231N 第 15 講用一個問題貫穿全場:3D 形狀要用什麼資料結構存,神經網路才吃得進、吐得出?投影片依序走過 depth map/surface normal、voxel、point cloud、triangle mesh、implicit surface 五種表示,每種各配一個代表架構(全卷積深度預測、3D 卷積、PointNet、Pixel2Mesh 與 Mesh R-CNN、DeepSDF),再到 NeRF 與 3D Gaussian Splatting 的速度取捨,最後點名 VGGT、TRELLIS、Marble 等 2025–2026 的新模型。2025 錄影用的是另一套投影片,順序與重點不同。

kNN、Softmax、兩層網路與全連接網路|Stanford CS231N 作業 1

CS231N 作業一占總成績 12%,2026 年 4 月 16 日截止,五個 Colab notebook 全部在 CIFAR-10 上用 numpy 手寫:Q1 kNN 要寫出兩層迴圈、一層迴圈、零迴圈三種距離計算;Q2 Softmax 從 naive 到向量化再到 SGD;Q3 把 affine、ReLU、softmax 組成兩層網路;Q4 改用 HOG 與色彩直方圖特徵;Q5 推廣成任意層數,並實作 Momentum、RMSProp、Adam。起始碼 65 KB,公開可下載;拿不到的是 Gradescope 評分。本文只講結構與目標,不給解答。

BatchNorm、Dropout、CNN、PyTorch 與 RNN Captioning|Stanford CS231N 作業 2

CS231N Spring 2026 的 A2 佔總成績 18%,五個 notebook 從手寫 BatchNorm/LayerNorm、Dropout、卷積與池化的 forward/backward,一路走到 PyTorch 的三層抽象,最後用 PyTorch 在 COCO 上做 RNN 影像描述。轉折點在 Q4:前三題的梯度要自己推,Q5 起交給 autograd,再用數值梯度檢查驗證。官方投影片提醒這是三份作業裡最長的一份。

Transformer Captioning、自監督學習、DDPM、CLIP 與 DINO|Stanford CS231N 作業 3

CS231N Spring 2026 的 A3 占總成績 15%,四個 Colab notebook 把 L8、L12–L14、L16 各自落成一份實作:Q1 手寫 multi-head attention、Transformer decoder 做 COCO captioning,再組一個 ViT 在 CIFAR-10 上訓練;Q2 實作 SimCLR 的資料增強與對比損失,比較有無自監督預訓練的線性分類;Q3 寫 DDPM 的加噪、UNet、去噪損失、取樣與 classifier-free guidance,生成文字條件的 32×32 emoji;Q4 用預訓練 CLIP 做相似度、零樣本分類與檢索,再用 DINO 特徵只靠一幀標註做影片分割。本文只講題目結構、檔案與目標,不給解答。

Attention、Transformer 與 ViT|Stanford CS231N 第 8 堂

CS231N Spring 2026 第 8 講從 RNN 翻譯模型的瓶頸出發,把 attention 抽象成一個作用在「向量集合」上的運算,再推到 self-attention、masked 與 multi-head,最後證明整層只是四次矩陣乘法。Transformer block 由 self-attention、LayerNorm、殘差與 MLP 組成;ViT 把 224×224 的圖切成 16×16 的 patch 當 token。講次結尾列出 2017 年後常見的四個改動:Pre-Norm、QK-Norm、SwiGLU 與 MoE。

用 CNN 做影像分類——從手工特徵到卷積與池化|Stanford CS231N 第 5 堂

兩層網路會把 32×32×3 的圖片拉平成 3072 維向量,空間結構就此消失。CS231N L5 的答案是卷積層與池化層:卷積用一組小濾波器在圖上滑動,同一組權重用在每個位置;池化負責降採樣,沒有可學參數。兩者都有平移等變性。記住一條公式就能算每一層的輸出尺寸:(W − K + 2P) / S + 1。

電腦視覺的深度學習:18 堂課表與 10 週自學路線|Stanford CS231N 課程總覽

CS231N 是 Stanford 的電腦視覺深度學習課,Spring 2026 版的 16 講投影片、三份作業的題目頁與起始碼、課程筆記與專題規範都公開,本系列評為 A3(足以自學)。缺口有三個:2026 錄影只放在 Canvas、L17 與 L18 沒有投影片、期中考不公開。可以拿 2026 的投影片和作業,配 2025 年的 YouTube 錄影,照官方課表排 10 週。

物件偵測、影像分割與模型可視化|Stanford CS231N 第 9 堂

CS231N Spring 2026 第 9 講把「整張圖一個標籤」推到「每個像素、每個物件」:語意分割用全卷積網路先降採樣再升採樣(U-Net 再接回高解析特徵);偵測從 R-CNN 的約 2000 次 CNN forward,一路優化到 Fast R-CNN、Faster R-CNN 的 RPN、單階段的 YOLO,再到不用 anchor 的 DETR;Mask R-CNN 在每個 RoI 上多預測一張 28×28 遮罩。最後一段講 saliency、CAM 與 Grad-CAM。課表列的對抗樣本、DeepDream 與風格轉換,2026 和 2025 的投影片都沒有。

大規模分散式訓練——把一個模型切到上萬張 GPU|Stanford CS231N 第 11 堂

CS231N 第 11 講以 Llama3-405B 為貫穿範例,先講 GPU 硬體與叢集(H100、8 卡伺服器、24,576 張 GPU 的叢集),再把 Transformer activation 的四個維度對應到四種平行化:切 batch 是資料平行(再演進成 FSDP、HSDP),切序列是 context parallelism,切層是 pipeline parallelism,切通道是 tensor parallelism。中間插入 activation checkpointing(用重算換記憶體)和一份實用的擴展配方,並用 Model FLOPs Utilization(MFU)當調參目標:超過 30% 算好,超過 40% 算優秀。

生成模型(二)——Diffusion 為什麼加噪再去噪就能生成圖片|Stanford CS231N 第 14 堂

CS231N Spring 2026 的 diffusion 講次沒有從 DDPM 的數學開始,而是先說「這個領域的術語和符號一團亂」,然後只教一個乾淨的現代版本:rectified flow。訓練時在資料和雜訊之間取一個點,讓網路預測從資料指向雜訊的速度;生成時從雜訊出發,往反方向走約 50 步。接著一路疊上實務零件:classifier-free guidance、偏重中間雜訊的排程、在 VAE latent 上做 diffusion、用 Transformer(DiT)當去噪器、蒸餾減少步數。最後才把 VP、VE、ε/v 預測收進一個「廣義 diffusion」框架,並交代 latent variable、score function、SDE 三種數學觀點。

生成模型(一)——自迴歸、VAE 與 GAN 各自在最佳化什麼|Stanford CS231N 第 13 堂

CS231N Spring 2026 的生成模型第一講,先把「判別模型學 p(y|x)、生成模型學 p(x)」講清楚:所有可能的圖片要搶同一份機率質量,所以生成模型能拒絕不合理的輸入。接著用一張分類圖把生成模型分成「算得出 p(x)」和「只能取樣」兩群,再依序講兩個算得出(或近似算得出)的:自迴歸模型用鏈鎖律把 p(x) 拆成逐步預測,太慢是它在原始像素上的死穴;VAE 算不出 p(x),改成最大化它的下界 ELBO,重建項和先驗項會互相拉扯。課表把 GAN 列在這一講,但 2026 與 2025 的投影片都把 GAN 放到下一講開頭,本文一併整理,讓三種範式在同一篇對照。

影像分類、kNN 與線性分類器|Stanford CS231N 第 2 堂

L2 從一個問題出發:電腦看到的是一堆 0 到 255 的數字,要怎麼認出貓?寫規則行不通,所以改用 data-driven 方法:收集資料、訓練、在新圖上評估。第一個分類器是 kNN,它教會你 train/val/test 怎麼切,但像素距離沒有語意。第二個是線性分類器 f(x,W)=Wx+b,可以從代數、視覺(模板)、幾何(超平面)三個角度看,再用 softmax 把分數變成機率,用 −log 機率當 loss。

電腦視覺從哪裡來,這門課要走到哪裡|Stanford CS231N 第 1 堂

CS231N 2026 的第一講分成兩份投影片。第一份用一條時間軸講視覺與深度學習的歷史:從 Hubel & Wiesel 的貓實驗、Marr 的視覺表示階段,到 Neocognitron、backprop、LeNet,再到 ImageNet 與 AlexNet 把兩條線接起來。第二份講課程地圖、評分與規則,並把作業全面搬到 Colab。讀完這一講,你會知道後面 17 講各自在補哪一塊。

神經網路與反向傳播——計算圖上的「上游乘以本地」|Stanford CS231N 第 4 堂

L4 前半把線性分類器 f = Wx 換成兩層網路 f = W₂ max(0, W₁x),說明拿掉 max 這個激活函式就會退回線性分類器。後半回答網路變深之後梯度怎麼算:把函式畫成計算圖,每個節點只要知道自己的本地梯度,再乘上從後面傳回來的上游梯度。add 分配梯度、mul 交換、max 路由、copy 相加,四個模式就能追蹤任何網路。最後推到矩陣:dL/dx 永遠和 x 同形狀,所以不要真的建出 Jacobian。

循環神經網路與影像描述——RNN、LSTM 與 captioning|Stanford CS231N 第 7 堂

RNN 用同一組權重,在每個時間步更新一個隱藏狀態,所以能處理任意長度的序列。CS231N L7 從手工造一個偵測連續 1 的 RNN 講起,接著是字元級語言模型、把 CNN 特徵接進 RNN 做影像描述,再用梯度流解釋為什麼 vanilla RNN 難訓練:梯度爆炸靠 gradient clipping,梯度消失靠改架構,也就是 LSTM。最後把 Mamba 這類 state space model 稱為「現代 RNN」。

正則化與最佳化——從隨機亂試到 AdamW 與學習率排程|Stanford CS231N 第 3 堂

L2 給了分數函式和 loss,L3 回答「怎麼找到好的 W」。前半講正則化:在 data loss 旁邊加 λR(W),讓模型不要把訓練資料背得太好。後半是一條最佳化器的演進線:SGD 在窄長山谷裡會來回震盪,Momentum 累積速度,RMSProp 依每個維度調步伐,Adam 把兩者合起來再做偏差修正,AdamW 把 weight decay 移到動量計算之外。投影片最後的實務建議是:多數情況先用 Adam(W),SGD+Momentum 可能更好,但要花更多力氣調學習率與排程。

自監督學習——沒有標註,怎麼學到好的表示|Stanford CS231N 第 12 堂

CS231N 第 12 講的問題是:大規模訓練需要大量標註,能不能不靠人工標註學到好的表示?答案分三段。第一段是從影像變換自動產生標籤的 pretext task:預測旋轉、拼圖、補洞、上色,以及把遮罩比例拉到 75% 的 MAE。第二段是更通用的對比學習:InfoNCE 損失、需要大 batch 的 SimCLR、用佇列解耦 batch 與負樣本數的 MoCo,以及序列層級的 CPC。最後是不需要負樣本的 DINO:學生網路去預測動量老師的輸出,靠 centering 與 sharpening 避免崩塌。評估方式的核心是 linear probing:凍結編碼器,只訓練一層線性分類器。

訓練 CNN 與經典架構——正規化、初始化、遷移學習與 VGG 到 ResNet|Stanford CS231N 第 6 堂

CS231N 第 6 講的 2026 投影片標題是「Training CNNs and CNN Architectures」,分成「怎麼搭」和「怎麼訓練」兩半。架構只細講兩個:VGG 證明三層 3×3 卷積比一層 7×7 更深、參數更少;ResNet 讓層去學殘差 F(x) = H(x) − x,解決深網路連訓練誤差都更差的最佳化問題。訓練那半最實用的是遷移學習:資料不到約一百萬張,就先找大資料集上的預訓練模型。

影片理解——多了時間維度,模型要怎麼改|Stanford CS231N 第 10 堂

CS231N 第 10 講把影片看成「2D+時間」的 T×3×H×W 張量,再沿著一條效率主線往下走:先在短片段上訓練、測試時平均多個片段;架構從逐幀 2D CNN、late fusion、3D CNN,到用光流分出動作的 two-stream 與把 2D 權重「充氣」成 3D 的 I3D;2021 年後換成 Transformer,但 token 數會爆炸,於是有 divided space-time attention、Video Swin、MViT 與 tubelet。最後一段擴展到時序定位、影音多模態、VideoLLM 與長影片理解,並用 HourVideo 指出這塊還差得遠。

視覺與語言——從 CLIP 的對比學習到會看圖說話的多模態基礎模型|Stanford CS231N 第 16 堂

CS231N Spring 2026 的視覺與語言講次,先把課程前半的「一個任務一個模型」換成「基礎模型」:先用大量多樣的資料預訓練一個模型,再用微調、zero-shot 或 few-shot 接到許多任務。主角有三條線。第一條是 CLIP:用 4 億組網路圖文配對做雙向對比學習,再把類別名稱寫成句子,就能不經微調直接分類;它也有弱點,分不出「草地上的杯子」和「杯子裡的草」。第二條是 LLaVA、Flamingo 到 Qwen3-VL、Molmo 的視覺語言模型:把圖片特徵接進 LLM,讓模型看圖輸出文字。第三條是 chaining:讓 LLM 寫描述或寫程式,把現成的視覺模型串起來。

World Modeling/Robot Learning、Human-Centered AI 與期末專題|Stanford CS231N 主題單元

CS231N Spring 2026 的最後兩講沒有公開投影片:L17 在課表上只寫「World Modeling」與客座講者 Gordon Wetzstein,L18 只寫「Human-Centered AI」。校外讀者能看的是 2025 年的替代品:L17 當年是另一個主題 Robot Learning(Yunzhu Li,有投影片與錄影),L18 是李飛飛的錄影,沒有投影片。本文把三者分開標示年份,不把 2025 的內容寫成 2026。後半講期末專題:占 35%,分 Applications 與 Models 兩條 track,專案必須處理像素,交付物是一段提案、三次 milestone check-in、6–8 頁報告與海報。

有效視野、reward hacking、Bellman residual 與 RiverSwim|Stanford CS234 作業 1

CS234 Winter 2026 的作業一共 68 分、四題:庫存 MDP 看視野與折扣怎麼改變最佳策略(8)、自駕車的 proxy reward 為什麼讓 AI 車乾脆不上匝道(5)、用 Bellman residual 界住貪婪策略的表現(30),以及在 RiverSwim 上親手寫 value iteration 與 policy iteration(25)。三題紙筆在練同一件事:你寫下的 reward、γ 與價值函數,不一定是你以為的那個目標。

REINFORCE、baseline 與 PPO 實作,外加策略誘導的分布|Stanford CS234 作業 2

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 條學習曲線的程式。

Hopper 上的 reward engineering、RLHF、DPO 與 best arm identification|Stanford CS234 作業 3

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)。

multi-armed bandit、regret 與 UCB|Stanford CS234 主題單元

CS234 L9 與 L10 前半把「探索」從 ε-greedy 這種經驗法則,變成可以證明的東西。先定義 regret:跟一直選最好的手臂相比,你少拿了多少。greedy 會鎖死在次佳手臂,固定 ε 的 ε-greedy 永遠有 ε 比例在亂選,兩者的 regret 都隨時間線性成長。Lai-Robbins 下界說最好也要對數成長,而 UCB 靠「對不確定的手臂樂觀一點」做到了:Bandit Algorithms 定理 7.1 給出每隻次佳手臂只會被拉大約 16 log n / Δ² 次。

強化學習:先修、評分與 10 週自學路線|Stanford CS234 課程總覽

CS234 是 Emma Brunskill 在 Stanford 教的強化學習入門課,從有模型的 MDP 規劃一路講到策略梯度、RLHF/DPO、bandit 探索和 MCTS。Winter 2026 的 14 講投影片、三份作業的題目與起始碼、專題規格都能匿名下載,本系列評為 A3(足以自學)。缺口是官網沒有 2026 錄影、L15 與 L16 沒有投影片、期中考與 tutorials 不公開。公開錄影是 Spring 2024 版,本系列只拿它當補充;2024 有兩講 Offline RL,2026 投影片裡沒有對應內容。

DQN——deadly triad、experience replay 與 fixed Q-targets|Stanford CS234 主題單元

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。

資料效率 III——MDP 的 PAC、MBIE-EB、PSRL 與策略性探索|Stanford CS234 主題單元

前兩篇的 UCB 與 Thompson sampling 只處理單步決策。CS234 第 12 講把同一組想法搬進有狀態的 MDP:先換一把尺,用 PAC 限制「不夠好的步數」而不是總 regret;再看樂觀派的 MBIE-EB(計數+探索獎勵)與抽樣派的 PSRL(每個 episode 抽一個 MDP 來解)。狀態多到數不完時,計數失效,就改成在 Q-learning 目標上加 bonus,這是 Montezuma's Revenge 上贏過 ε-greedy DQN 的關鍵。最後一段問:探索策略能不能用學的?答案之一是 Decision-Pretrained Transformer。

Shane Gu〈World of World Modeling〉——世界模型是 model-based RL 裡的那個 model|Stanford CS234 主題單元

CS234 Winter 2026 的最後一份客座投影片,由 Google DeepMind 的 Shane Gu 主講,36 頁、沒有公開錄影。主線有三段:先用 Solomonoff induction 說「最好的預測就是找出最短的生成程式」,再把預測分成三個層次;接著把正向模型 F、逆向模型 Π 與 Q 寫在同一組符號裡,說明 shooting 與 direct collocation 兩種規劃方式怎麼各用一種模型,並把 TDM 與 Generalized Decision Transformer 解讀成「換了時間尺度的世界模型」;最後談影片模型能不能成為物理世界的基礎模型。

behavioral cloning、DAgger、inverse RL 與 MaxEnt IRL|Stanford CS234 主題單元

有專家示範、沒有 reward 時,CS234 L7 後半給三條路:直接用監督式學習抄動作(behavioral cloning),發現誤差會隨時間累積後改成邊跑邊問專家(DAgger),或者乾脆反推專家在最佳化什麼 reward(inverse RL)。反推 reward 會碰到「無限多組 reward 都解釋得了示範」的問題,feature matching 與最大熵原則是兩種收斂答案的方式。這一段是下一篇 RLHF 的前身:從示範換成偏好,問題結構幾乎一樣。

RL 是什麼、MDP 的語言|Stanford CS234 第 1 堂

CS234 Winter 2026 第一講先回答 RL 是什麼:在不確定之下,從經驗學會做好決策。它通常同時牽涉四件事:最佳化、延遲後果、探索、泛化。接著用火星探測車的七格世界,從 Markov process 一路加到 Markov reward process,定義 return、value function 和折扣因子,最後推出 MRP 的 Bellman 方程:可以直接解矩陣反轉,也可以用動態規劃迭代。加上動作之後就是 MDP,這是下一講的起點。

規劃+學習——MCTS、UCT 與 AlphaGo/AlphaZero|Stanford CS234 主題單元

到目前為止,CS234 都在替整個狀態空間算一個策略。第 13、14 講換一個問題:如果我只在乎「現在這一步」該怎麼走,能不能多花一點本地運算,做出更好的決定?從 simple Monte Carlo search、expectimax tree 到 MCTS,再把每個節點當成一個 bandit,就得到 UCT。AlphaZero 把 MCTS 跟一個同時預測策略與價值的網路綁在一起,用 self-play 互相推進。投影片借用 Silver et al. 2017 的圖回答三個問題:架構有多重要、MCTS 加了多少、需不需要人類資料。

有模型時怎麼規劃:policy evaluation、PI、VI|Stanford CS234 第 2 堂

CS234 Winter 2026 第二講假設世界模型已知,回答怎麼算出最好的 policy。先把 MDP 加上 policy 變回 MRP,用 Bellman backup 迭代評估 policy;再用 policy iteration 交替評估與改進,並證明每一輪都不會變差,最多 |A|^|S| 輪就停。另一條路是 value iteration:直接重複套用 Bellman 最佳化運算子,因為它在 γ < 1 時是 contraction,所以一定收斂。最後補上 finite horizon:這時最好的 policy 通常會隨剩餘步數改變。

沒模型時怎麼控制——ε-greedy、GLIE、Q-learning 與函數近似|Stanford CS234 主題單元

會評估之後,下一步是一邊收資料一邊把策略變好。CS234 第 4 講的路線是:ε-greedy 讓策略改進仍然單調;GLIE 規定探索要多到什麼程度、何時收手;Q-learning 在 GLIE 加上 Robbins–Monro 步長下會收斂到 Q*;最後把表格換成參數化的 Q̂(s,a;w),用 MC、SARSA 或 Q-learning 的目標做 SGD。代價是 deadly triad:函數近似、bootstrapping、off-policy 三者同時出現時,可能震盪或發散。

沒模型時怎麼評估策略——MC、TD(0) 與 certainty equivalence|Stanford CS234 主題單元

不知道轉移機率與 reward,要怎麼估一個策略值多少?CS234 第 3 講給三個答案:Monte Carlo 直接平均整條軌跡的回報(無偏、變異大、要等 episode 結束),TD(0) 用「一步 reward+下一狀態的估計值」當目標(有偏、變異小、每一步都能更新),certainty equivalence 先估模型再做動態規劃(最省資料、最貴的計算)。第 4 講開頭的 AB 例子把差別講到最清楚:同一批資料,MC 說 V(A)=0,TD 說 V(A)=0.75。

策略梯度——score function、REINFORCE、baseline 與 actor-critic|Stanford CS234 主題單元

策略梯度不學價值再導出策略,而是直接對策略參數 θ 做梯度上升。關鍵一步是把 ∇P(τ;θ) 改寫成 P(τ;θ)∇log P(τ;θ),動態模型在取 log 後消失,只剩策略自己的 score function。原始估計量無偏但雜訊很大,CS234 用三招降噪:只看動作之後的回報(REINFORCE)、減掉只依賴狀態的 baseline(證明它不引入偏差)、用 critic 估計的價值取代 Monte Carlo 回報(actor-critic)。

進階策略梯度——performance bound、KL、PPO 與 GAE|Stanford CS234 主題單元

Vanilla 策略梯度有兩個毛病:每批資料只走一步就丟,而且參數空間的距離不等於策略空間的距離,步長一大表現就崩。CS234 沿用 Joshua Achiam 的講法,從 performance difference lemma 出發,把新策略的表現改寫成舊策略資料上的 surrogate objective,再用 KL 散度界住近似誤差。最大化「surrogate 減 KL 懲罰」保證不退步,但理論常數太大,PPO 改用可調的 KL 懲罰或 clipping 近似它;advantage 則用 GAE 在偏差與變異之間折衷。

Bradley-Terry、RLHF 與 DPO 推導|Stanford CS234 主題單元

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 的客座。

Bayesian bandit、Thompson sampling 與 Gittins index|Stanford CS234 主題單元

CS234 L11 把探索的邏輯從「樂觀」換成「抽樣」。Thompson sampling 替每隻手臂維護一個後驗分布,每一步從後驗各抽一個值,選抽到最大的那隻;Bernoulli reward 配 Beta 先驗時,更新只是把成功或失敗次數加一。它剛好實作了 probability matching:選每隻手臂的機率,等於它是最佳手臂的後驗機率。在 Bayesian regret 下它跟 UCB 同階,在批次與延遲回饋的場景裡還比確定性的 UCB 更合適;代價是先驗錯得離譜時會表現很差。

價值對齊——對齊誰、對齊什麼|Stanford CS234 主題單元

整門 CS234 都假設 reward 是給定的。Winter 2026 的倫理與社會客座(Wanheng Hu,教材原本由 Dan Webber 發展)分兩次問:你真正想要的是什麼?第一次把「對齊」拆成三個目標:使用者的意圖、顯示偏好、客觀最佳利益,並用 RLHF 造成的 sycophancy 與個人 AI agent 當案例。第二次加入第四個目標:對使用者以外的人來說什麼是對的,再比較 top-down(寫下原則)、bottom-up(從範例學)與 participatory AI 三條路。結論沒有銀彈,但對齊有好壞之分。

Agentic LLM,讓模型查資料、叫函式、自己跑完一輪|Stanford CME295 第 7 堂

CME295 2025 版第 7 講用三塊補 LLM 的洞:RAG 補「知識停在訓練那天」,分成候選檢索與重新排序兩階段;tool calling 補「不能動手」,由後端執行模型寫出的函式呼叫;agent 用 ReAct 的觀察、規劃、行動迴圈把呼叫串起來。2026 版把這講改成 AI Agents,新增 context compaction、harness、coding agent、skills,是整個系列改最多的一講。

Transformer 與大型語言模型:九堂課從 Transformer 走到 AI agent|Stanford CME295 課程總覽

CME295 是 Stanford 的兩學分課,沒有作業,成績只看期中和期末各 50%。2025 版九堂的影片、投影片和兩份考卷解答全部公開;2026 版把 agent 那一講改成 context 壓縮、harness、coding agent 和 skills,還新增 LLM 系統、強化學習、Diffusion LLM 三整講。

Transformer 走出文字,LLM 不再從左寫到右|Stanford CME295 第 9 堂

CME295 最後一講 128 頁投影片分三段:用八張圖複習前八講、Transformer 怎麼用在影像上(ViT 與兩種 VLM 接法)、以及一次吐出多個 token 的 masked diffusion LLM,最後談研究與應用的下一步。這堂不在考試範圍;2026 版把 diffusion LLM 拉成獨立一講,第 9 講改以多模態為主。

Diffusion LLM 的三種雜訊、一條訓練目標與平行解碼的代價|Stanford CME295 2026 版 第 8 堂

CME295 2026 版第 8 講(11 月 20 日)把 diffusion LLM 拉成整講,課表列了 continuous、discrete、masked diffusion、訓練與推論五個子題。課前預寫版依 DDPM、D3PM、SEDD、MDLM、LLaDA 等原始論文整理:連續雜訊在文字上要付約 64 倍算力,[MASK] 吸收態勝出;訓練目標是乘上 1/t 的 masked cross-entropy;推論的速度來自每步多填幾格,但 LLaDA 主要結果其實每步只解一個 token,Fast-dLLM 靠信心門檻與近似 KV cache 才拿到最多 27.6 倍加速。

LLM 生成時的控制旋鈕,從 temperature、top-p 到 chain of thought|Stanford CME295 第 3 堂

CME295 第 3 講先把 LLM 定義成 decoder-only 的下一個 token 預測器,接著用 MoE 說明大模型為什麼每個 token 只用到一部分權重,主體則是生成時能調的旋鈕:greedy、beam search、top-k、top-p、temperature、guided decoding,以及 few-shot、chain of thought、self-consistency 三種 prompting 手法。2026 版把這講併進第 2 講,prompting 沒有獨立列在課表,但錄影仍有簡短帶到。

用 LLM 評 LLM,先防三種偏誤|Stanford CME295 第 8 堂

CME295 第 8 講從「人工評分又慢又貴、BLEU/ROUGE 看不懂換句話說」出發,講 LLM-as-a-Judge 的做法、位置/冗長/自我偏好三種偏誤與六條實務原則,再把 agent 的錯誤拆成工具選擇、工具執行、回答生成三段,最後用 MMLU、AIME、SWE-bench、HarmBench、τ-bench 說明 benchmark 各量什麼,以及 pass^k 和 Goodhart 定律。

reasoning model 怎麼學會想久一點,GRPO 又省掉了 PPO 的什麼|Stanford CME295 第 6 堂

CME295 第 6 講把 reasoning model 拆成三件事:先輸出推理鏈再給答案、用「答案對不對」這種可驗證獎勵跑 RL、用 GRPO 以同組答案的平均分當基準而不另訓 value model。DeepSeek-R1-Zero 只靠 RL,AIME 2024 pass@1 從 15.6% 升到 71.0%;而把 R1 的推理軌跡蒸餾給 Qwen-32B,分數還比直接對 32B 做 RL 高。

LLM 系統:同一個模型怎麼跑快好幾倍|Stanford CME295 2026 版 第 5 堂

2026 版 CME295 第 5 講「LLM systems」(10 月 30 日)課表列了 7 個主題:分散式訓練、推論最佳化、KV caching、speculative decoding、高效 kernel、FlashAttention、硬體取捨。本篇在開課前,用 2025 版第 3、4 講約 70 頁投影片加原始論文,把它們串成同一本帳:H100 每搬 1 byte 大約要做 295 次運算才吃得滿算力,而逐字生成時每讀 1 byte 權重只做約 1 次,所以多數加速手法都在想辦法少搬資料。

LLM 訓練的帳單,預訓練、SFT 與 LoRA 各花在哪裡|Stanford CME295 第 4 堂

CME295 第 4 講把 LLM 訓練拆成兩段:先用上兆個 token 做預訓練(Llama 3 用了 15 兆),再用數千到數百萬筆示範資料做 SFT,讓模型從「接話」變成「回答」。中間穿插一張省記憶體的地圖:ZeRO、FlashAttention、混合精度;最後用 LoRA 與 QLoRA 讓沒有大 GPU 的人也能微調,QLoRA 在 65B 模型上省下約 16 倍 VRAM。

SFT 教不會「別這樣回答」,RLHF 與 DPO 怎麼補上負面訊號|Stanford CME295 第 5 堂

SFT 只會叫模型模仿好答案,沒辦法告訴它哪種回答不行。CME295 第 5 講先教怎麼收集偏好對,再走 RLHF 兩步(約 1 萬筆人工標註訓練 reward model、約 10 萬筆用 PPO 調模型),最後用 DPO 把整套 RL 收成一條監督式 loss。2026 版把這講拆進第 3 講(訓練)與新增的第 4 講(強化學習)。

SFT、PPO、GRPO、on-policy distillation 其實是同一條 policy gradient|Stanford CME295 2026 版 第 4 堂

2026 版 CME295 第 4 講(10 月 16 日)把 RL 獨立成一講,課表列了數學記號、reward design、policy gradient、限制、PPO、GRPO、on-policy distillation 七項。本篇把這條數學線先推一遍:從 ∇log π 乘上一個分數出發,SFT 的分數是 1,PPO 用 value model 估,GRPO 用同組平均,on-policy distillation 用教師對每個 token 的 log 機率差。Qwen3 報告裡,從同一個起點出發,RL 花 17,920 GPU 小時做到 AIME'24 67.6,on-policy distillation 只花約 1/10(1,800 小時)就做到 74.4。

從切字到 Transformer,一句話怎麼被翻成另一種語言|Stanford CME295 第 1 堂

CME295 第 1 講用同一句「A cute teddy bear is reading.」串完整堂課:先切成 token,再變成向量,接著說明 RNN 為什麼記不住長句,最後用 self-attention 和 encoder-decoder 把它翻成法文。2026 版刪掉整節 NLP 任務與評估指標,把開場換成從 2017 到 agent 時代的時間軸。

同一台 Transformer,怎麼長出 BERT、GPT 和各種 attention 變體|Stanford CME295 第 2 堂

CME295 第 2 講把原始 Transformer 拆開改裝:位置資訊從「加在 embedding 上」一路改到 RoPE「在 attention 裡旋轉 Q 和 K」;attention 用 sliding window 和 MQA/GQA 省成本;再把模型分成 encoder-only、encoder-decoder、decoder-only 三家,花後半堂拆解 BERT 的 MLM(15% token)與 NSP 預訓練。2026 版把這些併進「Large Language Models」一講,BERT 不再是課表項目。

probing 看得見表徵,feature attribution 才給得出因果保證|Stanford CS224U 主題單元

CS224U 2023 春季版的 Analysis methods 單元先拿一張三欄計分表比較三類方法:probing 擅長描述表徵,卻給不出因果推論;integrated gradients 對表徵只給得出一個分數,但滿足 sensitivity 公理,所以有因果保證。本篇走完投影片前 40 頁、影片 33–35 與 feature_attribution.ipynb,也記下 notebook 在今天的環境裡會卡住的地方。

分析考量、對抗測試、ANLI 與 DynaSent|Stanford CS224U 主題單元

CS224U 第四單元先問一個問題:行為測試能證明什麼、不能證明什麼。答案是它永遠給不了保證,而且失敗時要先分清是模型的問題還是資料的問題——BERT 在否定句 NLI 上 2.2% 的準確率,用少量例子微調後就回到 90%。接著看 SQuAD 的干擾句、Breaking NLI、ANLI 的人機對抗收集,最後以 DynaSent 兩輪資料收尾。

用 interchange intervention 從「有資訊」走到「有用到」——causal abstraction、IIT 與 DAS|Stanford CS224U 主題單元

Causal abstraction 的核心操作只有一個:把 source 輸入在某個位置的內部狀態搬到 base 輸入的同一位置,看輸出是否跟你假設的高階程式一樣變化。CS224U 的 iit_equality.ipynb 裡,一個測試準確率 0.99 的網路在這項檢驗上只拿到 0.50 與 0.54;改用 IIT 訓練後,反事實準確率變成 1.00。DAS 則把「猜哪些神經元對應哪個變數」改成學一個旋轉矩陣。

COGS、ReCOGS 與作業三|Stanford CS224U 主題單元

COGS 有幾個泛化切分幾乎每個模型都是 0 分。CS224U 用自家的 ReCOGS 研究拆解原因:遞迴切分的 0 分主要是長度泛化問題,介系詞片語切分的 0 分來自訓練資料只讓它出現在特定變數與位置。作業三 hw_recogs.ipynb 用 13.5 萬筆 ReCOGS 訓練資料,先要你找出 Charlie 與 Lina 這兩個訓練與測試角色完全相反的名字,再看一個訓練好的模型怎麼栽在它們身上。

GPT、BERT、RoBERTa、ELECTRA、T5、BART 與蒸餾,各改了預訓練的哪一環|Stanford CS224U 主題單元

CS224U Spring 2023 把 Transformer 家族講成一條「BERT 的四個已知限制」主線:RoBERTa 回應第一條(最佳化探索不足),ELECTRA 回應第二、三條([MASK] 造成的落差、每批只有約 15% token 有訓練訊號),XLNet 回應第四條(被遮住的 token 彼此獨立的假設)。GPT 改的是目標函數與 mask,T5、BART 改的是架構與輸入破壞方式,蒸餾改的是模型大小。課程的 2023 年判斷是:自迴歸架構已經勝出,但做表徵時雙向模型可能仍占優勢。

「break」有八種意思,Transformer 怎麼讓每個詞看情境|Stanford CS224U 主題單元

CS224U Spring 2023 的 contextual representations 單元前三段:先用「break」「crane」這類例子說明靜態詞向量為什麼注定不夠,再用「The Rock rules」三個詞一步步拆出 Transformer block——各欄之間只有 attention 會互相連結,其他步驟都逐欄獨立。最後用兩個問題比較三種位置編碼:位置集合要不要事先決定?會不會妨礙泛化到新位置?絕對位置兩題都不過,正弦函數過第一題,Shaw 2018 的相對位置編碼兩題都過。

資料集、資料切分與模型比較|Stanford CS224U 主題單元

CS224U「NLP methods and metrics」單元的後半段不談指標公式,談實驗怎麼站得住:資料集要自然還是眾包、要對抗還是常見案例,課程答案都是「兩者都要」;切分要鎖住 test set;baseline 要在定假設時就決定;兩個模型的差異要用信賴區間、Wilcoxon 或 McNemar 檢驗,而且要跑多個隨機初始化。整單元的公開材料齊全(投影片、三支影片、兩份 notebook),但 Kawin Ethayarajh 那場「Real-world NLP assessments」客座沒有公開投影片或影片。

17:兩場延伸講座——用擴散模型生成文字,以及把大模型訓練的「民間知識」講清楚|Stanford CS224U 主題單元

2023 年春季 CS224U 在 Transformer 單元裡插了兩場由課程團隊成員主講的專題。Lisa Li 講 Diffusion-LM:不再一個字一個字往右生,而是把一串高斯雜訊逐步去噪成詞向量,代價是訓練與解碼效率都輸給自迴歸模型,換到的是可以在每一步用分類器梯度操控輸出。Sidd Karamcheti 講怎麼把 GPT-2 Small 的單卡訓練時間從 99.63 天壓到 3.37 天:資料平行、混合精度、ZeRO 一層層疊上去。前者只有投影片,後者有投影片與兩段錄影。

多領域情感分析與 bake-off|Stanford CS224U 作業 1

CS224U 第一份作業 hw_sentiment.ipynb 是三分類情感分析:用 DynaSent 兩輪加 SST-3 開發,bake-off 測試集混入來源不明的 mystery 句子。9 分作業裡,原創系統一題占 3 分,規則只有一條:開發過程不准碰三份公開測試集。今天照原樣跑,第一個資料載入 cell 就會卡在 Hugging Face datasets 4.0 拿掉 trust_remote_code 這件事上。

用 DSPy 做少樣本 OpenQA|Stanford CS224U 作業 2

CS224U 作業二 hw_openqa.ipynb 要你只用凍結的語言模型與凍結的 ColBERT 檢索器回答沒有附原文段落的問題。2023 春季版寫的是 DSP,repo 現行版在 2024 年 1 月改成 DSPy 並釘在 dspy-ai==2.4.13。開工前得先準備 OpenAI API key、約 406 MB 的 ColBERTv2 權重與 600 MB 的預建索引;而 notebook 第一行 dspy.OpenAI 在 DSPy 3.4 已經不存在。

起源、核心概念與建議做法|Stanford CS224U 主題單元

CS224U 2023 春季版把 in-context learning 定義成「凍結的語言模型只靠 prompt 完成任務」,並提醒 few-shot 的第二個條件(訓練時沒看過同類例子)幾乎無法驗證。Potts 的 38 頁投影片從 GPT-2 的 TL;DR 講到 demonstration 怎麼挑、chain of thought、self-consistency、DSP,最後給四條建議:先建 dev/test、了解目標模型的指令格式、把寫 prompt 當成 AI 系統設計。Mina Lee 的客座則反過來問:該學會讀懂 prompt 的,是人還是模型?

從 classical IR、IR 指標到 neural IR|Stanford CS224U 主題單元

CS224U 2023 春季版花一整個單元講檢索,理由是 OpenQA 只給問題、證據要自己找,而大型語言模型會捏造來源。Potts 與 Omar Khattab 的投影片從 TF-IDF、BM25 講到 Success@K、MRR、average precision,再講 cross-encoder、DPR、ColBERT、SPLADE 四種 neural IR 在表達力與規模之間怎麼取捨,最後要你把延遲與成本也當成指標。

同一個問題問了四十年,2023 年的 NLU 課怎麼定義「理解」|Stanford CS224U 主題單元

CS224U Spring 2023 的第一堂拿「哪些美國州不和任何美國州接壤?」從 1980 年的 Chat-80 一路問到 text-davinci-001,先證明進展是真的,再用 Levesque 的「cheap tricks」、會編造連結的模型和飽和的 benchmark 質疑這些進展算不算理解。課程地圖因此分成兩半:前半教怎麼用 Transformer 與檢索增強的 in-context learning 做系統,後半教怎麼用更難的 benchmark、行為評估與因果解釋方法檢驗系統。

文獻回顧與實驗計畫|Stanford CS224U 主題單元

CS224U 期末專案的前兩段交件,一份是文獻回顧(依組員人數讀 5/7/9 篇、五個建議段落),一份是實驗計畫(七個必填段落,核心是寫得出假設)。課程給了找論文的六步迴圈、AI 助手輸出必須加引號的規定,以及一位學生把期末專案做成 Findings of EMNLP 論文的完整示範。Gradescope 格式與評分細則頁、往年範例論文都在登入牆後面。

accuracy 0.81 的分類器、macro F1 只有 0.43——分類指標與生成指標各自編碼了什麼價值|Stanford CS224U 主題單元

CS224U 投影片用同一張三類別混淆矩陣算出 accuracy 0.81、macro F1 0.43:一個指標說系統很好,另一個說它在兩個小類別上幾乎全錯。這個單元的主張是「不同指標編碼不同價值」,並逐一列出 accuracy、F 分數三種平均、perplexity、word error rate、BLEU 各自的範圍、價值與弱點。期末專案的評分看的也是指標選得對不對,不是分數高不高。

CS224U 寫 NLP 論文、投稿與上台報告|Stanford CS224U 主題單元

CS224U 的「Presenting your research」一講分四段:期末論文的課程特有要求、NLP 論文怎麼寫、會議投稿流程、怎麼上台。最實用的三件事:期末論文強制附 Known project limitations 與 Authorship statement;寫作要用 Shieber 的「理性重建」而不是按時間講你踩過的坑;投稿時標題幾乎決定了審稿人的 bidding。投影片、四支影片、projects.md 都公開;往年範例論文需要 Stanford 登入。

(最終回):從等指令到先出手——proactive agent 與 Demo Day|Stanford CS329Z 第 11 週

最終回讀 Week 11:週一用 GUM 論文把等指令的 reactive 助理升級成會觀察、推測、先出手的 proactive agent,週三把 multimodal、long-running 與 production observability 收成三個 open problems;文末附 Demo Day 前檢查清單與全系列 11 篇地圖。

先分清 workflow 和 agent,再手刻第一個 RAG|Stanford CS329Z 第 2 週

Week 2 兩堂課一前一後:週一用 Anthropic 的 taxonomy 學會什麼時候不該用 agent,週三用 RAG 論文做出第一個複合系統。五個 workflow pattern 是選型工具,RAG 是參數記憶加非參數記憶的配方,兩篇合起來就是 HW1 email 檢索管線的施工圖。

工具接進來,框架拆開看——HW1 開工|Stanford CS329Z 第 3 週

Week 3 週一用 MCP 規範把工具介面標準化,週三用 DSPy 論文把手刻管線換成可編譯、可優化的程式;同一週 HW1 發布:不准用 agent 框架,從零刻一個企業內部助理,所以 DSPy 這週是拿來看懂框架抽掉了什麼,不是拿來交作業。

先學會邊想邊做,再學會記住——ReAct 與 MemGPT|Stanford CS329Z 第 4 週

Week 4 週一用 ReAct 論文把 agent 迴圈定型為想—做—看的交錯序列,週三用 MemGPT 論文把記憶做成作業系統式的分層記憶體;同一週 HW1 正從 email 檢索 pipeline 長成完整 harness,記憶本來就是作業要求的一塊,迴圈形狀與記憶設計就是這週要定案的兩件事。

該單幹還是開會——多智慧體與優化三軸|Stanford CS329Z 第 5 週

Week 5 週一用 AutoGen 把多智慧體協作寫成可程式的對話,週三用 GEPA 與 test-time compute 論文攤開優化三軸:改 prompt、改權重、加推理算力。HW1 在 10/30 截止,這是交卷前最後一個完整週,這篇幫你決定力氣花在哪一軸。

資料飛輪轉起來——HW1 繳交週|Stanford CS329Z 第 6 週

Week 6 週三讀 Shankar 的資料飛輪:評估、監控、持續改進三站共用同一批生產資料;同一週 HW1 截止、HW2 發布,11 月初還要交期中 demo 錄影與期中報告。

分數別騙自己,資料再做大——期中驗收週|Stanford CS329Z 第 7 週

Week 7 是期中驗收週:週一談資料選擇,週三談評分與 benchmark 設計;Zhu 等人教你別被自己的分數騙,SWE-smith 把軟體工程任務資料做到 5 萬題,讀完為 HW2 寫下第一版 4-tuple。

請模型當裁判,再幫 agent 上護欄|Stanford CS329Z 第 8 週

Week 8 週一用 MT-Bench 與 Anthropic 評測指南建立模型裁判,週三用 PrivacyLens 與四件護欄面對實戰洩漏;週五 paper video 到期,本週交付就是一份會動的裁判分數加一條許可檢查。

寫程式的智慧體,先替它造一把順手的 IDE|Stanford CS329Z 第 9 週

第九週週三談寫程式智慧體:SWE-agent 證明介面即效能,OpenHands 把沙箱與評測做成通用底座;第二份作業週五到期,本週交付是一道會動的修 bug 考題。

別再只調模型了,好成績是系統工程堆出來的|Stanford CS329Z 第 1 週

CS329Z 第一週主讀物是 Zaharia 等人的 Compound AI Systems:SOTA 越來越靠多元件系統拿下,單一模型再大也只是零件;文章留下三個設計問題與三大挑戰,剛好就是 HW1 要你動手回答的題目。

Introduction and Setup:先把語言問題拆成可計算的元件|Stanford CS124 第 1 週

第 1 週沒有演算法。現場的導論課說明這門課教什麼:LLM 的每個元件各在哪一週學、哪些不是 LLM 的語言演算法也要學、語言為什麼難。PA0 把之後幾份作業要用的 Python 與 Jupyter 環境裝好。

PageRank and Social Networks:從 anchor text、圖中心性到課程收束|Stanford CS124 第 10 週

第 10 週把網頁和人際關係看成圖。連結分析教 anchor text 與 PageRank:一個隨機亂點連結的人長期停在每一頁的機率,就是那一頁的分數。社群網路教中心性、群聚係數、小世界與弱連結。最後一堂現場課回到 LLM,講偏好對齊、可解釋性與機器翻譯。

Words, Tokens, Edit Distance, and N-grams:LLM 之前先決定模型看見什麼|Stanford CS124 第 2 週

第 2 週教三件事:用 BPE 把文字切成 token、用動態規劃算兩個字串的編輯距離、用 n-gram 估下一個詞的機率並用 perplexity 評估。每一項都可以用紙筆算,本文各走一個例子。

Logistic Regression and Text Classification:從特徵到機率與 loss|Stanford CS124 第 3 週

第 3 週教邏輯迴歸:把文件變成特徵向量,加權總和後通過 sigmoid 得到機率,用 cross-entropy 量錯多少,再用梯度下降修權重。本文照投影片的影評例子把預測、loss 與一次權重更新各算一遍,並說明為什麼評估要看 precision 與 recall。

Information Retrieval:從倒排索引、tf-idf 到 RAG 的檢索底座|Stanford CS124 第 4 週

第 4 週教搜尋:把查詢和文件都變成向量,用 tf-idf 加權、cosine 相似度排名,用倒排索引加速,用 precision、recall 與 MAP 評估,最後接到向量檢索與 RAG。本文把投影片的四篇迷你文件例子完整算一遍。

Embeddings and Social NLP:用周圍的詞表示一個詞的意思|Stanford CS124 第 5 週

第 5 週教詞嵌入:一個詞的意思可以用它周圍常出現的詞來表示。先用共現次數做向量、用 cosine 比相似度,再用 word2vec 把向量訓練成幾百維的稠密表示,最後區分靜態向量與隨上下文改變的向量。同週的計算社會科學現場課沒有公開材料。

Neural Networks and LLMs:從神經元、反向傳播到 decoder-only 模型|Stanford CS124 第 6 週

第 6 週分兩半。預錄內容教神經網路:一個神經元怎麼算、為什麼需要隱藏層、softmax、用詞向量做分類與語言模型、反向傳播。現場課介紹大型語言模型:它是什麼、三種架構、為什麼各種任務都能改寫成接話、怎麼取樣、怎麼預訓練、怎麼變成助理。

Transformers and Speech Processing:attention 怎麼讓每個 token 參考前文|Stanford CS124 第 7 週

第 7 週打開 Transformer:attention 怎麼讓每個 token 參考前面的 token、一個 block 由哪些零件組成、輸入和輸出兩端怎麼接。PA6a 要自己寫 causal self-attention、訓練一個小模型並計算 perplexity。同週的語音現場課介紹語音辨識的任務與詞錯誤率。

Speech and PA7/Git Lab:聲音怎麼變成 Whisper 讀得懂的輸入|Stanford CS124 第 8 週

第 8 週接著講語音:聲音怎麼產生、怎麼從波形變成模型吃的 log mel 頻譜、Whisper 怎麼用 encoder-decoder 和 cross-attention 把聲音轉成文字。PA6b 把文字轉成語音再轉回來,分析哪些資訊不見了。實作課四介紹 PA7 的 agent 流程並教小組用 GitHub 協作。

Collaborative Filtering and LLM Agents:從電影相似度到搜尋與記憶工具|Stanford CS124 第 9 週

第 9 週教推薦系統:內容式推薦看物品的特徵,協同過濾只看評分矩陣,用「相似的人」或「相似的物品」來推估沒評過的分數。PA7 把物品對物品的協同過濾寫成一個函式,交給會呼叫工具的 LLM agent,再加上訂票、網頁搜尋與記憶。

矩陣微積分與反向傳播|Stanford CS224N 第 3 堂

第 3 講把神經網路訓練拆成計算圖、局部導數與鏈鎖律:forward pass 算結果,backprop 由輸出往回累積梯度,讓每個參數知道自己該往哪裡移。

Benchmark 與 LLM 評估為什麼會過期|Stanford CS224N 第 11 堂

第 11 講把評估拆成測什麼、怎麼量與何時不再可信:benchmark 會飽和、遭污染或被提示格式左右,LLM judge 也只是帶著自身偏差的模型。

Prompting、LoRA 與參數高效微調|Stanford CS224N 第 9 堂

第 9 講比較 prompting、pruning、LoRA、prompt tuning 與 adapters:它們都在回答同一題——要讓一個大型預訓練模型適應新任務,究竟需要改多少參數與儲存多少任務狀態?

把期末專案收斂成可驗證的研究問題|Stanford CS224N 第 6 堂

第 6 講先補完 Transformer encoder、decoder 與 cross-attention,再把期末專案拆成題型、評分、研究題目與資料來源;好題目必須能用一個明確 baseline 和指標驗證。

NLP 的四次典範轉移|Stanford CS224N 第 1 堂

Winter 2026 第 1 講用四個時代整理 NLP:早期探索、符號系統、統計機器學習、深度與自監督學習;重點不是背年表,而是看每個時代如何重新定義語言問題。

沒有公開投影片時,如何讀 Agentic Interpretability|Stanford CS224N 第 15 堂

第 15 講由 Been Kim 客座談 interpretability,但 Winter 2026 官網沒有公開投影片或 agenda;本文不虛構講授內容,只用官方五篇閱讀建立概念發現、agentic investigation 與新詞彙三條閱讀路線。

Multimodality 的官方閱讀地圖|Stanford CS224N 第 17 堂

第 17 講由 Luke Zettlemoyer 客座談 multimodality,但官網沒有公開投影片或 agenda;官方閱讀清單可確認三條主線:視覺推理介面、early-fusion token 模型、文字自回歸加影像 diffusion。

小模型如何跨過 Scaling Law 的門檻|Stanford CS224N 第 19 堂

最後一講把 Open Questions in NLP 2026 收斂成 smart scaling:以 prolonged RL、Prismatic synthetic data、RL as pretraining 與開放協作,讓小模型不只靠增加參數追求推理能力。

從 instruction tuning、RLHF 到 DPO|Stanford CS224N 第 8 堂

第 8 講解釋預訓練模型如何經 instruction tuning、偏好資料與 RLHF 變成助理,再以 DPO 直接從勝負配對學習;每一步都把人的判斷轉成訓練訊號,也把偏差帶進模型。

預訓練、subword 與 in-context learning|Stanford CS224N 第 7 堂

第 7 講把預訓練拆成可擴張資料、subword tokenization、三種模型目標與 in-context learning;核心取捨是用通用的自監督目標換取可重用表示,再用下游訊號指定用途。

RAG 與 Language Agents 的六個元件|Stanford CS224N 第 10 堂

第 10 講從問答與 RAG 進入 language agents,再拆成推理規劃、記憶、工具、資料與評估;agent 不是單一模型,而是模型與外部狀態之間可被逐步檢查的迴圈。

Decoding、DeepSeek-R1 與推理訓練|Stanford CS224N 第 12 堂

第 12 講先證明輸出策略不是小細節:greedy、beam 與 sampling 會產生不同文字;再由 R1-Zero/R1 走進 PPO、GRPO、DAPO,最後追問長推理何時真的有用。

Speculative Decoding 與 Test-Time Scaling|Stanford CS224N 第 13 堂

第 13 講從推論效率走到推論能力:speculative decoding 用小模型草擬、大模型驗證;on-policy distillation 處理資料漂移;長上下文與 test-time scaling 則用更多推論資源換取表現。

語言模型、RNN 與消失梯度|Stanford CS224N 第 4 堂

第 4 講把語言模型定義成下一詞機率分布,再用 RNN 壓縮任意長前文;它同時揭露 recurrence 的核心代價:資訊與梯度都必須沿時間步逐步傳遞。

Hallucination、創造力、工作與價值對齊|Stanford CS224N 第 16 堂

第 16 講把 NLP 的社會影響拆成四題:模型為何 hallucinate、AI 輔助創作的同質化悖論、工作如何重組,以及價值對齊為何不能化約成單一 reward。

LoRA 低秩更新:Tinker 客座課前預習|Stanford CS224N 第 18 堂

手算低秩更新、分清更新與完整權重的秩,並計算可訓練參數。這是依 LoRA 論文的課前預習,不重建尚未取得公開材料的 Tinker 客座內容。

Tokenization 如何製造多語言成本差|Stanford CS224N 第 14 堂

第 14 講從 word、character/byte 與 subword 切分一路走到 BPE failure cases 和跨語言公平:tokenizer 決定序列長度、運算成本與模型看到的語言單位,因此不是中立前處理。

從 recurrence 到 Transformer|Stanford CS224N 第 5 堂

第 5 講從 RNN 的長距離與循序瓶頸走到 self-attention,再組成 Transformer;它縮短位置間的資訊路徑並容許平行計算,但付出二次方 attention 成本與位置資訊必須另行注入的代價。

word2vec 如何把語意變成向量|Stanford CS224N 第 2 堂

第 2 講從 word2vec 的預測任務、目標函數與梯度一路走到 count-based vectors 和評估,核心是:詞義不是查表得到的標籤,而是從上下文分布學出的高維座標。

SPINACH Agent 如何逐步探索 Wikidata 並寫 SPARQL|Stanford CS224V 第 10 堂

SPINACH 不一次猜完整 SPARQL,而是搜尋 entity/property、查看 Wikidata entry 與 property examples、執行小查詢,再逐步組合完整查詢;action set 與停止規則是可靠性的核心。

CHURRO 如何讓多語歷史文件變成可搜尋文字|Stanford CS224V 第 12 堂

CHURRO 以 HDML 表示整頁文字、版面與 metadata,整合跨世紀多語資料訓練 page-level VLM,再把輸出接到 HistoryGenie,讓檔案館材料能被檢索與對話。

資料受限時,語言模型還能怎麼擴展|Stanford CS224V 第 14 堂

最後一講不是完整 LLM 訓練教學,而是資料效率研究:在 compute 充足、資料固定時重看 epochs、batch、ensemble 與 self-training,再研究 synthetic continued pretraining 的可擴展條件。

WikiChat 的七階段 RAG 如何逐條攔下幻覺|Stanford CS224V 第 5 堂

WikiChat 不把檢索結果直接交給一次生成,而是形成查詢、檢索、過濾、生成、拆主張、再檢索查核與移除無根據內容,並把檢索與事實性分開評估。

用計算思維把會幻覺的 LLM 變成可靠助理|Stanford CS224V 第 1 堂

Fall 2025 第一講把 CS224V 的主線定成計算思維:不要期待一次提示解決可靠性,而要把檢索、形式表示、查核與生成拆成可測試的演算法。

STORM 與 Co-STORM 怎麼把搜尋變成知識策展|Stanford CS224V 第 2 堂

STORM 用觀點引導的提問、模擬訪談與大綱建立改善研究廣度;Co-STORM 再把人放進迴圈,讓探索未知問題與共同編修成為系統的一部分。

SLIDERS 如何用自動 schema 分析一整組長文件|Stanford CS224V 第 8 堂

SLIDERS 不讓模型直接吞完所有長文件,而是從問題誘導 schema、做語意切塊與情境化擷取、協調重複列,再用 SUQL 查詢產生答案。

ReactGenie 如何讓語音命令與原生 GUI 共用同一個狀態|Stanford CS224V 第 13 堂

ReactGenie 以 React 元件加 annotations 暴露資料、動作與視圖,將複合語音命令解析成 DSL,並在同一份 UI context 中產生原生圖形輸出。

把臨床試驗條件翻成 SMT,而不是讓 LLM 直接判資格|Stanford CS224V 第 11 堂

這堂把病人紀錄與試驗條件各自轉成 SMT,先以較弱的命題邏輯投影做大規模候選檢索,再用 solver 檢查候選;推理可解釋,但 NL-to-SMT 仍是主要錯誤入口。

自動質性編碼為什麼需要 codebook、型別與人工覆核|Stanford CS224V 第 9 堂

自動質性編碼先以 codebook 定義事件型別與 arguments,再把長文分類、結構化抽取和 entity linking 分開;受約束 JSON 能保格式,仍不能取代領域專家的覆核。

資料庫 Agent 為什麼要先做語意剖析|Stanford CS224V 第 6 堂

結構化資料 agent 的可靠路線是把自然語言轉成可執行查詢、處理 schema 與列舉值,再把 query execution 和回答生成分開評估;混合資料則要先判斷該走資料庫還是文字檢索。

SUQL 把 SQL 與自由文字檢索放進同一個查詢語言|Stanford CS224V 第 7 堂

SUQL 在 SQL 裡加入 answer 與 summary 兩種自由文字函式,semantic parser 產生一個混合查詢,再由 compiler 做 predicate pushdown、top-k 與 lazy evaluation。

任務型 Agent 評估不能只看回答像不像人|Stanford CS224V 第 4 堂

CS224V 把任務型 agent 評估拆成狀態更新與完整互動:先測 semantic parser,再讓真人檢查任務完成、知識查詢與動作是否可靠。

用 Genie Worksheets 建立不亂編動作的任務型 Agent|Stanford CS224V 第 3 堂

Genie Worksheets 把任務能力宣告成表單式規格,讓 contextual semantic parser 只更新形式對話狀態;查詢、動作與回應由 runtime 依規格執行。

從位元組到 tokenizer,先決定什麼值得隨規模成長|Stanford CS336 第 1 堂

CS336 第一講不把「從零打造語言模型」理解成重做所有舊技術,而是先區分 mechanics、mindset 與 intuitions,再用 BPE 示範如何把原始位元組轉成可訓練的 token。

Overview:用資源限制定義智慧|Stanford CS221 第 1 堂

Stanford CS221 Autumn 2025 第 1 講,從 Overview:用資源限制定義智慧建立可操作的 AI 問題表示與演算法直覺。

Learning I:從計算圖到線性迴歸|Stanford CS221 第 2 堂

Stanford CS221 Autumn 2025 第 2 講,從 Learning I:從計算圖到線性迴歸 建立可操作的 AI 問題表示與演算法直覺。

Learning II:線性分類、特徵與交叉熵|Stanford CS221 第 3 堂

Stanford CS221 Autumn 2025 第 3 講,從 Learning II:線性分類、特徵與交叉熵 建立可操作的 AI 問題表示與演算法直覺。

Learning III:深度網路是可重複組合的計算圖|Stanford CS221 第 4 堂

Stanford CS221 Autumn 2025 第 4 講,從 Learning III:深度網路是可重複組合的計算圖 建立可操作的 AI 問題表示與演算法直覺。

Search I:先定義狀態,再談搜尋演算法|Stanford CS221 第 5 堂

第 5 講把搜尋問題寫成 state、action、successor 與 cost,並用 acyclic dynamic programming 說明:狀態若遺漏未來所需資訊,再快的演算法也只會解錯問題。

Search II:UCS 與 A* 的優先順序|Stanford CS221 第 6 堂

Stanford CS221 Autumn 2025 第 6 講依官方材料拆解 Search II:UCS 與 A* 的優先順序,並標出方法成立的假設與限制。

MDPs I:把隨機性放進狀態轉移|Stanford CS221 第 7 堂

Stanford CS221 Autumn 2025 第 7 講依官方材料拆解 MDPs I:把隨機性放進狀態轉移,並標出方法成立的假設與限制。

MDPs II:不知道轉移模型時如何學 Q 值|Stanford CS221 第 8 堂

Stanford CS221 Autumn 2025 第 8 講依官方材料拆解 MDPs II:不知道轉移模型時如何學 Q 值,並標出方法成立的假設與限制。

MDPs III:直接對 policy 的期望報酬求梯度|Stanford CS221 第 9 堂

Stanford CS221 Autumn 2025 第 9 講從 tabular RL 走到 function approximation,再用 log-derivative identity 推出 REINFORCE,最後落到可執行的 PyTorch 更新。

Games I:從 expectimax 到 minimax|Stanford CS221 第 10 堂

第 10 講把單一 agent 搜尋擴成 adversarial game tree:expectimax 對 chance 求期望、minimax 對對手取最差結果,alpha-beta 則在不改答案下剪掉無關分支。

Games II:TD learning、同時賽局與 Nash 均衡|Stanford CS221 第 11 堂

第 11 講先用 temporal-difference updates 從遊戲經驗學 value,再從 sequential play 轉向 simultaneous games,以 mixed strategies、minimax guarantee 與 Nash equilibrium 描述穩定策略。

Bayesian Networks I:從 joint distribution 到 factorization|Stanford CS221 第 12 堂

第 12 講用 random variables 與 factors 建 joint distribution,再以 Bayesian-network factorization 表達 conditional independence,讓 conditioning 與 marginalization 成為可執行的 probabilistic inference。

Bayesian Networks II:Gibbs sampling 與 Markov blanket|Stanford CS221 第 13 堂

第 13 講在 exact inference 太昂貴時改用 Gibbs sampling:每次只重抽一個變數,僅依 Markov blanket 計算 conditional distribution,並以樣本頻率近似查詢機率。

Bayesian Networks III:從計數、平滑到 EM|Stanford CS221 第 14 堂

第 14 講從 complete data 的 maximum-likelihood counts 與 Laplace smoothing,走到 latent variables 下交替計算 posterior responsibilities 和更新參數的 EM。

Logic I:模型、蘊涵與 SAT|Stanford CS221 第 15 堂

第 15 講分開 propositional logic 的 syntax 與 semantics:model checking 用 satisfying assignments 定義 entailment,SAT solver 找見證,inference rules 則必須同時檢查 soundness 與 completeness。

Logic II:量詞讓知識跨越單一命題|Stanford CS221 第 16 堂

第 16 講用 predicates、quantifiers 與 functions 壓縮跨物件知識,再以 substitution、unification 與 definite-clause forward inference 推導結論,同時標出 termination 與 completeness 限制。

Language Models:從 next-token prediction 到生成|Stanford CS221 第 17 堂

第 17 講把 language model 定義為 sequence probability 的 chain-rule factorization,對照 n-gram 與 neural conditional models,並說明 sampling、temperature 與 evaluation 如何改變生成結果。

AI & Society:效益、誤用、事故與制度|Stanford CS221 第 18 堂

第 18 講用 benefits、misuse、accidents 與 structural harms 分類 AI 社會影響,再把 fairness audits、研究倫理、著作權與平台條款接回可追責的制度選擇。

AI Supply Chains:模型背後的資源、勞動與市場|Stanford CS221 第 19 堂

Lecture 19 用 Economics of AI deck 把 AI 的 compute、data、distribution 與組織互補品接到 GDP、勞動與 ideas 的成長路徑。

Fireside Chat, Conclusion:把二十講收束成建模選擇|Stanford CS221 第 20 堂

第 20 講是 Percy Liang 談職涯研究、CS221/Stanford 與 AI 未來的 fireside chat;每項歸因都連回官方影片,編者整理則與自動字幕的不確定性分開。

Introduction:為什麼關係資料需要圖機器學習|Stanford CS224W 第 1 堂

依 Fall 2025 官方投影片逐段整理第 1 講,涵蓋 課程地圖與工具、圖資料的共同語言、傳統特徵與表示學習,並標出自學者拿不到的課堂材料。

Node Embeddings:從隨機漫步到 node2vec|Stanford CS224W 第 2 堂

依 Fall 2025 官方投影片逐段整理第 2 講,涵蓋 編碼器—解碼器觀點、鄰近度與目標函數、隨機漫步,並標出自學者拿不到的課堂材料。

Graph Neural Networks:message passing 的第一個完整模型|Stanford CS224W 第 3 堂

依 Fall 2025 官方投影片逐段整理第 3 講,涵蓋 從固定 embedding 到深度編碼器、message passing 框架、聚合與更新,並標出自學者拿不到的課堂材料。

A General Perspective on GNNs:把模型拆成可設計的元件|Stanford CS224W 第 4 堂

依 Fall 2025 官方投影片逐段整理第 4 講,涵蓋 GNN 設計空間、訊息、聚合與更新、GraphSAGE,並標出自學者拿不到的課堂材料。

GNN Augmentation and Training:資料、任務與模型怎麼一起設計|Stanford CS224W 第 5 堂

依 Fall 2025 官方投影片逐段整理第 5 講,涵蓋 圖資料 augmentation、特徵與結構 augmentation、supervision 與 loss,並標出自學者拿不到的課堂材料。

Theory of GNNs:WL test、GIN 與表達能力的上限|Stanford CS224W 第 6 堂

依 Fall 2025 官方投影片整理第 6 講,涵蓋 什麼叫可區分、Weisfeiler–Lehman test、message passing 的上界,並標出無法公開取得的課堂材料。

Designing Powerful Graph Encoders:結構辨識與位置辨識|Stanford CS224W 第 7 堂

依 Fall 2025 官方投影片整理第 7 講,涵蓋 完美 GNN 的思想實驗、標準 GNN 的三層失敗、identity-aware encoding,並標出無法公開取得的課堂材料。

Graph Transformers:attention 如何接上圖結構|Stanford CS224W 第 8 堂

依 Fall 2025 官方投影片整理第 8 講,涵蓋 self-attention 與 message passing、圖上 attention 的範圍、位置與結構編碼,並標出無法公開取得的課堂材料。

Heterogenous Graphs:讓節點與關係類型進入 message passing|Stanford CS224W 第 9 堂

依 Fall 2025 官方投影片整理第 9 講,涵蓋 異質圖 schema、relation-specific messages、R-GCN,並標出無法公開取得的課堂材料。

Knowledge Graphs:TransE、ComplEx 與 RotatE 的關係建模|Stanford CS224W 第 10 堂

依 Fall 2025 官方投影片整理第 10 講,涵蓋 知識圖譜與 completion、三元組 scoring、TransE 與關係模式,並標出無法公開取得的課堂材料。

GNNs for Recommender Systems:從協同過濾到 LightGCN|Stanford CS224W 第 11 堂

依 Fall 2025 官方投影片整理第 11 講,涵蓋 推薦系統的圖表示、matrix factorization baseline、NGCF 的訊息傳遞,並標明公開材料邊界。

Relational Deep Learning:把資料庫直接變成預測圖|Stanford CS224W 第 12 堂

依 Fall 2025 官方投影片整理第 12 講,涵蓋 表格 pipeline 的限制、關聯式資料庫轉圖、temporal entity graph,並標明公開材料邊界。

Advanced Architectures in RDL:RelGNN 與 Relational Graph Transformer|Stanford CS224W 第 13 堂

依 Fall 2025 官方投影片整理第 13 講,涵蓋 RDL 的多關係瓶頸、RelGNN composite message passing、relation-specific aggregation,並標明公開材料邊界。

Advanced Topics in GNNs:圖上 in-context learning 與不確定性|Stanford CS224W 第 14 堂

依 Fall 2025 官方投影片整理第 14 講,涵蓋 relational foundation model 的目標、zero-shot relational transfer、PRODIGY 的 prompt graph,並標明公開材料邊界。

Foundation Models for Knowledge Graphs:新實體、新關係與雙重等變性|Stanford CS224W 第 15 堂

依 Fall 2025 官方投影片整理第 15 講,涵蓋 transductive KG embedding 的邊界、entity-inductive link prediction、relation graph,並標明公開材料邊界。

LLM + GNN:讓語言模型讀圖,也讓圖模型讀文字|Stanford CS224W 第 16 堂

依 Fall 2025 官方投影片整理第 16 講,涵蓋 LLM 與 GNN 的互補缺口、text-attributed graphs、LLM as predictor or encoder,並標明公開材料邊界。

Agents + Graphs:讓 agent 在結構化世界中檢索、規劃與行動|Stanford CS224W 第 17 堂

依 Fall 2025 官方投影片整理第 17 講,涵蓋 從 graph QA 到 agent、STaRK 的多模態檢索、工具使用與 traversal,並標明公開材料邊界。

Deep Generative Models for Graphs:GraphRNN 與目標導向分子生成|Stanford CS224W 第 18 堂

依 Fall 2025 官方投影片整理第 18 講,涵蓋 圖生成問題與資料表示、生成品質的評估、GraphRNN 的 autoregressive factorization,並標明公開材料邊界。

315K 個 GNN designs 如何用 anchor models 排名|Stanford CS224W 第 19 堂

Fall 2025 Conclusion deck 在 32 個 tasks 上研究約 315K 個 GNN designs:先跑少量 anchor models,以 ranking 描述 task similarity,再從相似 task 轉移 best designs。

Bitwise operators、型別轉換與 bitmask|Stanford CS107 第 4 堂

第四講先釐清 signed/unsigned 轉型不改 bits、混合比較可能改變數值意義,以及 sign extension、zero extension、truncation;再推導 AND、OR、NOT、XOR 與 bitmask 的讀取、設定、清除和集合操作。

整數、位元組與 two's complement|Stanford CS107 第 3 堂

第三講從 32/64-bit 位址空間出發,推導 unsigned 與 two's-complement signed integer 的範圍、反相加一與共用加法硬體,再分清 unsigned modulo 運算和 C signed overflow,最後用四組故障案例檢查模型。

Bit shifts、bit tricks 與 GDB|Stanford CS107 第 5 堂

第五講把 bitmask 推進到 left/right shift、power-of-two 與 popcount tricks,並用 absolute-value 範例揭示 signed intermediate 在 INT_MIN 會 overflow;後半建立 GDB 的 breakpoint、執行控制、格式化 print、memory examine 與 backtrace 工作流。

第一支 C 程式,以及 binary 與 hexadecimal|Stanford CS107 第 2 堂

第二講把 C 放回 Unix 的歷史與開發環境:拆解 header、main、printf、argc/argv,走過 ssh、emacs、make 與執行檔,再用位值系統推導 8 bits = 1 byte、byte 的 256 種 pattern,以及 binary/hexadecimal 的雙向換算。

從課程地圖走進 Unix 命令列|Stanford CS107 第 1 堂

Winter 2026 第一講先回答 CS107 為何要往抽象層底下挖:從位元組、記憶體、組合語言到 heap allocator,再交代作業 40%、lab 10%、期中 20%、期末 30% 的課程制度,最後用 Unix 命令列替後續 C 開發暖身。

從集合語言走到 Cantor 對角線|Stanford CS103 第 0 堂

從集合的元素、子集合與冪集開始,最後用 Cantor 對角線證明任何集合都不可能和自己的冪集一樣大。

從 even/odd 定義寫出第一個直接證明|Stanford CS103 第 1 堂

用偶數平方與兩奇數相加兩個例題,練習任取、假設、見證與 want-to-show 如何組成可逐行檢查的直接證明。

否定、逆否證明與反證法|Stanford CS103 第 2 堂

本講先精確刻畫蘊涵何時為假,再把量詞否定、逆否命題與反證法變成可檢查的證明工具。

命題邏輯、真值表與等價式|Stanford CS103 第 3 堂

命題邏輯把英文陳述抽象成真假變數,再用真值表檢查連接詞、翻譯方向與 De Morgan 等價式。

一階邏輯的物件、量詞與型別|Stanford CS103 第 4 堂

本講把命題邏輯擴充成能談論物件的一階邏輯:分清常數、predicate、function 與命題的型別,再用存在與全稱量詞表達 some 與 every。

一階邏輯 II——巢狀量詞、否定與唯一性|Stanford CS103 第 5 堂

把自然語言逐層翻成一階邏輯:辨認全稱與存在句型,再處理量詞順序、否定、限制量詞與唯一性。

函數 I,從定義到單射與滿射證明|Stanford CS103 第 6 堂

函數不只是一條公式:定義域、陪域、全域有定義與確定性缺一不可,而 involution、單射與滿射的量詞正好決定證明怎麼寫。

函數 II——滿射、假設與函數合成|Stanford CS103 第 7 堂

本講以滿射與鳥類證明釐清『假設』和『證明』的不同操作,再證明 involution 必為單射與滿射,並把同一套推理帶進函數合成。

用雙射定義基數與 Cantor 對角論證|Stanford CS103 第 8 堂

兩個集合等大,意思是它們之間存在雙射;Cantor 的對角集合則能對任意 S 到其冪集的函數造出一個漏接值。

圖論 I|Stanford CS103 第 9 堂

本講從圖與有向圖的形式定義,推進到獨立集、頂點覆蓋,以及兩者的補集關係。

數學歸納法、假幣問題與不變量|Stanford CS103 第 12 堂

數學歸納法不是把幾個案例排在一起,而是證明起點成立、任意一步能把真命題傳給下一步,再由歸納原理涵蓋所有自然數。

數學歸納法 II|Stanford CS103 第 13 堂

本講從「從上一講的標準歸納法出發」推進到「起點不必是零」,依官方例題重建定義、推導與易錯邊界。

有限自動機 I|Stanford CS103 第 14 堂

本講從「為什麼先研究一台很弱的電腦」推進到「從裝置行為抽出狀態機」,依官方例題重建定義、推導與易錯邊界。

有限自動機 II|Stanford CS103 第 15 堂

本講從「DFA 的形式定義把前半學期串起來」推進到「regular 語言 是「存在一台 DFA」」,依官方例題重建定義、推導與易錯邊界。

有限自動機 III|Stanford CS103 第 16 堂

本講從「自動機階梯:能力要用語言區分」推進到「DFA transition table 是圖的精確轉寫」,依官方例題重建定義、推導與易錯邊界。

正規表示式|Stanford CS103 第 17 堂

本講從「從 closure 性質 走向描述語言的語法」推進到「regex 是數學表示式,不等於某套程式庫」,依官方例題重建定義、推導與易錯邊界。

非正規語言|Stanford CS103 第 18 堂

本講從「四種 regular 的說法已經等價」推進到「finite memory 的精確直覺」,依官方例題重建定義、推導與易錯邊界。

上下文無關語言|Stanford CS103 第 19 堂

本講從「從有限狀態限制轉向遞迴結構」推進到「arithmetic grammar 的四組規則」,依官方例題重建定義、推導與易錯邊界。

圖靈機 I|Stanford CS103 第 20 堂

本講從「為何 CFG 之後還要換模型」推進到「長加法揭示 local access 原則」,依官方例題重建定義、推導與易錯邊界。

圖靈機 II|Stanford CS103 第 21 堂

本講從「sample TM:從最後一格回看第一格」推進到「TM 能做的工作遠超逐格配對」,依官方例題重建定義、推導與易錯邊界。

圖靈機 III|Stanford CS103 第 22 堂

本講從「recognizer 與 decider 的快速量詞稽核」推進到「為何所有問題都能寫成 語言」,依官方例題重建定義、推導與易錯邊界。

不可解問題 I|Stanford CS103 第 23 堂

本講從「從 R、RE 與 UTM 接回來」推進到「self-reference 回顧的三個程式」,依官方例題重建定義、推導與易錯邊界。

不可解問題 II|Stanford CS103 第 24 堂

本講從「HALT 的定義與位置」推進到「為何 HALT 可辨識」,依官方例題重建定義、推導與易錯邊界。

不可解問題 III|Stanford CS103 第 25 堂

本講從「Lava Diagram 的兩個辨識任務」推進到「Rice's Theorem 的 投影片 版判讀」,依官方例題重建定義、推導與易錯邊界。

複雜度理論|Stanford CS103 第 26 堂

本講從「decidable 不等於 feasible」推進到「efficiency 要先選 resource」,依官方例題重建定義、推導與易錯邊界。

全課總結:四條知識主線與下一門課|Stanford CS103 課程總覽

最後一講把證明、圖論、自動機與可計算性重新接起來,再對照會直接使用這些基礎的 Stanford 後續課程。

看懂 x86-64 addressing modes,分清位址和值|Stanford CS107 第 15 堂

CS107 第 15 講把 x86-64 的 mov 拆成 immediate、register、absolute、indirect、displacement、indexed 與 scaled indexed operands,並以 D + R[b] + R[i]×s 統一解讀 pointer dereference 和 array access。

從 subregister 到 ALU,讀懂 x86-64 算術與位元運算|Stanford CS107 第 16 堂

CS107 第 16 講把 b/w/l/q 資料寬度、subregister、movs/movz、lea、呼叫慣例、算術邏輯與 shift 串成一套規則:先確定操作寬度,再追蹤來源、目的與是否真的讀取記憶體。

從 condition codes 到 loops,讀懂 x86-64 條件控制|Stanford CS107 第 18 堂

CS107 第 18 講以 ZF/SF/CF/OF 串起 cmp、test、signed/unsigned conditional jumps,再拆解 if、loops、dynamic instruction count、setcc 與 cmovcc。

從乘除法到 %rip,讀懂 x86-64 control flow|Stanford CS107 第 17 堂

CS107 第 17 講先完成 x86-64 的 full-width multiplication 與 division,再沿著 instruction bytes 追蹤 %rip,最後以 direct/indirect jmp 說明程式如何離開預設的順序執行。

從 call/ret 到 calling convention,讀懂 x86-64 函式呼叫|Stanford CS107 第 19 堂

CS107 第 19 講追蹤 %rsp、push/pop、call/ret、parameters、return values、stack locals 與 caller/callee register discipline,建立可跨函式維持資料與控制流的 ABI 契約。

從 C 到 x86-64,第一次讀懂反組譯輸出|Stanford CS107 第 14 堂

CS107 第 14 講用 sum_array 的 10 條 x86-64 指令拆開反組譯輸出:左側是位址與機器碼,右側是 AT&T assembly;讀者的任務是由 opcode、operand、register 與控制流程還原 C,而不是手寫組合語言。

從字串搜尋到 Buffer Overflow,輸入驗證不是容量檢查|Stanford CS107 第 7 堂

CS107 第 7 講先用 strchr、strstr、strspn 建立指標式字串掃描,再指出只驗證內容仍擋不住 buffer overflow:安全邊界必須同時涵蓋輸入規則、目的地容量、終止字元與記憶體檢測。

Caching、Memory Hierarchy 與 Locality|Stanford CS107 第 25 堂

CS107 第 25 講用精簡投影片建立 cache 的核心模型:記憶體存取成本不均,較小且較快的層級保存可能再次使用的資料,而 temporal 與 spatial locality 決定程式能否受益。

C 字串不是型別,而是一份記憶體契約|Stanford CS107 第 6 堂

CS107 第 6 講把 C 字串拆回 char 陣列、終止空字元與位址:strlen、strcmp、strcpy、strncpy、strcat 的每一個便利,都以呼叫者維持容量與終止條件為代價。

先用 Callgrind 找熱點,再讀懂 GCC 做了哪些最佳化|Stanford CS107 第 24 堂

CS107 第 24 講用矩陣乘法與 Callgrind 建立量測流程,再拆解 GCC 的 constant folding、共同子運算式消除、dead-code elimination、strength reduction、code motion 與遞迴轉迴圈;最佳化從瓶頸證據開始。

把 realloc 留在原地,必須守住哪些 allocator 不變量|Stanford CS107 第 23 堂

CS107 第 23 講把 explicit free list 推進到原地 realloc:縮小時切出可用區塊,放大時吞併右側 free blocks,做不到才配置、複製、釋放;每一步都要同時維持實體 heap 與邏輯 free list。

Function Pointer 讓 Generic C 注入比較規則|Stanford CS107 第 12 堂

CS107 第 12 講先用 char * 完成 byte-wise generic swap 與 rotate,再以 function pointer 把 bubble sort 的走訪機制和比較規則拆開;void * 解決資料型別,callback 解決行為差異。

從 Comparator 到完整 Generic Bubble Sort|Stanford CS107 第 13 堂

CS107 第 13 講把 bool callback 升級成三向 comparator,再把 void *、element width 與 const void * callback 合併成完整 generic bubble sort,最後對照 qsort、bsearch、lfind 與 lsearch。

void * 如何讓 C 擁有泛型,又不假裝型別還在|Stanford CS107 第 11 堂

CS107 第 11 講先收完 calloc、strdup、free、realloc 的 heap 契約,再把 swap 從多份型別專用程式改造成 void * 加 byte count:C 的泛型不是保留未知型別,而是明確交接位址、寬度與解讀責任。

Heap Allocator 的第一個設計,速度與空間為何互相拉扯|Stanford CS107 第 21 堂

CS107 第 21 講從 allocator 的 alignment、throughput 與 utilization 目標出發,以 bump allocator 和 implicit free list 拆解 metadata、splitting、placement、內部與外部碎片,以及 free 後為何必須 coalesce。

Explicit Free List 為何同時活在兩種順序裡|Stanford CS107 第 22 堂

CS107 第 22 講把 implicit free list 改成 explicit free list:搜尋只拜訪可重用 blocks,但每塊 free memory 同時具有實體相鄰順序與邏輯鏈結順序,unlink、coalesce、reinsert 必須共同維持不變量。

指標不是魔法,而是可被複製的位址|Stanford CS107 第 8 堂

CS107 第 8 講從 & 取址與 * 解參照出發,說清楚 C 的 pointer parameter 為何仍是 pass-by-value,以及 int *、char *、char ** 如何分別修改 caller 擁有的 int、char 與 pointer。

Array 不是 Pointer,但它們在運算式裡合作|Stanford CS107 第 9 堂

CS107 第 9 講用 C strings 七條規則拆開 array object、pointer variable 與 string literal:array 常在運算式中退化成首元素指標,但儲存空間、可重新賦值性、可修改性與 sizeof 行為仍完全不同。

Reverse Engineering 之後,先問 Privacy 與 Trust,再進 Heap Allocator|Stanford CS107 第 20 堂

CS107 第 20 講把 reverse engineering 能力放回倫理脈絡:privacy 有個人與社會模型,trust 等於 reliance 加上 betrayal risk;接著複習 process memory,從 malloc client 轉成 heap allocator implementer。

Stack 與 Heap 的差別不是速度,而是 Lifetime 與 Ownership|Stanford CS107 第 10 堂

CS107 第 10 講從 sizeof 與 pointer arithmetic 走進 stack frame lifetime:回傳 local array 會留下 dangling pointer;malloc 讓資料跨越函式返回,但也把 NULL、容量計算、ownership、free 與 memory leak 交給程式設計者。

Wrap-up,六個系統問題與下一站|Stanford CS107 第 26 堂

CS107 第 26 講用六個大問題收束十週內容:representation、text、memory、generics、execution 與 allocation;它以 explicit allocator 檢查學習成果,並把後續路線指向 CS111 與其他 systems 課。

What is Probability?:先把隨機問題列成結果集合,再談事件的機率。|Stanford CS109 第 1 堂

先把隨機問題列成結果集合,再談事件的機率。

Conditional Probability:條件不是裝飾,而是把樣本空間縮到已知資訊仍允許的部分。|Stanford CS109 第 2 堂

條件不是裝飾,而是把樣本空間縮到已知資訊仍允許的部分。

Bayes Theorem:Bayes 定理把容易建模的生成方向,翻成真正想問的推論方向。|Stanford CS109 第 3 堂

Bayes 定理把容易建模的生成方向,翻成真正想問的推論方向。

Counting and Combinatorics:先判斷順序是否重要、元素能否重複,公式才不會套錯。|Stanford CS109 第 4 堂

先判斷順序是否重要、元素能否重複,公式才不會套錯。

Random Variables and Expectation:隨機變數是把結果映成數字;期望值是加權平均,不保證會真的出現。|Stanford CS109 第 5 堂

隨機變數是把結果映成數字;期望值是加權平均,不保證會真的出現。

Moments:期望值、LOTUS 與線性性|Stanford CS109 第 6 堂

期望值把分布壓成加權平均;LOTUS 處理變換後的值,linearity 則讓隨機變數的和即使不獨立也能直接計算。

Variance 與 Poisson:從分散程度到稀有事件計數|Stanford CS109 第 7 堂

先用 variance 描述隨機變數的分散程度,再用 Poisson 處理固定區間內的事件數,以及大 n、小 p 的二項近似。

Continuous Random Variables:PDF、CDF、Uniform 與 Exponential|Stanford CS109 第 8 堂

連續變數的單點機率為零,區間機率是 PDF 面積;CDF、Uniform 與 Exponential 則把面積、等待時間與 memorylessness 串起來。

Normal Distribution:標準化、Φ 與 continuity correction|Stanford CS109 第 9 堂

標準化把不同尺度的 Normal 變數轉成 Z;Φ、線性轉換與 continuity correction 再把區間與大型 binomial 變成可計算的機率。

Probabilistic Models:joint、marginal、independence 與 Bayes|Stanford CS109 第 10 堂

Joint distribution 保存多個變數的完整關係;marginal、conditional、independence 與 Bayes 都是從這份關係表取出不同問題的答案。

Inference:prior × likelihood → normalize|Stanford CS109 第 11 堂

Inference 把 hidden variable 的 prior 逐項乘上 observation likelihood,再正規化成 posterior;同一迴圈可處理多次觀察與離散化的連續 belief。

General Inference:Bayesian networks、sampling 與 rare evidence|Stanford CS109 第 12 堂

Bayesian network 用 conditional independence 分解巨大 joint;ancestral sampling 生成 joint samples,rejection sampling 再以 evidence 篩出 conditional。

Multinomial:多類別計數、bag of words 與 log probability|Stanford CS109 第 13 堂

Multinomial 把 binomial 的兩類計數推廣到多類;同一 PMF 也能把文件視為 word counts,配 Bayes 與 log-score 做 authorship inference。

Beta:把未知 probability 變成可更新的 random variable|Stanford CS109 第 14 堂

Beta distribution 表示對未知成功率的完整 belief;success/failure data 只需更新兩個參數,便能取得 posterior、平滑估計與 Thompson-sampling decision。

Adding Random Variables 與 Central Limit Theorem|Stanford CS109 第 15 堂

少數分布的 independent sums 有 closed form;一般 IID sums 則由 CLT 在大樣本下近似 Normal,離散 sums 還需 continuity correction。

Bootstrapping:sampling statistics、error bars 與 p-values|Stanford CS109 第 16 堂

Bootstrap 把 sample histogram 當作 population proxy,以 replacement 重抽並重算 statistic,近似 estimator 的 sampling distribution、error bar 與 null p-value。

Algorithmic Analysis:conditional expectation、indicators 與 recursion|Stanford CS109 第 17 堂

隨機程式的 expected cost 可依第一個 random choice 分情境;計數問題則拆成 indicators,兩者都靠 linearity,而不必硬求完整 distribution。

Information Theory:surprise、entropy、information gain 與 KL|Stanford CS109 第 18 堂

Surprise 把低機率事件轉成 bits;entropy 是 expected surprise,information gain 選擇最能降低 uncertainty 的問題,KL 則量化錯用 model distribution 的額外代價。

Maximum Likelihood Estimation:固定資料,找最能解釋資料的參數|Stanford CS109 第 19 堂

MLE 固定觀察資料、最佳化參數;log-likelihood 讓乘積變加總,但最大值也可能落在邊界。

Logistic Regression:從 Bernoulli likelihood 推出 gradient|Stanford CS109 第 20 堂

Logistic regression 用 sigmoid 把線性分數變成 Bernoulli 機率,而 gradient xⱼ(y-ŷ) 直接來自 log-likelihood 的 chain rule。

Comparing Classifiers:accuracy 之外還要問 calibration、錯誤成本與 fairness|Stanford CS109 第 21 堂

比較 classifier 不能只看 accuracy;還要用 held-out data、baseline、calibration、precision/recall 與明確的 fairness criterion。

Deep Learning:用 chain rule 推出 backpropagation|Stanford CS109 第 22 堂

Neural network 是堆疊的 logistic units;forward pass 算機率,backpropagation 重用 output error 來計算所有 gradients。

作業系統的歷史、抽象化與三條課程主線|Stanford CS111 第 1 堂

第 1 講沿 1940 年代共用 I/O 卡片、batch processing、multiprogramming 與個人電腦的演變,解釋 OS 的功能如何隨硬體成本與使用者需求逐層增加。

行程與執行緒的執行抽象、狀態與切換|Stanford CS111 第 2 堂

第 2 講先定義行程與執行緒的共享/私有狀態,再用 fork、execvp、waitpid 與 thread creation 說明核心如何建立執行單位。

核心執行緒、使用者執行緒、context switch 與 dispatcher|Stanford CS111 第 3 堂

第 3 講沿 running、blocked、ready 狀態轉移,拆解 PCB、context save/restore 與 dispatcher 如何完成一次 CPU 控制權交接。

交錯執行、race condition、atomicity 與 critical section|Stanford CS111 第 4 堂

第 4 講逐步拆解 Too Much Milk 的失敗排程,從具體 interleaving 推導 race condition、atomicity、critical section 與正確同步條件。

mutex、condition variable 與 Mesa semantics|Stanford CS111 第 5 堂

第 5 講用容量為 8 的環形 Pipe 證明:mutex 只提供互斥;condition variable 才能在 predicate 不成立時原子地釋放鎖並阻塞;Mesa semantics 下,wait 返回後必須用 while 重查條件。

關中斷、原子指令、spinlock 與阻塞式 lock 的實作|Stanford CS111 第 6 堂

第 6 講從單核心關中斷一路修到多核心 v5,追蹤 guard、lock 與 wait queue,說明 atomic exchange、spin、block 與 wakeup 如何避免 race 和 lost wakeup。

Deadlock 的四個必要條件與全域鎖順序|Stanford CS111 第 7 堂

第 7 講用 request/ownership graph 拆出 deadlock 的四個必要條件,再比較 detection、prevention 與 lock ranking;實務上最常破壞 circular wait,但代價是所有模組必須遵守同一個全域順序。

FIFO、round robin、priority 與多核心排程|Stanford CS111 第 8 堂

第 8 講從 FIFO、round robin 與不可實作的 SRPT,推到自適應 priority queues、BSD scheduler,再處理多核心 queue contention、core affinity 與 work-conserving 的衝突。

object file、symbol、relocation、static 與 dynamic linking|Stanford CS111 第 9 堂

第 9 講沿著 source→assembly→object→executable→process,拆解 linker 的三次掃描、symbol relocation,以及 dynamic loader 如何用 jump table 把 shared library 位址延後到啟動時解決。

allocator 介面、free list、fragmentation 與 placement policy|Stanford CS111 第 10 堂

第 10 講從 stack 的可預測 LIFO,推到 heap 的 free lists、first/best fit 與 slabs,再比較 reference counting 和 mark-and-sweep 如何在 dangling pointers、leaks、cycles、fragmentation 間取捨。

Storage Reclamation、Reference Counting 與 GC|Stanford CS111 第 11 堂

第 11 講的官方 PDF 與 Lecture 10 逐位元組相同;本文誠實保留此 artifact 缺口,聚焦後半的 reachability、dangling pointers、leaks、reference-count cycles 與 mark/compact GC。

可信任的定義、隔離、驗證與從不信任建立信任|Stanford CS111 第 12 堂

第 12 講把 trust 定義為自願承受 vulnerability,區分 over-trust 與 untrustworthiness,再用 assumption、inference、substitution 分析 Linux TCB、xz attack 與 AI code policy。

位址空間、relocation、base-and-bound 與保護|Stanford CS111 第 13 堂

第 13 講從 single-tasking 與 load-time relocation 的失敗出發,以 MMU 的 base/bound 建立 virtual/physical address spaces、透明隔離與 traps,再用 segmentation 解開單一連續區域的限制。

segmentation、共享、稀疏位址空間與配置限制|Stanford CS111 第 14 堂

Lecture 14 的官方 PDF 與 Lecture 13 逐位元組相同;本文明示此缺口,聚焦 segmentation 如何以多組 base/bound/protection 支援 growth、sharing、compaction,以及 fixed-count、fragmentation、rigid layout 限制。

page、frame、page table、TLB 與多層頁表|Stanford CS111 第 15 堂

第 15 講以固定大小 pages 消除跨 process external fragmentation,再拆解 x86-64 四層 page-table walk、sharing/aliasing 與 TLB,說明 translation speed、table sparsity、context switch 和 page size 的連動取捨。

Page Fault、Demand Fetching 與 Prefetch|Stanford CS111 第 16 堂

Demand paging 只在需要時載入頁面;present bit、精確例外與可重啟指令讓核心能從 executable、zero-fill 或 backing store 安全補頁。

從 page fault 到 Clock,記憶體滿了該換掉誰?|Stanford CS111 第 17 堂

第 17 講把 demand paging 分成 fetching 與 replacement:MIN 無法預知未來,精確 LRU 成本過高,Clock 只靠 reference/dirty bits 找夠舊的 page;active working sets 放不進 RAM 時,1% fault rate 就可能帶來約 1,000 倍 slowdown。

磁碟幾何、Interrupt 與 DMA|Stanford CS111 第 18 堂

磁碟把機械式 seek 與 rotation 隱藏成線性 block API;現代 I/O 再用 memory-mapped registers、DMA queues 與 interrupts,讓 CPU 只負責下命令和收完成通知。

檔案抽象、配置策略與 FAT|Stanford CS111 第 19 堂

檔案系統把耐久 byte collection 映射到磁碟 blocks;contiguous、linked 與 FAT 分別交換 locality、成長彈性、random access 與 metadata 成本。

多層 Inode、Index Walk 與磁碟排程|Stanford CS111 第 20 堂

4.3BSD inode 用 direct、single-indirect 與 double-indirect pointers 讓 lookup depth 隨檔案大小分級;FIFO、SPTF、SCAN 與 CSCAN 則交換 seek cost、公平性與等待時間。

Block Cache、Free Bitmap 與 Delayed Allocation|Stanford CS111 第 21 堂

Block cache 把熱索引留在 DRAM,bitmap 與保留空間維持配置選擇,fragments 和 delayed allocation 則用較晚、較完整的資訊換取 locality。

Directory Lookup、Hard Link 與 Symbolic Link|Stanford CS111 第 22 堂

Directory 把文字名稱映射到 file-system-local i-number;hard link 共享 inode 與 reference count,symbolic link 則保存 pathname,換得跨檔案系統能力但可能形成 loop 或 dangling link。

從 fsck、Ordered Writes 到 Write-Ahead Logging|Stanford CS111 第 23 堂

檔案系統一次操作會改動多個 block,崩潰卻可能發生在任兩次寫入之間;本講比較 fsck、ordered writes 與 write-ahead logging 如何交換復原時間、效能、耐久性與一致性。

Journaling、Transaction 與 Checkpoint|Stanford CS111 第 24 堂

第 24 講從 WAL 入口往下拆 transaction、idempotent replay 與 checkpoint,說明一致性不等於 durability,journal 也不能取代 fsync 與備份。

Truth, Trust, and Technology——演算法、生成式 AI 與 deepfake 如何改寫信任|Stanford CS111 第 25 堂

第 25 講把 trust 拆成假設、推論與替代三種建立方式,再檢視社群推薦、生成式 AI 與合成媒體如何放大過度信任;實務答案是保留來源、交叉驗證並協調責任。

Flash Translation Layer、Garbage Collection 與 Wear Leveling|Stanford CS111 第 26 堂

Flash 只能逐頁 program、整個 erase unit 清除;FTL 以 out-of-place mapping 隱藏不對稱,再用 garbage collection、temperature segregation、wear leveling 與 TRIM 管理放大成本。

Trap-and-Emulate、Virtual I/O 與 Nested Page Tables|Stanford CS111 第 27 堂

VM 把 process interface 擴成完整硬體介面;hypervisor 讓普通指令直接執行、攔截 privileged operations,並虛擬化 interrupts、I/O 與兩層位址轉譯。

用四個觀念串起並行、記憶體與儲存|Stanford CS111 第 28 堂

第 28 講把整學期收斂成並行、記憶體、儲存三條主線,再用 virtualization、atomicity、locality、layering 四個觀念解釋作業系統如何管理共享資源。

從語言到資訊:一門同時教 tf-idf 和 LLM 的 NLP 入門課|Stanford CS124 課程總覽

CS124 是 Stanford NLP 分支的第一門課:十週從斷詞、n-gram、文本分類、資訊檢索與詞嵌入,講到 LLM 與 Transformer。教科書是免費的《Speech and Language Processing》,九個作業 repo 與實作課的題目和解答都公開;預錄影片、每週複習測驗與自動評分要 Stanford 帳號。

人工智慧原理與技術:反射、狀態、變數、邏輯四層主脊|Stanford CS221 課程總覽

CS221 是 Stanford 的人工智慧原理課,把 AI 排成反射、狀態、變數、邏輯四層,深度學習只是最低的那一層。可執行的 Python 講義與八份作業(含程式骨架與本機評分器)全部公開;課堂錄影、隱藏測資與作業解答拿不到。

用深度學習做自然語言處理:從 word2vec 到自己刻 Transformer|Stanford CS224N 課程總覽

CS224N 是 Stanford 用深度學習做自然語言處理的課:從詞向量、反向傳播講到 Transformer,之後每一堂都建立在 Transformer 之上,四份作業包含自己刻一個 decoder-only Transformer。現行投影片與作業公開,第三份作業附可以在筆電上跑的單元測試;公開的完整錄影是較早的版本,跟現行課表有落差。

自然語言理解:接在 CS224N 之後補了什麼|Stanford CS224U 課程總覽

CS224U 是 Stanford 的自然語言理解課,接在 CS224N 之後:教情感分析的領域適應、檢索增強的 in-context learning、進階行為評估與模型分析方法,三份作業各附一場 bake-off。教材是一個公開的 GitHub repo,投影片與線上版的全套錄影也公開;第一份作業的資料載入在新環境要自己修正才跑得起來。

Agentic AI:用形式方法處理幻覺|Stanford CS224V 課程總覽

CS224V 是 Stanford 的 Agentic AI 課:教怎麼用形式語意、知識圖譜與形式方法約束 LLM agent,讓它少編造,兩份作業之後以專案為主。十四堂講義、閱讀清單、作業講義與課程用到的開源系統(STORM、WikiChat、SUQL、Genie Worksheets)都公開;沒有公開錄影,公開的投影片是刻意留白的版本,作業要用的憑證也只發給選課學生。

圖機器學習:十九堂課的重心與六份 Colab 作業|Stanford CS224W 課程總覽

CS224W 是 Stanford 的圖機器學習課:十九堂從節點嵌入、GNN、graph transformer、知識圖譜,講到關聯式深度學習與 GNN 加 LLM。投影片、三份書面作業與六份 Colab 都公開,可以直接下載開跑;公開錄影是 2021 年的版本,後半的新主題只有投影片,考試與自動評分拿不到。

機率圖模型:把指數量級的推論壓成多項式|Stanford CS228 課程總覽

CS228 是 Stanford 的機率圖模型課,分表示、推論、學習三塊:用圖寫下獨立性假設,把指數量級的機率計算壓成多項式。自學者拿得到的是 16 章的公開講義 cs228-notes;講次投影片、錄影與當季作業都拿不到。

從線性迴歸到訓練推理模型:課程地圖與閱讀路線|Stanford CS229 課程總覽

CS229 是 Stanford 把機器學習的數學推導走一遍的主課。Spring 2026 的錄影公開了 17 堂,前十堂是線性模型、神經網路與非監督式學習,後七堂走到擴散模型、LLM 與用強化學習訓練推理模型。本系列一堂一篇,這篇是地圖:每堂實際教什麼、影片標題哪裡對不上、講義有而課堂沒教的去哪裡補。

AI Agent 工程:不靠框架,從一個 chat-completion 呼叫做出 agent harness|Stanford CS329Z 課程總覽

CS329Z 是 Stanford 的 AI agent 工程課:先不靠框架手刻 RAG、工具呼叫與 agent 迴圈,再看 DSPy 這類框架抽掉了什麼,兩份作業分別是做 agent harness 與設計 agent 評估。課綱、50 篇閱讀清單、逐堂放出的投影片與第一份作業的起始碼、資料和公開測試都拿得到;錄影要以選課身分登入 Canvas。

從零打造語言模型:五份作業與要自己算的 GPU 預算|Stanford CS336 課程總覽

CS336 是 Stanford 從零打造語言模型的課:五份作業依序做 tokenizer 與 Transformer、訓練系統最佳化、scaling law、資料處理、對齊與推理 RL,沒有程式骨架,只有測試。講義、錄影、五份作業的 repo 與排行榜都公開;從第二份作業起算力要自己準備,課程贊助的算力與評分拿不到。

計算的數學基礎:前半教怎麼證明,後半教什麼證不出來|Stanford CS103 課程總覽

CS103 是 Stanford 的計算數學基礎課:前半教集合、邏輯、圖與歸納法的證明寫作,後半教有限自動機、圖靈機、可判定性與 P 對 NP。投影片、作業題目、起始檔與自製講義全部公開,自動評分的題目可以在本機自測;解答、練習考題與上課錄影要 Stanford 登入。

計算機組織與系統:從 C 與指標到 x86-64 與自己寫 malloc|Stanford CS107 課程總覽

CS107 是 Stanford 的計算機系統課:從位元、C 字串與指標,走到 x86-64 組合語言與執行期堆疊,最後自己寫 heap allocator,共七份作業。講義、作業說明與 lab 的逐題解答都公開;作業起始碼放在 Stanford 的 AFS 上,沒有校內帳號拿不到。

給電腦科學的機率:從計數、推論到機器學習|Stanford CS109 課程總覽

CS109 是 Stanford 給電腦科學學生的機率課:從計數、條件機率與隨機變數,走到推論、最大概似估計、邏輯迴歸與深度學習。互動式課程讀本、課堂習題與解答公開,每一講還附官方寫的 LLM 學習指南;第 15 講之後的投影片、作業系統與錄影校外拿不到。

作業系統原理:從執行緒、虛擬記憶體到檔案系統|Stanford CS111 課程總覽

CS111 是 Stanford 的作業系統原理課,分並行、記憶體管理、檔案系統三塊,共九份作業。28 份講義、九份作業說明與三年附解答的期中期末考題都公開;起始碼要能登入校內的 myth 機器,錄影在 Canvas。

演算法設計與分析:從分治、圖論到動態規劃與最大流|Stanford CS161 課程總覽

CS161 是 Stanford 的演算法設計與分析課:十八講從漸近分析、分治與隨機演算法,走到圖演算法、動態規劃、貪婪法與最大流。講義、投影片、八份作業題目、附解答的討論課題目與 Python notebook 都公開;錄影、作業解答與考卷拿不到。

為什麼分析演算法要從 Karatsuba 乘法開始|Stanford CS161 第 1 堂

把兩個 n 位數各切成兩半,直覺分治仍要做 4 個子乘法,時間沒有離開 n²;Karatsuba 用 (a+b)(c+d)-ac-bd 算交叉項,把分支降到 3,得到約 n^1.585 的成長率。

從 InsertionSort 證明到 MergeSort 的 n log n|Stanford CS161 第 2 堂

第二講把「快」拆成可證明的最壞情況上界:InsertionSort 用迴圈不變量證正確、最壞為 n²;MergeSort 用遞迴不變量與每層 O(n) 的遞迴樹,得到 O(n log n)。

Master Theorem 怎麼讀懂一棵遞迴樹|Stanford CS161 第 3 堂

對 T(n)=aT(n/b)+O(n^d),真正的比較是分支成長 a 與單題工作縮小 b^d:a=b^d 時每層同重,a<b^d 時頂層主導,a>b^d 時葉層主導;不合模板就改用 substitution。

Median of Medians 如何保證線性 Selection|Stanford CS161 第 4 堂

Selection 不必先排序。Median of medians 每 5 個元素取中位數,再取這些中位數的中位數作 pivot,保證較大的遞迴側至多 7n/10+5;用 substitution 可證 worst-case O(n)。

Randomized QuickSort 的期望時間怎麼證|Stanford CS161 第 5 堂

Randomized QuickSort 對每個固定輸入都有 O(n log n) 期望時間,但最壞仍是 Θ(n²);正確證明不是把期望子問題大小代入 recurrence,而是計算每對元素被比較的機率。

Sorting 下界與線性時間 Radix Sort|Stanford CS161 第 6 堂

Ω(n log n) 只限制 comparison sorting。若整數 key 可直接索引 bucket,stable Counting Sort 可作為 Radix Sort 的內層;在 M≤n^c 等條件下能達 O(n)。

二元搜尋樹、紅黑樹與最壞 O(log n) 的來源|Stanford CS161 第 7 堂

一般 BST 的操作成本是 O(h),偏斜時會退化成 O(n);紅黑樹用五條顏色不變量把高度限制在 2 log₂(n+1),因此搜尋、插入與刪除都有最壞 O(log n) 保證。

雜湊、碰撞與期望 O(1) 到底保證什麼|Stanford CS161 第 8 堂

Universal hash family 只需讓任意兩個不同 key 的碰撞機率不超過 1/n,就能把某個 key 所在 bucket 的期望長度壓到 2 以下;這給的是 expected O(1),不是每次操作的最壞 O(1)。

圖的表示、DFS、BFS 與兩種搜尋順序的證明|Stanford CS161 第 9 堂

DFS 與 BFS 都在 adjacency list 上以 O(n+m) 掃完整張圖;DFS finish times 能為 DAG 產生拓撲順序,BFS layers 則精確等於無權圖的最短距離。

兩次 DFS 為什麼能找出強連通分量|Stanford CS161 第 10 堂

把每個 SCC 壓成一點後一定得到 DAG;第一趟 DFS 的 finish times 排出這些分量,第二趟在轉置圖按遞減順序搜尋,每棵 DFS tree 恰好是一個 SCC,總時間 O(n+m)。

Dijkstra、Bellman–Ford 與鬆弛的兩種秩序|Stanford CS161 第 11 堂

Dijkstra 每次確定最小 estimate,正確性依賴非負 edge weights;Bellman–Ford 不挑 vertex、反覆鬆弛所有 edges,以 O(nm) 換取負權支援並能偵測 source 可達的負環。

用動態規劃重寫 Bellman–Ford 與 Floyd–Warshall|Stanford CS161 第 12 堂

動態規劃先精確定義子問題,再用 optimal substructure 寫 recurrence,最後依相依順序填表;Bellman–Ford 以 edge 數分層,Floyd–Warshall 則以允許的中繼頂點分層。

從 LCS、背包到樹上獨立集的動態規劃設計法|Stanford CS161 第 13 堂

Lecture 13 把動態規劃整理成五步:選 state、寫 transition、填表、回復解、再優化實作。LCS 是 O(mn),兩種背包都是 O(nW) 的擬多項式時間,樹上最大權重獨立集則能在 O(|V|) 完成。

貪婪演算法何時能從局部最佳走到全域最佳|Stanford CS161 第 14 堂

貪婪演算法不是『每次挑看起來最好的』,而是每次只保留一個選擇,並用交換論證證明它不會排除最佳解。Lecture 14 以 activity selection、weighted completion time 與 Huffman coding 展示三種證明。

用 cut property 證明 Prim 與 Kruskal|Stanford CS161 第 15 堂

MST 的核心不是背兩支演算法,而是維持『目前選邊仍包含於某棵 MST』,再用 cut property 證明 Prim 與 Kruskal 每一步都安全。

Ford–Fulkerson、殘餘網路與最大流最小割|Stanford CS161 第 16 堂

Ford–Fulkerson 在殘餘網路沿 augmenting path 推流;找不到路時,可達集合形成與 flow 同值的 cut,同時證明最大流、最小割與兩者相等。

Gale–Shapley、穩定配對與可撤銷的貪婪選擇|Stanford CS161 第 17 堂

Deferred Acceptance 允許暫時接受後再反悔;proposal 的單調性證明它在 O(n²) 結束、產生 stable matching,且偏向 proposal 的一側。

從演算法工具箱走向 LP、編碼與 ML|Stanford CS161 第 18 堂

期末課以 slides 回顧 CS161 工具箱,再用 LP duality、Reed–Solomon 與 ML-assisted algorithms 指向後續方向;官方沒有提供 notes。

Stanford CS 課程導讀:按先修關係排一次,從 CS106A 到 CS336|Stanford CS 主線課程 課程地圖

Stanford CS 的骨架是 CS103、CS107、CS109、CS111、CS161;CS221 先修列出其中三門,另加 CS106B。本文依官方先修與編輯者建議順序排出主線,並標明公開教材與停開風險。