Skip to content
所有標籤

#ntu

66 篇文章

感知器與 PLA:一條線怎麼從錯誤裡修正出來|台大林軒田 機器學習基石 第 2 堂

這堂課給第 1 堂的流程圖填上第一組具體內容:假說集合 H 是所有的線(感知器),演算法 A 是 PLA,看到分錯的點就把 w 加上 yₙxₙ。資料線性可分時,從 w₀ = 0 出發最多修正 R²/ρ² 次就會停;資料分不開時改用 pocket,把看過錯最少的那條線留在口袋裡。

學習的種類:依輸出、標籤、資料取得方式與輸入來分|台大林軒田 機器學習基石 第 3 堂

這堂課把第 1 堂的學習流程圖沿四個方向各換一次:輸出空間 Y(二元分類、多類別分類、迴歸、結構化學習)、標籤 yₙ(監督式、非監督式、半監督式、強化學習)、資料交給演算法的方式(batch、online、active)、輸入空間 X(具體、原始、抽象特徵)。四個方向各有一個核心選項,合起來是基石之後的主場:批次、監督式、具體特徵的二元分類與迴歸。

泛化理論:一個 break point 怎麼把成長函數壓成多項式|台大林軒田 機器學習基石 第 6 堂

假說集合只要有 break point k,N 個點上最多能產生的 dichotomy 數 B(N, k) 就滿足 B(N, k) ≤ B(N−1, k) + B(N−1, k−1),由此推出 B(N, k) ≤ C(N, 0) + … + C(N, k−1),最高次是 N 的 k−1 次方。再用三個步驟把成長函數放進 Hoeffding,得到 VC bound:壞事機率 ≤ 4·m_H(2N)·exp(−ε²N/8)。二維感知器的 break point 是 4,所以學得起來。

雜訊與誤差衡量:目標有雜訊、錯誤有輕重時怎麼學|台大林軒田 機器學習基石 第 8 堂

這堂課把固定的目標函數換成目標分布 P(y|x):只要 (x, y) 是從同一個聯合分布獨立抽出來的,VC bound 在有雜訊時照樣成立。誤差衡量 err 和 P(y|x) 一起決定每個 x 上最理想的預測,0/1 誤差選機率最大的 y,平方誤差選加權平均。CIA 指紋辨識把誤放罰 1000 倍,這種加權分類等於把 −1 的資料複製 1000 次再做一般分類。

邏輯迴歸:用梯度下降學出機率|台大林軒田 機器學習基石 第 10 堂

邏輯迴歸用 θ(wᵀx) 估計 P(+1|x),資料卻只有圈與叉。這堂課用最大概似推出 cross-entropy 誤差 ln(1 + exp(−y wᵀx)),用連鎖律算出梯度是 −yₙxₙ 的 θ 加權平均;令梯度為零是 w 的非線性方程式,沒有閉式解,所以改用固定學習率的梯度下降 w ← w − η∇E_in(w) 一步一步走到谷底。

非線性轉換:用特徵轉換畫出曲線邊界的代價|台大林軒田 機器學習基石 第 12 堂

資料用直線切不開時,不必重新設計演算法:先用特徵轉換 Φ 把 x 換成 z,在 Z 空間照常跑線性模型,Z 空間的直線就是 X 空間的二次或更高次曲線。Q 次多項式轉換會把維度拉到 d̃ = C(Q+d, d) − 1,計算、儲存與 VC 維度(至多 d̃+1)都跟著漲,所以這堂課的結論是先試線性模型,不夠再往高次走。

正則化:weight decay 怎麼限制模型|台大林軒田 機器學習基石 第 14 堂

從 10 次多項式退回 2 次,等於在 10 次的問題上加限制式。把限制放軟成 ‖w‖² ≤ C 之後,最佳解上 E_in 的負梯度必須和 w 平行,由此得到 w_REG = (ZᵀZ + λI)⁻¹Zᵀy,也等於最小化 E_aug = E_in + (λ/N)wᵀw,這就是 weight decay。λ 愈大,等效的 C 愈小,有效 VC 維度 d_EFF 跟著變小;換成 L1 則會得到稀疏解。

三個學習原則:Occam's Razor、抽樣偏差與資料窺探|台大林軒田 機器學習基石 第 16 堂

基石最後一堂不教新演算法,講三個讓前十五堂的保證失效的情況。簡單的模型很難碰巧把亂標的資料分開:10 個點配隨機標籤,decision stump 分得開的機率只有 20/1024,所以分得開才有意義。訓練與測試不是同一個分布時 VC 保證不成立;資料只要影響過學習流程的任何一步,就不能再拿來評估結果。最後用 Power of Three 把整門課收成五組三。

對偶 SVM:用拉格朗日對偶擺脫特徵維度|台大林軒田 機器學習技法 第 2 堂

hard-margin SVM 的原始問題有 d̃+1 個變數,特徵維度一大就解不動。這堂課用拉格朗日對偶把它換成只有 N 個變數、N+1 條限制的二次規劃,再用 KKT 條件從 α 算回 w 與 b;只有 α 大於 0 的支援向量會影響答案。對偶問題的矩陣裡還留著 d̃ 維的內積,所以特徵維度要到下一堂才真的擺脫。

軟邊界 SVM:允許犯錯之後怎麼選 C|台大林軒田 機器學習技法 第 4 堂

hard-margin SVM 堅持把資料完全分開,所以會去擬合雜訊。這堂課替每個點加一個違反量 ξₙ,用參數 C 權衡邊界寬度與違反總量,得到 soft-margin SVM;它的對偶問題和 hard-margin 只差 αₙ 多了上界 C。αₙ 的值把資料分成非支援向量、free SV、bounded SV 三類,算 b 要用 free SV;C 與 γ 用交叉驗證選,支援向量的比例 #SV/N 是 leave-one-out 誤差的上界。

