影片狀態:已附影片。 導言附基石第 1 堂的 Course Introduction(11 分鐘),各堂錄影在各堂導讀。影片來源與說明
台大資工系林軒田老師的機器學習基石與機器學習技法,是兩門 2015–2016 年開在 Coursera 上的中文 MOOC,各 16 堂。教科書是他和 Yaser Abu-Mostafa、Malik Magdon-Ismail 合著的 Learning from Data(下稱 LFD)。十年後他在台大開的 Machine Learning 仍是翻轉教室,每週的課前必看就是這兩門 MOOC 的影片。
這兩門課的特色是先問「為什麼」。基石大半時間不在教演算法,而在證明:只看過有限的資料,憑什麼相信模型對沒看過的資料也準?把這件事講清楚之後,技法才拿這套理論去解釋 SVM、boosting、決策樹、神經網路為什麼有效、什麼時候會失效。
這篇是系列入口:先講整門課的主線與每一段在學什麼,再用一個手算例子示範基石的核心論證,最後給先備檢查與閱讀路線。下面這支是林軒田自己介紹兩門課的設計,11 分鐘,和本文「主線」一節講的是同一件事,可以先看影片再讀,或讀完再看。
主線:基石四問與技法三段
01_handout.pdf 把基石定位成「story-like」的課,用四個問題串起 16 堂;技法再依「怎麼處理特徵」分成三段,最後一堂收尾。授課是中文、投影片是英文,下面保留投影片的問題原文。
flowchart LR
W["When<br/>學得會嗎"] --> Y["Why<br/>為什麼學得會"] --> H["How<br/>怎麼學"] --> B["Better<br/>怎麼學得更好"]
B --> K["embedding<br/>kernel 模型"]
B --> A["combining<br/>aggregation 模型"]
B --> E["distilling<br/>extraction 模型"]
基石 1:When Can Machines Learn?(第 1–4 堂)
先把「學習」定義清楚:有一個未知的目標函數 ,演算法 從資料 和假說集合 裡挑出 ,希望 。第一個演算法是感知器學習法(PLA):找到一個分錯的點 ,就把權重更新成 ,正例往那個點轉、負例往反方向轉;資料線性可分時保證停下來。第 3 堂接著依輸出(分類、迴歸、結構化)、標籤(監督、非監督、半監督、強化)、資料取得方式(批次、線上、主動)與輸入特徵分類各種學習問題,說明這門課聚焦在批次的監督式二元分類與迴歸。接著問更根本的事:資料以外的地方, 有可能和 一樣嗎?用「從罐子抽彈珠」的比喻帶出 Hoeffding 不等式:只要假說是事先固定的一個,樣本上的錯誤率 和整體錯誤率 差很多的機率會隨資料量指數下降。假說有 個時,機率最多放大 倍。
從第 1 堂開始讀。
基石 2:Why Can Machines Learn?(第 5–8 堂)
PLA 從無限多條線裡挑, 是無限大,上一段的保證就失效了。這一段的解法是:無限多條線在 個點上能切出的 ○× 組合(dichotomy)是有限的。把最多能切出幾種記成成長函數 ;只要在某個點數(break point)切不出全部 種, 就被一個多項式壓住,用它取代 得到 VC bound。最大的「還切得出全部組合」的點數叫 VC 維度 , 維感知器的 。第 8 堂把目標改成機率分布 來容納雜訊,VC bound 照樣成立;也說明錯誤衡量要依應用來定,例如誤拒與誤收代價不同時,用加權的錯誤衡量。
從第 5 堂開始讀。
基石 3:How Can Machines Learn?(第 9–12 堂)
有了「 小、 不大就能學」的保證,接著講怎麼把 壓低。線性迴歸用 pseudo-inverse 一步算出平方誤差的最佳解;邏輯迴歸輸出機率,沒有公式解,改用梯度下降。第 11 堂比較三種線性模型的誤差函數,說明為什麼迴歸的解可以拿來當分類的起點,並帶出隨機梯度下降(SGD)與多類別分類。第 12 堂用非線性轉換把資料映到新空間再用線性模型,代價是 跟著變大。
從第 9 堂開始讀。
基石 4:How Can Machines Learn Better?(第 13–16 堂)
模型太複雜、資料又有雜訊時, 很低但 很高,就是過擬合。對策有兩個:正則化(weight decay)在誤差函數裡加一項懲罰權重大小,用 控制強度;驗證則是留一部分資料不訓練,拿來挑 或模型。最後一堂講三個原則:Occam's Razor(能用簡單的模型就不要用複雜的)、抽樣偏差(訓練與測試資料要來自同一個分布)、資料窺探(看過資料再決定模型,等於偷用了資料)。
從第 13 堂開始讀。
技法 1:embedding numerous features(第 1–6 堂)
線性 SVM 在所有能分開資料的線裡,挑離最近的點最遠(最「胖」)的那條,寫成二次規劃。對偶形式把問題改寫成只依賴資料點之間的內積,於是可以用 kernel 函數 直接算出高維空間裡的內積,不必真的把特徵算出來。軟邊界 SVM 允許犯錯,用 權衡邊界寬度與錯誤。第 5、6 堂把 SVM 看成一種正則化模型,把 kernel 帶到邏輯迴歸與迴歸(SVR)。
從技法第 1 堂開始讀。
技法 2:combining predictive features(第 7–11 堂)
把多個假說合起來。Blending 對已經訓練好的模型投票或加權;bagging 用 bootstrap 抽樣訓練出不同的模型再投票。AdaBoost 每一輪把上一個分類器答錯的資料權重放大、答對的縮小,讓它在新權重下剛好只有一半正確,逼下一個分類器學不一樣的東西。決策樹(C&RT)每次選一個讓兩邊資料最「純」(分類時常用 Gini 不純度衡量)的切法,遞迴切到底,再依葉子數做正則化剪枝;隨機森林是 bagging 加上隨機選特徵的決策樹,還能用沒被抽到的資料(out-of-bag)估計誤差。GBDT 把 boosting 看成對誤差函數做梯度下降,每一棵樹去擬合目前的殘差。
從技法第 7 堂開始讀。
技法 3:distilling hidden features(第 12–15 堂)
讓模型自己從資料學出特徵。神經網路的每一層都是一次特徵轉換,用反向傳播算梯度;深度學習用預訓練與 autoencoder 找出好的初始權重,資料先減去平均後,線性 autoencoder 學到的就是 PCA。RBF 網路以資料到幾個中心點的相似度當特徵,中心點用 k-means 找。矩陣分解把評分矩陣近似成使用者矩陣乘上電影矩陣,只對有評分的格子算誤差,用交替最小平方或 SGD 同時學出兩邊的特徵向量。
從技法第 12 堂開始讀。技法第 16 堂把整門課收成三類處理特徵的技巧。
手算一次:為什麼需要 VC 維度
這是本文的教學例子,用來體會基石前兩段在解決什麼問題。
一個固定的假說。 Hoeffding 不等式說:
取 、:右邊是 。也就是說,100 筆資料上量到的錯誤率,和真正的錯誤率差超過 0.1 的機率最多 27%。想把這個機率壓到 5% 以下,要 ,解出 ,至少 185 筆。
從 10 個假說裡挑。 演算法挑出的是表現最好的那個,所以要所有假說同時都不能差太多,機率最多變成 10 倍。 時上界是 2.71,比 1 還大,什麼都沒保證。要壓回 5%,要 ,得 ,至少 300 筆。假說多了 10 倍,資料只要多一些,因為 是在對數裡。
從無限多條線裡挑。 PLA 的 是無限大,上界直接失效。這就是基石第 5 堂的起點:在平面上把 4 個點擺成正方形,線性分類器只切得出 種 ○× 組合裡的 14 種,「對角兩點是 ○、另外兩點是 ×」和它的反相切不出來。換成任何其他擺法,4 個點也切不出全部 16 種(第 5 堂的結論是最多 14 種);而 3 個不共線的點,8 種組合都切得出來。所以 4 是二維感知器的 break point,。成長函數因此是多項式而不是 ;VC bound 用它取代 (常數和 Hoeffding 版略有不同),資料量夠大時上界仍會趨近 0。
這個例子的意思: 能不能學,不看模型有幾個參數或幾條線,而看它在有限資料上能切出多少種結果。這個量就是後面每一段都在權衡的「模型複雜度」:技法講 SVM 的大邊界、正則化、boosting,都可以理解成在控制它。
先備與自我檢查
需要大一的微積分、線性代數與機率。機率不熟的話先讀站內的 Stanford CS109 導讀,或看統計與 ML 系列。最直接的檢測是 Fall 2024 HW0:限時一小時做組合與機率的部分,卡住兩題以上就先補機率。
讀完這篇,試著回答:
- Hoeffding 不等式為什麼不能直接保證 PLA 學得會? 答:它只保證一個事先固定的假說。PLA 從無限多條線裡挑,聯集上界乘上無限大就失效,要改用成長函數。
- 在 3 維空間裡用感知器, 是多少?為什麼這個數字重要? 答:。它是模型複雜度,VC bound 裡 和 的差距隨它變大。
- 用 10 次多項式擬合 15 筆有雜訊的資料,訓練誤差比 2 次多項式低,測試誤差卻高很多。該去讀哪一段? 答:基石 4。這是過擬合,對策是正則化與驗證。
- AdaBoost 一輪結束後,怎麼調整資料權重?目的是什麼? 答:答錯的乘上 、答對的除以它,讓這一輪的分類器在新權重下剛好一半正確,下一輪才學得到不一樣的東西。
- kernel SVM 為什麼不必算出高維特徵? 答:對偶形式只用到特徵之間的內積,kernel 函數直接在原空間算出這個內積。
三條自學路線
本系列以 MOOC 錄影為核心教材,以 Fall 2024 課程頁公開的作業為練習。
路線 A:只看影片。 照 基石與技法兩份 YouTube 播放清單看,配 handout 投影片。每支影片結尾有一題「Fun Time」選擇題,可以當最低限度的自我檢查。YouTube 版內容和 Coursera 版相同;Coursera 自 2025 年 8 月起,免費帳號只能看第一個單元。
路線 B:影片加 Fall 2024 作業(本系列主線)。 每讀完一段,做對應的作業:HW0–HW7 共 8 份,每份 12 題加 1 題 bonus,程式題的資料多半來自 LIBSVM datasets。作業沒有公開解答,程式題要自己設驗收方法,例如用 scikit-learn 的同名模型對照數值。期末專題(預測虛構棒球聯盟 HTMLB 的比賽輸贏)的 Kaggle 競賽頁已經不公開,只能自己切資料驗收。作業怎麼對到各堂,見基石作業與技法作業兩篇。
路線 C:跟著當期課程。 Fall 2026 課程頁每週列出課前必看的影片與 LFD 章節,課堂有公開的同步直播。作業批改只開放給修課生,旁聽可以照時程自己練。當期課表沒有排技法第 5–6 堂(kernel 邏輯迴歸、SVR)與第 14–15 堂(RBF 網路、矩陣分解),基石第 6 堂只列為選看,只跟課表走會漏掉這幾堂,要自己補。
本系列篇目
今晚可以做的事
- 打開 Fall 2024 HW0,限時一小時做完組合與機率那一段。
- 下載基石 handout zip,看 Course Introduction。
- 把上面「手算一次」的三步自己再算一遍,然後讀基石第 1 堂。
下一篇:基石第 1 堂:機器學習是什麼
延伸閱讀
- 台大 AI/ML 課程導讀:把林軒田的課放進台大課程版圖比較。
- 台大李宏毅 機器學習 2026 Spring 導讀:台大的平行路線,從 AI Agent 切入,偏深度學習與生成式 AI。
- Stanford CS229 導讀:SVM、kernel 與學習理論的另一種講法。
- Caltech Learning from Data:Abu-Mostafa 用同一本教科書開的英文課,可以和基石對照著看。
- CMU 10-301 導讀、Berkeley CS189 導讀:其他學校的 ML 入門課。
課程影片來源
本文是課程總覽,導言嵌入基石第 1 堂的 Course Introduction;其餘各堂請從官方課程入口與播放清單查找。
課程與錄影入口:
兩份播放清單各 65 支(每堂 4 支,第 1 堂多一支 Course Introduction);各堂錄影見各堂導讀。查核日期:2026-10-14。
更新紀錄
- 2026-10-14:正文改寫成導讀:補上七段主線各自的機制、Hoeffding 到 VC 維度的手算例子與自我檢查,導言嵌入 Course Introduction;存取分級、版本基準、Coursera 政策與 Fall 2026 週次表縮成自學路線裡的幾句話。
- 2026-10-13:系列改為一堂一篇(基石 16 堂、技法 16 堂),這篇的對照表、篇目與連結跟著更新。
- 2026-10-10:標註影片狀態,核對錄影來源與取得方式。
參考資料
- Hsuan-Tien Lin > MOOCs — 兩門 MOOC 的 32 堂大綱、投影片、授權說明
- 機器學習基石 handout 全集(zip)
- 機器學習技法 handout 全集(zip)
- MOOC 勘誤
- 機器學習基石 YouTube 播放清單(65 支)
- 機器學習技法 YouTube 播放清單(65 支)
- Lecture 1 投影片 01_handout.pdf — Course Introduction 與課程設計
- Coursera:機器學習基石上(Mathematical Foundations)
- Coursera:機器學習基石下(Algorithmic Foundations)
- Coursera:機器學習技法
- 臺大開放式課程:Coursera 平台課程資訊提醒 — 2025 年 8 月起的預覽制
- Machine Learning, Fall 2026 課程頁 — 課前必看清單、課程計畫
- Machine Learning, Fall 2024 課程頁 — 作業與投影片
- Fall 2024 Homework 0
- Fall 2024 Final Project(final.pdf)
- LIBSVM Data — Fall 2024 程式題資料集來源
- Learning from Data 教科書網站
- Caltech Learning from Data telecourse
- 站內:台大 AI/ML 課程導讀