Skip to content
所有標籤

#ntu-htlin-ml

13 篇文章

林軒田機器學習技法 T7–T8:Blending、Bagging 與 AdaBoost

技法第 7、8 講是 aggregation 模型的入口。T7 先把「組合多個假說」排成 uniform、linear、any(stacking)三種 blending,用一行代數證明 uniform blending 降低的是 variance,再用 bootstrap 在手上唯一一份資料裡造出多樣的 g_t,就是 bagging。T8 把 bootstrap 重新解讀成「替樣本加權」,改成專挑上一輪答錯的樣本加重,讓下一個假說被迫不同,再用 α_t = ln √((1−ε_t)/ε_t) 當投票權,這就是 AdaBoost。練習用 Fall 2024 HW6 Q4、Q9 與 HW7 的 bootstrap、AdaBoost 證明題和 madelon 上 500 輪的 AdaBoost-Stump 實驗;沒有官方解答。

林軒田機器學習基石與技法導讀:總覽與自學路線

林軒田的機器學習基石(16 講)與技法(16 講)是兩門中文 MOOC,130 支 YouTube 影片與 32 份投影片全部免費。只看 MOOC 是 A2:Coursera 自 2025 年 8 月起只讓免費帳號看第一單元,練習題被擋在付費牆後。補上 Fall 2024 課程頁公開的 HW0–HW7 與期末專題說明,就能到 A3,只差評分鏈:沒有官方解答,Gradescope 與 NTU COOL 限修課生,Kaggle 競賽頁回傳 404。Fall 2026 正在進行,是翻轉教室,第 4 週以前的投影片與 hw0、hw1 已公開。

林軒田機器學習技法 T9–T11:決策樹、隨機森林與梯度提升樹

技法第 9–11 講用「樹+aggregation」一條線串起三種模型。T9 把決策樹看成 conditional aggregation,講 C&RT 的二元分支、Gini 與迴歸誤差、剪枝、類別特徵與 surrogate branch。T10 把 bagging 套在完全長大的樹上,加上隨機子空間與隨機投影就是隨機森林,順帶得到免費的 OOB 驗證與 permutation 特徵重要度。T11 先把 AdaBoost 重新推導成對指數誤差做函數空間的最速下降,再把誤差換成平方誤差,得到「對殘差做迴歸」的 GBDT。練習用 Fall 2024 HW7 的 impurity、gradient boosting 證明題;沒有官方解答。

林軒田機器學習基石導讀:學習可行嗎?Hoeffding 與「出了資料之外」

基石 Lecture 4 先證明學習「不可能」:只看資料 D,D 以外的答案怎麼猜都可能被說錯,這是 No Free Lunch。接著用抽彈珠換個問法:如果資料是從同一個分布獨立抽出來的,Hoeffding 不等式保證樣本錯誤率 E_in 很可能接近真實錯誤率 E_out。只驗證一個固定的 h 不算學習;演算法要從 M 個假說裡挑,就得用 union bound 付出 2M exp(−2ε²N) 的代價。結論:假說集合有限、E_in 又小,學習就可行。M 無限大怎麼辦,留給下一講。

林軒田機器學習技法 T5–T6:Kernel 邏輯迴歸與支援向量迴歸——SVM 其實是正則化模型

技法第 5 講把 soft-margin SVM 改寫成無限制形式:½wᵀw 加上 C 乘以 hinge 誤差的總和,也就是一個 L2 正則化模型,C 越大正則化越弱。hinge 誤差和邏輯迴歸的 cross-entropy 都是 0/1 誤差的凸上界,所以 SVM 近似於 L2 正則化邏輯迴歸。要機率輸出,可以用 Platt 的兩層學習在 SVM 分數上再跑一次邏輯迴歸,或靠 representer theorem 直接做 kernel 邏輯迴歸。第 6 講用同一個定理得到 kernel ridge regression 的解析解 β = (λI + K)⁻¹y,但 β 是稠密的;改用 ε-insensitive 的管狀誤差,就得到係數稀疏的 SVR。Fall 2026 沒有排這兩講。

林軒田機器學習技法 T3–T4:Kernel 技巧與軟邊界 SVM——無限維的分類器怎麼算、怎麼防過擬合

技法第 3 講把「特徵轉換+內積」合成一個 kernel 函數 K(x, x′),對偶 SVM 的訓練與預測都只要算 K,於是 d̃ 可以是無限大:Gaussian kernel 就對應一個無限維的轉換。第 4 講承認 SVM 仍會過擬合,引入違反量 ξₙ 與參數 C,得到 soft-margin SVM;它的對偶和 hard-margin 只差一件事:αₙ 多了上界 C。αₙ 的值把資料分成非支援向量、free SV 與 bounded SV 三類,而支援向量的比例 #SV/N 是 leave-one-out 誤差的上界,可以拿來快速排除危險的 (C, γ)。

林軒田機器學習基石導讀:學習問題、PLA 與學習的種類