支援向量迴歸:把 kernel 與稀疏解帶到迴歸|台大林軒田 機器學習技法 第 6 堂

用 representer theorem 把 ridge regression 換成解 β,得到 kernel ridge regression 的解析解 β = (λI + K)⁻¹y,但 N 個 βₙ 幾乎都不是 0。把平方誤差換成 ε-insensitive 的管狀誤差,照 soft-margin SVM 的路線寫成 QP 再取對偶,就得到支援向量迴歸(SVR):對偶有 2N 個變數,嚴格落在管子裡的點 βₙ 一定是 0。

AdaBoost:調整資料權重,把弱分類器疊成強的|台大林軒田 機器學習技法 第 8 堂

這堂把 bagging 的 bootstrap 改看成替每筆資料加權,再刻意把權重調到讓上一輪的 gₜ 加權錯誤率剛好 1/2,逼下一輪學出不一樣的假說。做法是答錯的資料乘上 ◆ₜ = √((1−εₜ)/εₜ)、答對的除以它,並用 αₜ = ln ◆ₜ 當票數做線性投票,這就是 AdaBoost。基礎演算法只要每一輪都比亂猜好一點,E_in 會在 O(log N) 輪內降到 0;搭配 decision stump,六筆資料手算三輪就看得到。

隨機森林:Bagging 加決策樹與 out-of-bag 估計|台大林軒田 機器學習技法 第 10 堂

隨機森林是 bagging 套在完全長成的 C&RT 上,再讓每次分支只看隨機投影出來的少數特徵。bootstrap 抽 N 次時,每筆資料約有 1/e ≈ 36.8% 的機率沒被某棵樹用到,這些 out-of-bag 資料可以直接算出 E_oob,當作不用另外切資料、不用重新訓練的驗證;再配上 permutation test 就得到每個特徵的重要度。代價是結果會隨亂數種子晃動,樹要加到 G 穩定為止。

梯度提升決策樹:把 AdaBoost 看成對誤差函數做梯度下降|台大林軒田 機器學習技法 第 11 堂

AdaBoost 每一輪的權重總和,剛好是指數誤差 exp(−ys) 的總和。這堂課由此推出:基礎演算法找的 gₜ 是近似的函數梯度方向,票數 αₜ 是那個方向上的最佳步長。把指數誤差換成平方誤差,同一套推導變成「每一輪對殘差 yₙ − sₙ 做迴歸,再用單變數線性迴歸定步長」,基礎模型用砍弱的 C&RT 就是 GBDT。

深度學習:預訓練、autoencoder 與 PCA|台大林軒田 機器學習技法 第 13 堂

網路疊深之後,每一層只要做一點事,但結構、模型複雜度、最佳化與計算量都變難。這堂課挑初始化與正則化兩件事來講:用 d—d̃—d 的 autoencoder 一層一層預訓練權重,讓每一層先學會保留資訊的編碼;在輸入加人工雜訊訓練,當成一種正則化;最後把 autoencoder 換成線性的,推出最佳的 W 就是 XᵀX 最大的 d̃ 個 eigenvector,資料先減平均就是 PCA。

矩陣分解:從評分矩陣學出使用者與電影的特徵|台大林軒田 機器學習技法 第 15 堂

推薦系統的輸入只有使用者編號。把編號做 binary vector encoding、丟進拿掉 tanh 的 N-d̃-M 線性網路,假說就是 h(x) = WᵀVx,等於把評分矩陣寫成 R ≈ VᵀW。學 V 與 W 有兩條路:交替最小平方每輪解 M+N 個線性迴歸,SGD 每次只用一筆評分更新一位使用者與一部電影的向量。最後把 boosting、神經網路、RBF 網路、矩陣分解與 k 近鄰收成一張萃取模型的地圖。

Attention 與 Transformer|台大陳縕儂 深度學習之應用 第 4 堂

RNN 做翻譯時,要把整句壓進一個向量,句子一長就記不住。Attention 讓解碼器每產生一個字,都回頭對輸入的每個位置打分數、取加權和;把打分數的一方叫 query、被比對的叫 key、被加權的叫 value,就是 dot-product attention。Transformer 再往前一步:讓輸入自己對自己做 attention,完全拿掉 recurrence,換來平行化與固定的路徑長度,代價是要另外補上位置資訊。

Tokenization 與 BERT:詞怎麼切、怎麼得到看上下文的表示|台大陳縕儂 深度學習之應用 第 5 堂

這一堂有兩半。前半講 tokenization:用整個詞當單位,沒看過的詞只能變成 UNK;用字元當單位,意思又組不回來。折衷是 subword,常用的切法是 BPE:從字元開始,反覆把最常相鄰的一對合併。後半講 BERT:靜態詞向量給 apple 只有一個向量,分不出水果和公司。ELMo 用語言模型產生看上下文的表示,BERT 把 LSTM 換成 Transformer,用遮住 15% token 再填回來的 masked LM 與 next sentence prediction 預訓練,再把整個模型微調到下游任務。

無標註學習與多模態:沒有標註時怎麼學到好的表示|台大陳縕儂 深度學習之應用 第 14 堂

資料很多不代表標註很多。這一堂問的是:沒有標註時,怎麼從資料裡學到有用的表示?共同的想法是找出觀察背後的潛在因子。Auto-encoder 把輸入壓成一段短碼再還原。VAE 另外要求短碼服從高斯分布,所以可以從分布抽樣來生成。Dual learning 讓兩個方向相反的任務互相當對方的回饋。自監督學習分成自我預測(遮掉一部分猜回來)與對比學習(相似的拉近、不相似的推遠)。CLIP 用圖文配對做對比學習,讓影像分類不必另外訓練;DALL·E 2 再用它的表示生成圖片。最後談多模態模型:把影像投影到語言模型的空間,以及能邊聽邊決定何時開口的串流互動。

