邏輯迴歸:用梯度下降學出機率|台大林軒田 機器學習基石 第 10 堂
邏輯迴歸用 θ(wᵀx) 估計 P(+1|x),資料卻只有圈與叉。這堂課用最大概似推出 cross-entropy 誤差 ln(1 + exp(−y wᵀx)),用連鎖律算出梯度是 −yₙxₙ 的 θ 加權平均;令梯度為零是 w 的非線性方程式,沒有閉式解,所以改用固定學習率的梯度下降 w ← w − η∇E_in(w) 一步一步走到谷底。
邏輯迴歸用 θ(wᵀx) 估計 P(+1|x),資料卻只有圈與叉。這堂課用最大概似推出 cross-entropy 誤差 ln(1 + exp(−y wᵀx)),用連鎖律算出梯度是 −yₙxₙ 的 θ 加權平均;令梯度為零是 w 的非線性方程式,沒有閉式解,所以改用固定學習率的梯度下降 w ← w − η∇E_in(w) 一步一步走到谷底。
AdaBoost 每一輪的權重總和,剛好是指數誤差 exp(−ys) 的總和。這堂課由此推出:基礎演算法找的 gₜ 是近似的函數梯度方向,票數 αₜ 是那個方向上的最佳步長。把指數誤差換成平方誤差,同一套推導變成「每一輪對殘差 yₙ − sₙ 做迴歸,再用單變數線性迴歸定步長」,基礎模型用砍弱的 C&RT 就是 GBDT。
第 2 堂把監督式學習拆成三件事:假設函數 h、最小平方成本 J(θ)、把 J 壓低的演算法。梯度下降每步要掃過全部 n 筆資料,minibatch SGD 只看一小批就更新,代價是在最佳解附近晃動;線性迴歸另有封閉解 θ = (XᵀX)⁻¹Xᵀy,前提是 XᵀX 可逆。
L2 給了分數函式和 loss,L3 回答「怎麼找到好的 W」。前半講正則化:在 data loss 旁邊加 λR(W),讓模型不要把訓練資料背得太好。後半是一條最佳化器的演進線:SGD 在窄長山谷裡會來回震盪,Momentum 累積速度,RMSProp 依每個維度調步伐,Adam 把兩者合起來再做偏差修正,AdamW 把 weight decay 移到動量計算之外。投影片最後的實務建議是:多數情況先用 Adam(W),SGD+Momentum 可能更好,但要花更多力氣調學習率與排程。
CS189 Spring 2026 用兩講處理梯度下降。Lec 13 從 Hessian 的特徵值推出學習率上限和條件數,再一路講到 momentum、學習率排程、AdaGrad/RMSProp/Adam 與 mini-batch SGD。Lec 15 由 Dimakis 用一個小資料表手算梯度重走一遍。兩份講義、錄影、Lec 13 的手寫稿,以及 Discussion 6、7(附解答)都能匿名取得。
CS181 Spring 2026 的 HW2(due 2/27)共四題 90 分:用行星觀測資料訓練 10 個 logistic 模型看偏差與變異、推導生成式分類的 MLE、在 27 筆貸款申請資料上實作五種分類器,再用 SGD/Momentum/Adam 看 ridge 怎麼改變損失地形。核心是分清「模型給的機率」和「10 個模型彼此不一致」這兩種不確定性。
模型透過 loss 知道自己錯多少,透過梯度知道往哪邊調。梯度下降就是反覆做三件事:算 loss、算梯度、調參數。Learning rate 決定每步調多大——太大會跳過最佳解,太小訓練到天荒地老。
Lecture 8 從一維 parabola 推到 vector gradient,再比較 batch GD、SGD 與 mini-batch;learning rate 決定更新是收斂、震盪或發散。