k-means 與高斯混合模型:沒有標籤時怎麼分群|Stanford CS229 第 9 堂
第 9 堂從 k-means 的「指派、取平均」兩步出發,說明它為何一定停下來卻只保證到局部最佳;接著把硬指派換成機率,得到高斯混合模型與 EM 的 E-step(貝氏定理)和 M-step(加權平均)。最後用 Jensen 不等式畫出 EM 的圖像:每一輪造一條貼著 log-likelihood 的下界再爬到頂,完整推導留到第 10 堂。
第 9 堂從 k-means 的「指派、取平均」兩步出發,說明它為何一定停下來卻只保證到局部最佳;接著把硬指派換成機率,得到高斯混合模型與 EM 的 E-step(貝氏定理)和 M-step(加權平均)。最後用 Jensen 不等式畫出 EM 的圖像:每一輪造一條貼著 log-likelihood 的下界再爬到頂,完整推導留到第 10 堂。
前半堂用 Jensen 不等式替對數概似造出下界 ELBO,把 Q 取成後驗機率讓下界在目前參數緊貼,推出每一輪 EM 都不會讓概似下降,套回高斯混合就得到上一堂的加權平均公式。後半堂把 PCA 寫成在單位向量上最大化 uᵀΣu,答案是共變異數矩陣最大特徵值對應的特徵向量。
前向過程每一步把資料乘上 √(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 堂。
前半堂把擴散模型的 ELBO 收成一條式子:每個時間步都是「猜出當初加進去的雜訊」的平方誤差,訓練五步、取樣一個迴圈。後半堂開始講基礎模型:預訓練加適應的兩階段、linear probe、finetune、LP-FT,以及 LoRA 只訓練 2dr 個參數卻省不了多少運算的原因。
這堂課把 SimCLR 損失拆成一張 B×B 相似度矩陣:每一列做一次 softmax 分類,答案是對角線那一格。對角線被拉高、其餘被壓低,模型不需要標籤就學到「相似的東西向量相近」。後半堂用同一組向量做語意檢索,再接到 RAG。
這堂課把大型語言模型拆成三層:分詞把文字變成 token 編號,鏈式法則把整段文字的機率拆成一連串「下一個 token」的條件機率,訓練就是把每個位置的交叉熵加起來。後半堂打開 Transformer:query 與 key 的內積過 softmax 得到權重,對 value 做加權平均,再用 causal mask 擋住未來位置;單層 attention 的計算量隨序列長度 T 的平方成長。
生成時每個 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 上。
這堂課前 55 分鐘把循序決策寫成 MDP(狀態、動作、轉移機率、獎勵、折扣因子),推出固定策略的 Bellman 方程式是一組線性方程式;後 20 分鐘推導 policy gradient:用 ∇p = p∇log p 把梯度換回期望值,轉移機率因為不含 θ 而從梯度裡消失,最後停在「log 機率梯度的和 × 折扣獎勵的和」這條公式,變異數縮減留到下一堂。
學期最後一堂把 policy gradient 收尾:過去的獎勵與只依賴狀態的 baseline 都可以從權重裡拿掉而不改變期望值。接著用重要性取樣推出 PPO 的截斷目標函數,拆成四種情況看哪些樣本還有梯度,再比較 CISPO 的改法。最後把語言模型逐 token 生成寫成 MDP,只在答案對的時候給 1 分,用同一題 8 個樣本的平均當 baseline 訓練長思維鏈。
Agent 要能根據可信回饋修正行動;同一次任務做得更好,不代表模型權重已經學會。
以固定比較條件、配對結果與重現紀錄,把生成模型專案寫成可檢查的研究證據。
知道反向傳播用鏈式法則,還不等於能寫出正確的訓練迴圈。
以角色扮演報告分清論文主張、實驗證據與自己的推論,走完受控比較例子。
RNN 把歷史壓進一個狀態,attention 則讓目前位置直接讀取一組歷史表示。
模型學會的下一 token 分佈,跟我們怎麼從分佈挑 token,是兩件接續發生的事。
前一堂知道怎麼造出 noisy input 與噪聲標籤,這堂要回答下一個缺口:網路預測 ε 之後,怎麼得到下一個較乾淨的樣本?
普通 autoencoder 把輸入壓成一個向量再還原;VAE 則為每筆資料產生一個潛在分佈,讓重建與生成能在同一個機率模型中討論。
分清 ICL、SFT、reward model 與 RLHF 各自改變什麼,並用算例驗收
推導 DPO loss 並重算數值例子,再追 latent diffusion 的形狀與條件路徑
以完整數值例子與變式答案理解Vision-language model:圖片如何成為語言模型的輸入。