對話系統與工具使用:從四個模組到會查資料、會反問的 LLM|台大陳縕儂 深度學習之應用 第 13 堂

要幫使用者完成一件事的對話系統,傳統上拆成四個模組:理解這句話、追蹤到目前為止的狀態、決定下一步動作、把動作寫成句子。語言模型可以一口氣把四步演完,但沒有接外部工具時,它說「我幫你查」其實什麼都沒查。所以這一堂的前半是幾個讓模型用工具的代表作:LaMDA 先寫草稿再查證修改,BlenderBot 加上搜尋與長期記憶,WebGPT 從人的操作紀錄學搜尋,Toolformer 讓模型自己產生並篩選訓練資料。後半從單次回覆走向多輪:模型可以開口問使用者、學專家的策略、猜對方在想什麼,最後談對話怎麼評。

深度學習之應用:概念、作業與實作的學習路線|台大陳縕儂 深度學習之應用 課程總覽

台大陳縕儂《深度學習之應用》(ADL)是以 NLP 為主軸的深度學習課,14 堂分四段:神經網路與反向傳播、序列與 Transformer(詞向量、RNN、attention、BERT)、讓預訓練模型做事(prompt、instruction tuning、RLHF、LoRA、RAG、解碼與評估),以及 LLM 的議題與前沿(偏見與安全、Language Agents、推理、工具使用、多模態)。Fall 2025 的講義與分段影片公開;作業只有 HW1 有完整規格,HW2、HW3 與期末專題只有說明影片。

偏見、安全、幻覺與對齊:預訓練模型帶著哪些問題、各怎麼處理|台大陳縕儂 深度學習之應用 第 10 堂

用大量網路資料訓練出來的模型有三類問題,各對應一個目標。偏見來自模型只顧多數、犧牲少數,目標是公平;偏見可能從資料到評估的任何一步進來,可以從資料、損失函數或介面設計下手。有害內容出在資料分布的長尾,目標是安全;防護可以做在訓練資料、輸入、訓練與輸出四層,而 jailbreak 就是想辦法繞過它們。幻覺的目標是符合事實;長回答可以拆成一條一條的最小陳述逐條查,再拿這個分數回頭訓練模型。三者常用的修正手段都是 alignment,但 reward model 不完美,照著它最佳化過頭會變差,而且偏好資料本身就帶著偏見。

中文抽取式問答:從四段文字裡找出答案 span|台大陳縕儂 深度學習之應用 作業 1

ADL Fall 2025 的 HW1 給一個問題和四段中文文字,要模型先挑出相關的那一段(paragraph selection,當成四選一的 multiple choice),再在那段裡標出答案的起點和終點(span selection),用 Exact Match 評分。規格投影片直接指定改 HuggingFace 的 run_swag_no_trainer.py 與 run_qa_no_trainer.py,simple baseline 用 bert-base-chinese、長度 512、有效 batch size 2、learning rate 3e-5,在 8GB 的 RTX 3070 上兩段加起來不到三小時。Kaggle 排行榜 9/29 截止、程式與報告 10/1 交到 NTU COOL。校外讀者拿不到 Kaggle 資料與評分,但任務設計、baseline 設定和報告五題都能照著練。

Language Agents 的推理、記憶、規劃與多代理|台大陳縕儂 深度學習之應用 第 11 堂

ADL Fall 2025 第 11 堂以 EMNLP 2024 的 Language Agents tutorial 為底,把 agent 定義成「感知環境並採取行動的實體」,再指出 language agent 的新東西:推理本身也是一種內部行動。講義用推理、記憶、規劃三個概念組織整堂,推理這段講 CoT 與 ReAct,記憶這段講 Generative Agents 的 recency/importance/relevance 檢索,規劃這段從貪婪的反應式規劃講到 tree search 與 world model,最後用初始化、協作、團隊最佳化三步驟講多代理系統。

什麼是機器學習與深度學習|台大陳縕儂 深度學習之應用 第 1 堂

ADL 的第一堂沒有數學推導,只建立兩個觀念。第一,機器學習是給機器很多組輸入與輸出,讓它自己找出把輸入變成輸出的函數;深度學習是把很多簡單函數串成一條生產線,只給兩端的資料,中間每一站做什麼都由機器學。第二,要用深度學習解問題,先寫下輸入 X 與輸出 Y:輸出的形式決定任務是分類還是序列預測,輸入的性質決定該選哪種網路。中間還回答兩個問題:為什麼 2010 年後才突破(資料與 GPU),以及為什麼要深不要胖。

神經網路與反向傳播|台大陳縕儂 深度學習之應用 第 2 堂

訓練一個模型要回答三個問題。模型是什麼:一層層的神經元,每層是 z = Wa + b 再經過非線性的 activation;一個神經元只能畫一道分界,所以做不了 XOR,疊層才行。什麼叫好的函數:定一個 loss,值越小越好。怎麼挑出最好的:gradient descent 每次看腳下的斜率走一步,實務上用 mini-batch SGD。參數有上百萬個,梯度靠反向傳播算:forward 一趟存下每層的輸出,backward 一趟從輸出層往回算 δ,兩者相乘就是每個權重的梯度。文中用數字各走了一次。

NLG 的解碼、生成控制與評估|台大陳縕儂 深度學習之應用 第 9 堂

ADL Fall 2025 第 9 堂回答兩個問題:模型每一步給出一個機率分布,要怎麼從裡面挑字?挑出來的句子又要怎麼評?講義先用 teacher forcing 與 exposure bias 說明訓練和生成的落差,再依序比較 greedy、beam search、sampling、top-k 與 nucleus sampling,把 temperature 與各種 penalty 歸類為「控制」而不是解碼演算法;評估一半講 BLEU、ROUGE、perplexity 與 LLM-Eval,另一半講為什麼要用 RL 直接對整句的品質做最佳化。

