對偶 SVM:用拉格朗日對偶擺脫特徵維度|台大林軒田 機器學習技法 第 2 堂
hard-margin SVM 的原始問題有 d̃+1 個變數,特徵維度一大就解不動。這堂課用拉格朗日對偶把它換成只有 N 個變數、N+1 條限制的二次規劃,再用 KKT 條件從 α 算回 w 與 b;只有 α 大於 0 的支援向量會影響答案。對偶問題的矩陣裡還留著 d̃ 維的內積,所以特徵維度要到下一堂才真的擺脫。
hard-margin SVM 的原始問題有 d̃+1 個變數,特徵維度一大就解不動。這堂課用拉格朗日對偶把它換成只有 N 個變數、N+1 條限制的二次規劃,再用 KKT 條件從 α 算回 w 與 b;只有 α 大於 0 的支援向量會影響答案。對偶問題的矩陣裡還留著 d̃ 維的內積,所以特徵維度要到下一堂才真的擺脫。
梯度下降等於假定權重空間是歐氏的,而神經網路多半不是。Bernstein 的做法是替每一層選一個範數(線性層用依形狀縮放的譜範數),再用兩條組合規則算出整個網路的範數;用它正規化更新,最佳學習率就不隨寬度與深度漂移。把同一個想法推到對偶映射,線性層的更新變成「把梯度的奇異值全設為 1」,這也是當時 nanoGPT 訓練速度紀錄用的做法。
L2 給了分數函式和 loss,L3 回答「怎麼找到好的 W」。前半講正則化:在 data loss 旁邊加 λR(W),讓模型不要把訓練資料背得太好。後半是一條最佳化器的演進線:SGD 在窄長山谷裡會來回震盪,Momentum 累積速度,RMSProp 依每個維度調步伐,Adam 把兩者合起來再做偏差修正,AdamW 把 weight decay 移到動量計算之外。投影片最後的實務建議是:多數情況先用 Adam(W),SGD+Momentum 可能更好,但要花更多力氣調學習率與排程。
技法第 16 堂沒有新模型,它把前 15 堂的模型改用三個問題重新分類:特徵藏在哪裡(kernel、aggregation、extraction、低維投影)、誤差怎麼降下來(梯度、等價問題、拆成多步)、模型太強時怎麼踩煞車(正則化、驗證)。本文用八個點把 PCA 加 AdaBoost-Stump 從頭算完,三個問題各對一次答案;最後保留 Fall 2024 校內課補上的 ReLU、Xavier/He 初始化、momentum、RMSProp 與 Adam。
把資料全部分對的線有很多條,這堂課挑離最近的資料點最遠、也就是最胖的那一條。把 (b, w) 縮放到 min yₙ(wᵀxₙ+b)=1 之後,最大的 margin 等於最小化 ½wᵀw,限制式是每個點 yₙ(wᵀxₙ+b)≥1,可以直接交給二次規劃的解算器。胖的好處有兩種解釋:它是 E_in=0 範圍內的 weight decay,也讓能產生的 dichotomy 變少。
HW3 分兩半:書面四題從 logistic regression 的 Newton 法、座標下降的收斂分析,走到反向傳播/VJP/隱式微分,最後用資訊瓶頸重新看「深度網路在壓縮什麼」;notebook 要你用 NumPy 寫出 BearTensor 計算圖、拓撲排序反向傳播、SGD/Momentum/Adam,再拿它訓練紅酒品質回歸,選做 Muon。題目與 notebook 全部公開,官方解答與 hidden tests 不公開。
CS189 Spring 2026 用兩講處理梯度下降。Lec 13 從 Hessian 的特徵值推出學習率上限和條件數,再一路講到 momentum、學習率排程、AdaGrad/RMSProp/Adam 與 mini-batch SGD。Lec 15 由 Dimakis 用一個小資料表手算梯度重走一遍。兩份講義、錄影、Lec 13 的手寫稿,以及 Discussion 6、7(附解答)都能匿名取得。
HW3 分三塊:程式作業要你用頂點枚舉寫出 LP 求解器,再在上面疊 branch and bound 解整數規劃,外加三題文字建模;書面四題分別是整數規劃手算、Amazon 送貨路線的倫理、PCA 的 SVD 計算,以及證明 Laplace 先驗等價 L1。截止日是 10/1,本文只講結構和需要的概念,不給解答。
07-380 Lec5 用 Diet Problem 把一段文字題寫成 min cᵀx s.t. Ax ⪯ b,再畫成圖:每條限制是一個半平面,cost 是一個方向,等成本線垂直於 c。沿著 −c 推到最後一刻碰到可行域的地方,一定包含某個頂點,所以演算法只要看限制邊界的交點:頂點枚舉全部檢查,simplex 從一個頂點貪心走到鄰居。
07-380 Lec6 在 LP 上多加一條 x ∈ ℤᴺ,頂點解就可能不是整數,而且在 LP 解附近找整數點也不保證對。解法是先把整數限制拿掉(relaxation),用 LP 算出下界,再對某個非整數座標分成 xᵢ ≤ floor 與 xᵢ ≥ ceil 兩支,全部丟進依 LP 目標值排序的 priority queue;第一個被取出的整數解就是最優解。
07-380 前十講依課站 Schedule 分成 Reasoning Under Certainty、Optimization、Reasoning Under Uncertainty 三段:先用邏輯證明、用搜尋規劃,再把問題寫成有限制的目標函數,最後在 MAP 讓先驗進場、轉向機率模型。HW1 檢查邏輯+搜尋、HW2 檢查規劃+LP 圖解、HW3 檢查求解器實作+PCA 與 MAP 推導。
第 3 週講最佳化的三種寫法:局部搜尋只記一個 state,hill climbing 往更好的鄰居走、會卡在局部極值,模擬退火用 e^(ΔE/T) 的機率接受變差的一步;線性規劃把問題寫成線性成本函數加線性限制,交給現成的求解器;約束滿足問題用 node consistency、arc consistency(AC-3)縮小 domain,再用回溯搜尋配合 MRV、degree、least-constraining value 三個 heuristic 找解。附逐段時間連結,以及 Crossword 專案的解題思路、虛擬碼、易錯處與檢查方式(參考實作摺疊在最後)。
優化不是孤立的數值問題:用譜視角看 SGD,權重更新的『量』決定特徵學習;Maximal Update Parameterization 讓學習率與初始化跨寬度遷移,critical batch size 決定算力換取收斂的邊際。
從 SGD 到 Adam,用縮放規則一次搞懂深度學習優化器怎麼選、學習率怎麼調
模型透過 loss 知道自己錯多少,透過梯度知道往哪邊調。梯度下降就是反覆做三件事:算 loss、算梯度、調參數。Learning rate 決定每步調多大——太大會跳過最佳解,太小訓練到天荒地老。
Lecture 8 從一維 parabola 推到 vector gradient,再比較 batch GD、SGD 與 mini-batch;learning rate 決定更新是收斂、震盪或發散。
第十一講從 MiniCPM、DeepSeek、Qwen 與 Llama 3 的公開 recipe 拆解 scaling 實務:先固定大多數架構比例,再用小規模 sweep 找 learning rate、batch 與 IsoFLOPs 配置;μP 有用,但會被 normalization、optimizer 與 weight decay 破壞。
HW4 把機率解釋、cross-entropy 梯度與程式實作綁在一起,驗收的是一條可追蹤的訓練流程。
CS107 第 24 講用矩陣乘法與 Callgrind 建立量測流程,再拆解 GCC 的 constant folding、共同子運算式消除、dead-code elimination、strength reduction、code motion 與遞迴轉迴圈;最佳化從瓶頸證據開始。
自動 prompt 優化(APO)從 APE/OPRO 演進到 GEPA:用語言反思取代稀疏 reward,少 4–35 倍 rollouts 贏過 GRPO 約 6pp。另一邊,tool description 是被忽略的 prompt——小改措辭能讓工具選用率變 10 倍,Anthropic 實測讓 Claude 自我改寫 tool description 勝過人類專家手寫。兩條線正在合流:eval-driven 的自動優化吃掉手工調 prompt。