基石前三講先把「機器學習」定義成一張流程圖:未知的目標函數 f 產生資料 D,演算法 A 從假說集合 H 挑出 g,希望 g ≈ f。接著用最簡單的 H(感知器)與 A(PLA)示範這張圖怎麼跑:資料線性可分時,PLA 的更新次數有 R²/ρ² 的上限;不可分時改用 pocket。第三講把學習問題依輸出、標籤、protocol、輸入四個軸分類,基石的主場是批次、監督式、具體特徵的二元分類或迴歸。練習用 Fall 2024 HW1 與 Fall 2026 hw1。

林軒田機器學習基石 L11–L12:線性分類模型、SGD、多類別與非線性轉換

基石 L11 把 PLA、線性迴歸、邏輯迴歸放在同一個分數 s = wᵀx 上比較:三者只差在誤差函數,而 scaled cross-entropy 是 0/1 誤差的上界,所以兩種迴歸都能拿來做分類。接著用「隨機挑一筆算梯度」把邏輯迴歸變成 SGD,並用 OVA、OVO 把二元分類器組成多類別分類器。L12 用特徵轉換 Φ 把圓形邊界變成 Z 空間裡的直線,代價是計算量與 d_vc 都跟著維度變大,所以結論是「先試線性模型」。練習題在 Fall 2024 HW4。

林軒田機器學習技法 T1–T2:線性 SVM 與對偶 SVM——最胖的分隔線、QP 與 KKT

技法第 1 講把「哪條分隔線最好」寫成最佳化問題:在 min yₙ(wᵀxₙ+b)=1 的縮放下,最大 margin 等於最小化 ½wᵀw,這是一個標準 QP。第 2 講用拉格朗日對偶把 d̃+1 個變數的 QP 換成 N 個變數、N+1 個限制的 QP,再用 KKT 條件從 α 解回 (b, w):只有 αₙ>0 的點,也就是支援向量,會影響答案。對偶問題還留著 zₙᵀzₘ 這個內積,所以要等下一講的 kernel 才算真正擺脫維度。

林軒田機器學習技法 T12–T13:神經網路與深度學習(autoencoder、PCA)

技法第 12、13 講開啟第三段「萃取隱藏特徵」。T12 從「perceptron 的線性組合」出發:兩層就能做 AND、OR,但做不出 XOR,多疊一層才行,這就是多層感知器;接著用 tanh 取代 sign、推導 backprop,再講非凸最佳化、d_vc = O(VD)、weight elimination 與 early stopping。T13 談 deep NN 的挑戰,把 autoencoder 當成「保留資訊的編碼」做逐層預訓練,把 denoising 當成正則化,最後證明線性 autoencoder 的最佳解就是 XᵀX 的前幾個特徵向量,也就是 PCA。這兩講錄於 2016 年,現代 DL 的補充在 Fall 2024 的 302u/303u。練習:Fall 2024 HW7 Q4、Q9 與 bonus Q13。

林軒田機器學習基石 L13–L14:過擬合與正則化

基石 L13 把過擬合定義成「E_in 更低、E_out 卻更高」,並用實驗找出四個成因:資料太少、隨機雜訊、目標函數太複雜(deterministic noise),以及模型太強。L14 的對策是正則化:把「退回 H₂」改寫成 ‖w‖² ≤ C 的限制,再用拉格朗日乘數變成最小化 E_in + (λ/N)wᵀw,這就是 weight decay。接回 VC 理論時,正則化讓有效 VC 維度 d_EFF 變小;L1 則換來稀疏解。練習題在 Fall 2024 HW4 Q8–9 與 HW5 Q1、Q5–6、Q10。

林軒田機器學習技法作業與期末專題:Fall 2024 HW6–HW7 與 HTMLB 勝負預測

Fall 2024 技法段有兩份作業和一個期末專題,題目 PDF 都公開。HW6 練 kernel、soft-margin SVM 與 aggregation,程式題用 LIBSVM 在 mnist.scale 的 3 對 7 子問題上數支援向量、算 margin、跑 128 次 validation。HW7 練 bootstrap、impurity、AdaBoost、gradient boosting 與神經網路,程式題是在 madelon 上實作 500 輪 AdaBoost-Stump。期末專題是虛構的 HTMLB 棒球勝負預測,分兩個 Kaggle stage,交一份最多 7 頁的英文報告,至少比較四種方法。沒有官方解答;Kaggle 競賽頁在 2026-09-30 未登入時回 404,校外讀者大概拿不到 HTMLB 資料,只能照同樣的切分方式換一份公開資料自評。

林軒田機器學習基石 L15–L16:驗證與三個學習原則

基石 L15 處理模型選擇:用 E_in 選會過擬合,用 E_test 選是作弊,折衷是從訓練資料切出驗證集,用 E_val 選完再拿全部資料重訓。驗證集大小 K 兩難,經驗值是 K = N/5;LOOCV 幾乎無偏但太貴又不穩,實務上用 5-fold 或 10-fold。L16 用 Occam's razor、sampling bias、data snooping 三個原則收尾,並用「Power of Three」把整門課收成三個領域、三個 bound、三個線性模型、三個工具。練習題在 Fall 2024 HW5。