後訓練與高效調整:模型怎麼學會照指令做事、怎麼便宜地改|台大陳縕儂 深度學習之應用 第 7 堂

預訓練完的模型很會接話,卻不一定會照指令做事。這一堂前半講 post-training 的兩步:instruction tuning 用大量不同任務教模型讀懂任務描述,RLHF 再讓模型朝人類偏好的整份回答靠攏,中間靠 reward model 與成對比較解決人力與評分不一致的問題,DPO 與 KTO 則把強化學習那一段拿掉。InstructGPT 與 ChatGPT 就是這兩步串起來。後半講 LLM adaptation:模型太大、整個微調太貴,所以只訓練少量參數,做法有 Adapter、LoRA 與 prompt tuning,沒有哪一種在所有任務都最好。

預訓練三大類與 Prompt Learning:從 BERT、GPT、T5 到 soft prompt|台大陳縕儂 深度學習之應用 第 6 堂

預訓練是在知道任務之前,先讓模型從大量無標註資料學通用能力。架構分三類:encoder 看兩邊、適合理解;decoder 只看左邊、能生成,是目前勝出的一類;encoder-decoder 用去噪預訓練。預訓練加微調有兩個難關:標註資料少、模型太大。GPT-3 的 in-context learning 不更新參數就能做任務,接著出現 hard prompt(template 加 verbalizer、LM-BFF)與直接訓練向量的 soft prompt(P-Tuning、Prefix-Tuning)。當時 soft prompt 效果較好,但最後留下來的是完全不訓練的 prompting。

RAG:模型記不住、會過時的知識,怎麼先查再答|台大陳縕儂 深度學習之應用 第 8 堂

語言模型把知識存在參數裡,冷門的記不熟、訓練後發生的不知道、公司內部文件沒看過,而且答案無從查證。RAG 的做法是讓它開書考:先依問題檢索相關段落,再連同問題一起交給模型回答。這一堂依序講檢索怎麼做(切段、sparse 與 dense retrieval、bi-encoder 與 cross-encoder、沒有標註資料時怎麼訓練 retriever)、檢索前後還能加什麼(改寫問題、重排序、多次檢索)、RAG 的幾條發展路線(檢索什麼、怎麼用、何時檢索),最後比較 prompting、RAG 與 fine-tuning 各適合什麼情境。

Reasoning:從 CoT、Test-Time Scaling 到用 RL 學推理|台大陳縕儂 深度學習之應用 第 12 堂

預訓練資料快用完之後,模型的進步改從「回答前多想一點」來。ADL 第 12 堂分兩半講這件事。前半是 test-time scaling:模型不動,推論時多花運算資源,做法有 short CoT、平行多答幾次再選(多數決、答案信心、outcome reward model)、用 process reward model 逐步評分並搭配搜尋,以及循序修改。後半是 learning to reason:要更新權重,資料可以來自人、來自模型自己產生再篩選、或來自更強的老師模型,也可以像 DeepSeek-R1-Zero 那樣只給答案對錯、用強化學習讓模型自己長出推理行為。

詞向量、語言模型與 RNN:怎麼表示一個詞、怎麼預測下一個詞|台大陳縕儂 深度學習之應用 第 3 堂

這一堂有一條主線:語言模型要估計一串詞出現的機率,做法是一次預測下一個詞。先講詞怎麼表示,從字典、one-hot、共現矩陣走到低維的 word embedding。再講語言模型的三代:n-gram 用數的,沒看過的組合機率是零;neural LM 用網路預測,相近的詞自動分到機率;RNN LM 把所有前文累積在 hidden state,每個時間點共用同一組權重。RNN 用 BPTT 訓練,同一個矩陣乘很多次會讓梯度消失或爆炸,爆炸用 clipping,消失靠 LSTM、GRU 的 gating。最後依輸入與輸出的形狀,把應用分成整句分類、tagging 與 encoder-decoder。

從 PyTorch、Hugging Face 到 LoRA、量化與 vLLM 部署|台大陳縕儂 深度學習之應用 助教課

ADL Fall 2025 課程頁排了 7 堂助教課、10 支影片:Colab 與 PyTorch、ipdb 除錯 → NLP 專案的一生 → 四種 NLP 任務的資料格式 → LoRA 與 QLoRA → scaling law、LLaMA 架構與 MoE → 量化與評估 → 用 vLLM 部署。影片是助教在 2023 與 2024 年錄的,Fall 2025 沿用,影片裡說的作業一、作業三是當年的作業。課程頁上的 5 份講義連結都 404,同名檔在 Fall 2024 路徑可以打開,Deployment 只有影片。本文依影片口述逐堂整理助教實際示範的步驟與提醒,附可以手算的例子。

Blending 與 Bagging:把多個假說合起來為什麼更好|台大林軒田 機器學習技法 第 7 堂

手上有 T 個假說 gₜ 時,除了用 validation 挑一個,還可以一人一票(uniform blending)、學一組票數(linear blending)或再學一個模型來組合(any blending,也叫 stacking)。這堂用一段六行的代數證明:平方誤差下,平均後的 G 不會比 gₜ 的平均表現差,差距就是 gₜ 之間的分散程度,也就是 variance。最後用 bootstrap 從唯一一份資料重抽出 T 份,各訓練一個 gₜ 再投票,就是 bagging。

機器學習基石與技法:從「學得會嗎」到三種處理特徵的方法|台大林軒田 機器學習基石與技法 課程總覽

基石用 16 堂回答四個問題:機器什麼時候學得會、為什麼學得會(Hoeffding、成長函數、VC 維度)、怎麼學(線性迴歸、邏輯迴歸、非線性轉換)、怎麼學得更好(正則化、驗證)。技法再用 16 堂講三種處理特徵的方法:kernel 把特徵嵌進高維(SVM)、aggregation 把多個假說合起來(AdaBoost、隨機森林、GBDT)、extraction 從資料學出隱藏特徵(神經網路、矩陣分解)。130 支 YouTube 影片免費;練習用 Fall 2024 公開的 HW0–HW7。

決策樹:C&RT 怎麼切、怎麼剪|台大林軒田 機器學習技法 第 9 堂

決策樹是邊學邊做 conditional aggregation 的模型:每條從根到葉的路徑是一個條件,葉子是一個常數。C&RT 每次用一個 decision stump 把資料切成兩份,挑加權不純度最小的切法,切到不能再切為止;這樣長出來的樹 E_in 幾乎都是 0,所以要用「E_in 加 λ 乘葉子數」剪枝,λ 用 validation 選。同一套遞迴還能處理多類別、類別特徵與缺值。

學習可行嗎:Hoeffding 不等式與資料以外的保證|台大林軒田 機器學習基石 第 4 堂

這堂課先證明只靠資料 D 推不出 D 以外的答案(No Free Lunch),再加上一個假設:資料與未來的輸入都從同一個分布獨立抽出。Hoeffding 不等式於是保證,一個事先固定的假說 h,E_in 與 E_out 相差超過 ε 的機率不超過 2exp(−2ε²N)。演算法要從 M 個假說裡挑,上界乘上 M 變成 2M exp(−2ε²N);假說有限、資料夠多、E_in 又小,學習就可行。

Finale:整門課收成三類技巧|台大林軒田 機器學習技法 第 16 堂

技法第 16 堂沒有新模型,它把前 15 堂的模型改用三個問題重新分類:特徵藏在哪裡(kernel、aggregation、extraction、低維投影)、誤差怎麼降下來(梯度、等價問題、拆成多步)、模型太強時怎麼踩煞車(正則化、驗證)。本文用八個點把 PCA 加 AdaBoost-Stump 從頭算完,三個問題各對一次答案;最後保留 Fall 2024 校內課補上的 ReLU、Xavier/He 初始化、momentum、RMSProp 與 Adam。

基石作業:Fall 2024 HW0–HW5 練什麼、要什麼資料|台大林軒田 機器學習基石與技法 作業 0–5

Fall 2024 的基石作業共六份:HW0 是 20 題數學先修選擇題;HW1–HW5 每份 12 題加 1 題 bonus,Q1–4 自動批改、Q5–12 助教批改,程式題用 LIBSVM 網站上的 rcv1、cpusmall、mnist 資料,HW5 要用 LIBLINEAR。HW1、HW2 各有一題要你拿 ChatGPT 類工具的回答來反駁。Fall 2026 已公開 hw0 與 hw1:hw1 改成 16 題全選擇題、抽 4 題由助教細改,資料換成課程自己給的 hw1_train.dat;新 policy 允許用 AI 與 vibe coding,但 AI 產生的程式要逐段用自己的話寫註解。兩個學期都沒有公開官方解答。

Kernel 邏輯迴歸:SVM 其實是正則化模型|台大林軒田 機器學習技法 第 5 堂

soft-margin SVM 的 ξₙ 可以直接寫成 max(1 − yₙ(wᵀzₙ + b), 0),整個問題就變成 ½wᵀw 加上 C 乘以 hinge 誤差的總和,是一個 L2 正則化模型,C 對應 1/(2λ)。hinge 誤差和邏輯迴歸的 cross-entropy 都是 0/1 誤差的凸上界,所以 SVM 近似於 L2 正則化邏輯迴歸。要機率輸出有兩條路:Platt 的兩層學習只多學兩個數字 A 與 B;representer theorem 則保證最佳的 w 是 zₙ 的線性組合,可以直接在 Z 空間做 kernel 邏輯迴歸,代價是 N 個 βₙ 通常都不是 0。

Kernel SVM:不算高維特徵也能算內積|台大林軒田 機器學習技法 第 3 堂

對偶 SVM 的變數個數已經和特徵維度 d̃ 無關,但 Q 矩陣的每個元素還是一次 d̃ 維內積。這堂課把「轉換+內積」合成一個 kernel 函數 K(x, x′),二次轉換的內積只要 O(d) 就能算完;訓練、算 b、預測三個地方全部換成 K 之後,SVM 不再碰 Z 空間。同一招推到極限,Gaussian kernel 對應無限多維的轉換,代價是 γ 選太大照樣過擬合。

機器學習是什麼:什麼時候該讓機器自己學|台大林軒田 機器學習基石 第 1 堂

基石第 1 堂把機器學習定義成「用資料算出一個接近目標 f 的假說 g」,並給出判斷該不該用它的三個條件:有可學的模式、寫不出程式定義、手上有資料。整堂課的骨架是一張流程圖:未知的 f 產生資料 D,演算法 A 從假說集合 H 裡挑出 g;A 加 H 合稱學習模型,之後 15 堂都在這張圖上換零件。

線性分類模型:三種誤差、SGD 與多類別|台大林軒田 機器學習基石 第 11 堂

PLA、線性迴歸、邏輯迴歸都先算分數 s = wᵀx,三種誤差都能寫成 ys 的函數。平方誤差與換成 log₂ 的 cross-entropy 都壓在 0/1 誤差上面,所以把迴歸的 E_in 做小,分類的 E_out 也跟著有保證。接著把梯度裡的 N 筆平均換成隨機抽一筆,得到每步 O(1) 的 SGD;再用 OVA(K 個分類器、取分數最高)與 OVO(K(K−1)/2 個分類器、投票)把二元分類器組成多類別分類器。

線性 SVM:最胖的分隔線怎麼寫成二次規劃|台大林軒田 機器學習技法 第 1 堂

把資料全部分對的線有很多條,這堂課挑離最近的資料點最遠、也就是最胖的那一條。把 (b, w) 縮放到 min yₙ(wᵀxₙ+b)=1 之後,最大的 margin 等於最小化 ½wᵀw,限制式是每個點 yₙ(wᵀxₙ+b)≥1,可以直接交給二次規劃的解算器。胖的好處有兩種解釋:它是 E_in=0 範圍內的 weight decay,也讓能產生的 dichotomy 變少。

線性迴歸:用 pseudo-inverse 一步算出最佳解|台大林軒田 機器學習基石 第 9 堂

線性迴歸把平方誤差寫成 (1/N)‖Xw − y‖²,令梯度為零就得到 w_LIN = X†y,不必迭代。hat matrix H = XX† 把 y 投影到 X 的直行張成的空間,trace(I − H) = N − (d+1),由此得到平均 E_in = σ²(1 − (d+1)/N)、平均 E_out = σ²(1 + (d+1)/N)。平方誤差又是 0/1 誤差的上界,所以 w_LIN 也能拿來做二元分類。

神經網路:反向傳播怎麼算梯度|台大林軒田 機器學習技法 第 12 堂

感知器的線性組合做得出 AND、OR,做不出 XOR;再疊一層就可以,這就是多層感知器。這堂課把中間的 sign 換成 tanh、輸出層接線性迴歸,再用連鎖律推出反向傳播:先正向算出每一層的輸出 x,再從輸出層往回算 δ,每個權重的梯度就是前一層的 x 乘上這一層的 δ。最後處理訓練的兩個麻煩:E_in 非凸,初始權重要小而且隨機;d_VC 大約是 O(VD),要靠 weight elimination 與提早停止防過擬合。

過擬合:雜訊、資料量與模型複雜度怎麼聯手|台大林軒田 機器學習基石 第 13 堂

過擬合指的是換到更強的模型時 E_in 下降、E_out 卻上升的過程。這堂課用只會 2 次與會 10 次多項式的兩位學習者做實驗,得到四個成因:資料太少、隨機雜訊太大、確定性雜訊太大(目標太複雜)、模型能力過剩,並解釋為什麼完全沒有雜訊的資料也會過擬合。對策先講資料清理、修剪與 virtual examples,正則化與驗證留給後兩堂。

RBF 網路:用到中心點的相似度做預測,再用 k-means 找中心|台大林軒田 機器學習技法 第 14 堂

Gaussian SVM 的結果可以讀成「以支援向量為中心的 Gaussian 做線性投票」,把中心與票數都放開來學就是 RBF 網路。N 筆資料全當中心時,迴歸的最佳票數是 β = Z⁻¹y,訓練誤差剛好是 0,所以要靠 ridge 或把中心減到 M ≪ N 個代表點來正則化;代表點用 k-means 找,它輪流做「每筆資料歸到最近的中心」與「中心改成群內平均」兩步,直到分群不再變動。

技法作業與期末專題:Fall 2024 HW6–HW7 與 HTMLB 勝負預測|台大林軒田 機器學習基石與技法 作業 6–7

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 資料,只能照同樣的切分方式換一份公開資料自評。

訓練與測試:無限多條線其實只有幾種|台大林軒田 機器學習基石 第 5 堂

上一堂的保證裡有假說個數 M,感知器有無限多條線,M 是無限大。這堂課改數這些線在 N 筆資料上排得出幾種 ○× 組合(dichotomy),對所有擺法取最大值得到成長函數 m_H(N):positive rays 是 N+1,positive intervals 是 ½N²+½N+1,convex sets 是 2ᴺ,二維感知器在 4 個點上最多 14 種。成長函數第一次到不了 2ᴺ 的點數叫 break point,講義猜它會把成長函數壓成多項式,證明留到下一堂。

驗證:留一份資料來選模型|台大林軒田 機器學習基石 第 15 堂

用 E_in 選模型一定偏向最複雜的那個,用 E_test 選又拿不到測試資料。這堂課從手上的 N 筆切出 K 筆當驗證集,得到 E_out(g_m*) ≤ E_out(g⁻_m*) ≤ E_val(g⁻_m*) + O(√(log M / K)),說明選完為什麼要用全部資料重訓、K 為什麼取 N/5;再把 K 推到 1 得到幾乎無偏的 leave-one-out,最後用 5-fold 或 10-fold 交叉驗證把計算量降回可行。

VC 維度:模型複雜度怎麼量|台大林軒田 機器學習基石 第 7 堂

這堂課把「最大的非 break point」命名為 VC 維度 d_VC,用可逆矩陣與線性相依兩段證明 d 維感知器的 d_VC = d + 1,再把 VC bound 改寫成 E_out ≤ E_in + Ω:d_VC 愈大,E_in 愈容易壓低,但複雜度的懲罰 Ω 也愈大。照 bound 算,ε = δ = 0.1、d_VC = 3 要 29,300 筆資料,大約是 10,000 倍的 d_VC;實務上 10 倍常常就夠。

台大李宏毅 ML 2026 導讀:AI Agent 之間的互動與對工作的衝擊——協作拓撲、狼人殺、Moltbook,以及 AI 寫論文與審論文|台大李宏毅 機器學習 主題單元

agent_era.pdf 的後半問了三個問題:多個 agent 怎麼協作比較有效(MacNet:不規則的拓撲勝過規則的)、agent 能不能爾虞我詐(狼人殺、劇本殺,以及從社交互動學推理的 MARO)、agent 能不能社交(Moltbook 與「甲殼教」,但三篇研究都發現熱鬧背後多半是人在推、對話很淺)。最後以學術研究為例,AI 已經能從頭複製並延伸一篇論文、進入 AAAI 2026 的審查流程,Agents4Science 2025 收到 247 篇 AI 主筆論文。李宏毅的結論是:在 agent 萌芽的時代,「想做」什麼比「會做」什麼更重要。

台大李宏毅 ML 2026 導讀:Context Engineering——壓縮、過濾、按需載入,以及要不要把 context 整個交給 LLM|台大李宏毅 機器學習 主題單元

語言模型的輸入長度有限,agent 卻會一直累積工具輸出。李宏毅在 ML 2026 第二週把 Context Engineering 拆成三件事:壓縮(摘要、硬清除、卸載到檔案,以及 ACON、SUPO、AgentFold 這類讓壓縮變聰明的方法)、過濾(只讀需要的行、MCP-Zero 式的按需載入工具),最後是 Agentic Context Engineering:讓 LLM 自己決定下一輪的 context,從 Dynamic Cheatsheet、ACE 一路到 Recursive Language Models。投影片把 subagent 看成一種自主壓縮,這是整講最值得帶走的一個視角。

從 AI Agent 切入機器學習的學習路線|台大李宏毅 機器學習 課程總覽

李宏毅 2026 春季的《機器學習》從 AI Agent 切入,主軸是怎麼影響與調整模型行為:先拆開 OpenClaw 看 agent 怎麼運作與管理 context,再看模型內部為什麼慢、為什麼有長度限制(Flash Attention、KV Cache、位置編碼),接著是不改參數也能讓模型變強的 harness 與自我修正,最後是 AI 自我成長。8 講錄影、投影片與 10 份作業的題目和 Colab 都公開;作業的評分平台校外用不了,要自己設驗收。

台大李宏毅 ML 2026 導讀:加快生成(上)——Flash Attention 為什麼卡在搬資料,而不是計算|台大李宏毅 機器學習 主題單元

李宏毅在 ML 2026 第三週講推論加速,前半堂只講一招:Flash Attention。GPU 的運算單元很快,但工作台(on-chip SRAM)很小,資料得從倉庫(HBM)搬上搬下,搬運才是瓶頸。一般的 softmax 要來回倉庫好幾次;Flash Attention 用「先假設目前最大值就是 Amax,之後再乘一個修正項」的技巧,把找最大值、算分母、做 weighted sum 合進同一次掃描,連 attention weight 都不必真的算出來。結果和原本的 attention 一模一樣,不需要重訓,代價只是一點額外運算和一點燒腦。

台大李宏毅 ML 2026 導讀:HW10 Spoken Language Model——三種架構、Mimi 的 32 層 token,以及為什麼 Moshi 能邊聽邊說|台大李宏毅 機器學習 主題單元

HW10 是 12 題選擇題,只在 NTU COOL 作答。Section 1 比較語音語言模型的三種架構:Cascade(ASR → LLM → TTS,中間是文字)、End-to-End(直接在離散語音 token 上做 LM)、Thinker-Talker(LLM 負責想,另一個 decoder 負責說),Colab 讓兩個模型聽三段錄音判斷說話者性別,要你看出哪個是 cascade。Section 2 拆 Mimi:把情緒語料切成 32 層 RVQ token,取第 0、6、16、31 層畫 UMAP;再把語音、笑聲、音樂 encode 再 decode 聽看看壞在哪。剩下的題目讀 TWIST、AudioLM、LLaMA-Omni 2、Moshi、GLM-4-Voice,考 initialization、pretrain、interleaving 與 realtime/full-duplex。Colab 要先申請 Llama-3.2-3B-Instruct 授權並填 HF token。題目與 Colab 全公開,校外拿不到的是 COOL 評分與解答。

台大李宏毅 ML 2026 導讀:HW2 讓 AI Agent 當 AI 工程師——用 AIDE 式樹搜尋,讓開源 LLM 自己寫出 MyGO & Ave Mujica 臉部辨識|台大李宏毅 機器學習 主題單元

HW2 不讓你直接寫分類器,而是寫 prompt 與流程,讓一個跑在 Colab T4 上的開源 LLM(預設 gemma-3-12b-it 的 4-bit GGUF)自己規劃、寫 code、執行、除錯,做出 10 類 MyGO & Ave Mujica 角色臉部辨識。起始碼改自 AIDE:Interpreter 執行程式、Node 記錄每一版、Journal 組成解答樹、Agent 決定下一步要 draft、debug 還是 improve。最值得先發現的一件事:起始碼的評估函式是空的,每一版都被標成 metric 1.0、不是 bug,所以樹搜尋在你補上評估之前其實是瞎選。規定寫得很重:「LLM agent 是你的代理人」,不准手改程式與預測檔。

台大李宏毅 ML 2026 導讀:HW3 LLM Fast Inference——讀七篇加速論文,再在 GPU 上量 speculative decoding、FlashAttention 與 vLLM|台大李宏毅 機器學習 主題單元

HW3 是 20 題選擇題(每題 0.5 分),不交程式,只在 NTU COOL 上作答。前 10 題讀論文:四篇 speculative decoding(Leviathan、DeepMind 的 Speculative Sampling、Inference with Reference、SpecInfer)加上 FlashAttention 1–3;後 10 題照 Colab 填 TODO 後分析結果:手寫 speculative decoding 的接受率、兩種 prompt regime 下 assistant 模型與 n-gram 的加速曲線、用 T4 規格估 FlashAttention 的 HBM 讀取量與理論加速、vLLM 的 prefix caching 多輪測試與失效實驗,以及 CPU offload 對 throughput 的影響。題目中英雙語全部印在作業 PDF 裡,校外可以完整自學,只是拿不到官方解答。

不再訓練,把日文模型和數學模型合成一個會解日文數學題的模型|台大李宏毅 機器學習 作業 7

HW7 給你兩個從 Mistral-7B-v0.1 微調出來的模型:擅長日文的 shisa-gamma-7b-v1 與擅長數學的 WizardMath-7B-V1.1,要你只做參數層級的合併(不准再訓練、不准 MoE 或 ensemble),讓合併後的模型答對助教自出的 20 題日文數學題。Part 1(60%)用 mergekit 調方法、weights 與 density,simple/strong baseline 是正確率 50% 與 75%;Part 2(40%)是 8 題論文選擇題。題目、Colab 與 Kaggle 都公開,但 JudgeBoi 在 2026-09-30 回傳 502、論文題在 NTU COOL 上,校外只能在 notebook 裡自己看正確率。

多花推論算力,投票、Self-Certainty、DeepConf 各換到多少準確率|台大李宏毅 機器學習 作業 8

HW8 不用寫程式也不用交程式:助教給一份已經寫好的 Colab,用 Llama-3.2-1B-Instruct 在 GSM8K 前 100 題上比較直接推論、Self-Consistency、Self-Certainty 與 DeepConf(Confidence),每種方法各 sample 16 條推理。你讀三篇論文、跑完 notebook,到 NTU COOL 答 20 題:18 題論文題、2 題看 Colab 結果。先備是李宏毅 2025 年第七講 Reasoning。題目中英兩版都印在 hw8.pdf,Colab 可公開下載;只有 COOL 測驗與成績需要台大帳號。

台大李宏毅 ML 2026 導讀:HW9 Flow Matching——從 VAE 走到 MeanFlow,再用一個 Swiss roll 比推論步數|台大李宏毅 機器學習 主題單元

HW9 共 19 題、10 分,只在 NTU COOL 作答、不交程式。前 16 題讀四篇論文:DDPM、Flow Matching、Rectified Flow、MeanFlow,最後幾題要你橫向比較訓練訊號與少步生成;後 3 題要跑 Colab:在 2D Swiss roll 上訓練兩個小 MLP,一個是學瞬時速度的 Flow Matching(固定用 Euler 50 步評估,Histogram JS ≤ 0.10 才算收斂),一個是學平均速度的 MeanFlow(固定 1 步生成,≤ 0.40),再比較 1 步對 1 步、Euler 不同步數、Euler 與 RK4 在相同步數與相近算力下的差別。作業 PDF 附了一份省略大部分數學的生成模型教學,題目中英雙語全部公開;校外拿不到的只有 COOL 上的評分與解答。

台大李宏毅 ML 2026 導讀:加快生成(下)——KV Cache 省了時間,卻撐爆倉庫,以及各種瘦身法|台大李宏毅 機器學習 主題單元

KV Cache 把已經算過的 key 和 value 存起來,decode 時就不必重算,但它每個 token 都要佔一份記憶體:以 Gemma 2 27B 為例,一個 token 約 0.72MB,A100 80GB 只夠放約 11.4 萬個 token。李宏毅接著整理了一串瘦身法:讓多個 query 共用 key/value(MQA、GQA)、把 key/value 壓成一個向量又不必解壓(MLA)、只看一段範圍(Sliding Window、StreamingLLM)、把沒人理的 key/value 丟掉(Scissorhands、H2O),最後講跨對話的 prompt caching:只有前綴完全相同才會命中,所以 system prompt 要把穩定的內容放前面。

台大李宏毅 ML 2026 導讀:AI 自我成長(上)——由 AI 產生答案、reward 與 loss,人類能放手到哪一步|台大李宏毅 機器學習 主題單元

李宏毅 5/8 這堂先說清楚:「AI 自我成長」沒有明確定義,它是人類漸漸放手的過程。他把機器學習拆成三步,逐一檢查「我」能不能換成 AI:答案可以由 AI 自我修正後當標準答案,reward shaping 可以交給 LLM 寫,loss 可以讓模型自己訂(打分、多數決、entropy),連題目都能讓 proposer 自己出。但實驗一再顯示,完全不靠人會卡在天花板甚至把自己訓練壞;強 AI 訓練比自己弱的 AI 已經做得到,只是還沒超過人類。結論:2026 年 5 月,AI「還在盧比孔河邊」。

台大李宏毅 ML 2026 導讀:AI 自我成長(下)——改進 harness、改進「改進的方法」,以及會不會失控|台大李宏毅 機器學習 主題單元

上集講的是 AI 自己訂 loss、自己更新參數;下集把另一半補上:AI Agent = Harness + LLM,harness 也能自己長。harness 沒辦法算 gradient,所以常見做法是拿一個語言模型當改寫器,再用類似基因演算法的 pool 保留多個候選(OPRO、GEPA、Darwin Gödel Machine,現成工具是 DSPy)。接著談三個延伸:harness 與參數一起更新效果更好;目標會變時要在「全部丟掉」和「全部背著」之間取捨,而且改 harness 也會遺忘;更新規則本身也能被更新(HyperAgent、Gödel Agent、SEAL),這就是 meta learning。最後李宏毅換了一個類比:參數是基因、context 才是神經元,然後指出現在的 agent 缺的是內在動機,而最可能讓成長失控的,是人給的目標和 AI 自己解讀出來的目標不一致。

李宏毅、林軒田與陳縕儂的課怎麼接成學習路線|世界名校 AI/CS 課程地圖

台大的 AI/ML 課散在電機系與資工系,官方用「機器學習與人工智慧」領域專長把它們排成四層。校外最完整的是李宏毅:ML 2026 Spring 與生成式 AI 與機器學習導論 2025 Fall 都公開投影片、錄影、作業 PDF 與 Colab,只差評分平台。林軒田的錄影齊全,Fall 2024 的 HW0–HW7 題目也留在課程頁;陳縕儂的課錄影齊全,作業大多只公開說明影片;Coursera 自 2025 年 8 月起改為只能免費看第一單元。