Skip to content
所有分類

ai

1264 篇文章

非線性轉換:用特徵轉換畫出曲線邊界的代價|台大林軒田 機器學習基石 第 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 近鄰收成一張萃取模型的地圖。

深度學習:翻轉教室怎麼排,九堂實體課怎麼讀|Stanford CS230 課程總覽

CS230 是 Andrew Ng 與 Kian Katanforoosh 在 Stanford 教的深度學習課,採翻轉教室:神經網路、最佳化、CNN、序列模型與 Transformer 的基礎放在 Coursera 的五門線上課,每週一堂實體課講專案方法、對抗攻擊與生成模型、強化學習、LLM 應用與可解釋性。九堂實體課的錄影、多數投影片與兩份附解答的期中練習考公開;Stanford 專用的 Coursera 場次、助教課錄影與專案指導拿不到。

機器學習在學什麼:監督式、非監督式與強化學習|Stanford CS229 第 1 堂

CS229 Spring 2026 的開場課只有 37 分鐘、沒有推導。它用 Tom Mitchell 的「經驗 E、任務 T、衡量 P」定義機器學習,再把整門課分成監督式、非監督式、強化學習三類,三者的差別在於資料裡有沒有答案、資料是不是模型自己收集來的。大型語言模型在這個分類裡同時出現三次。

監督式學習設定與線性迴歸:一條線怎麼從資料裡學出來|Stanford CS229 第 2 堂

第 2 堂把監督式學習拆成三件事:假設函數 h、最小平方成本 J(θ)、把 J 壓低的演算法。梯度下降每步要掃過全部 n 筆資料,minibatch SGD 只看一小批就更新,代價是在最佳解附近晃動;線性迴歸另有封閉解 θ = (XᵀX)⁻¹Xᵀy,前提是 XᵀX 可逆。

最大概似與邏輯斯迴歸:最小平方為什麼是合理的選擇|Stanford CS229 第 3 堂

假設誤差是零均值、獨立同分布的高斯雜訊,對概似函數取 log 之後,最大概似就等於上一堂的最小平方。同一套做法換成 0/1 標籤與 sigmoid,得到邏輯斯迴歸,梯度仍是「誤差乘上輸入」。最後用 Newton 法對照 SGD:步數少,但每步要付 n·d² + d³ 的計算量。

指數族、廣義線性模型與 softmax:換一種誤差分布要重推幾次?|Stanford CS229 第 4 堂

只要 y 的分布能寫成 b(y)·exp(ηᵀT(y) − a(η)),對 a(η) 微分一次就是期望值、兩次就是變異數;再令 η = θᵀx,線性迴歸、邏輯斯迴歸與 softmax 的更新式都是同一條 θ ← θ + α(y − h(x))x。後半堂用四個類別的例子講 softmax、交叉熵與 label smoothing。

高斯判別分析與 Naive Bayes:先學每一類長什麼樣,再用貝氏定理分類|Stanford CS229 第 5 堂

第 5 堂把分類問題反過來做:不直接學 p(y|x),改學 p(x|y) 與 p(y)。GDA 假設兩類是共用共變異數的高斯,最大概似估計只要數比例、取平均,決策邊界推出來是一條直線,事後機率剛好是 sigmoid;Naive Bayes 用條件獨立把 2^d 個參數壓到 2d+1 個。

偏差與變異、正規化與模型選擇:模型該多複雜|Stanford CS229 第 6 堂

這堂課把測試誤差拆成雜訊 σ²、偏差平方、變異三項,再用 ridge regression 的閉式解說明正規化怎麼把特徵值從 λ 推到 λ+ρ,用一點偏差換掉大量變異。後半堂講雙降、ImageNet-V2,以及用開發集、k 折交叉驗證與 successive halving 挑超參數。

神經網路的架構:從一個 ReLU 疊到殘差連接與正規化層|Stanford CS229 第 7 堂

第 7 堂先把線性模型的訓練流程原封不動搬到非線性模型:每筆資料一個 loss、取平均、用 SGD 往下走,剩下兩個問題是模型長什麼樣、梯度怎麼算。後半堂回答第一個:一個神經元是 ReLU(wᵀx+b),m 個神經元疊成矩陣就是一層 ReLU(Wx+b),參數 md+m 個;再往上是殘差區塊 z+σ(MM(σ(MM(z)))) 與 LayerNorm、RMSNorm。梯度怎麼算留給第 8 堂。

反向傳播:算梯度為什麼只要一次前向的成本|Stanford CS229 第 8 堂

這堂課從一個定理出發:能用 N 個基本運算算出來的純量函數,梯度也能在 O(N) 時間算完。做法是把鏈鎖律讀成「拿到 ∂J/∂u 就能算 ∂J/∂z,而且只需要中間那個模組的資訊」,再替矩陣乘法與啟動函數各推一個 backward 函數:Wᵀv、vzᵀ、σ′(z)⊙v。本文另外用一個 2-2-1 的小網路把前向與反向手算一遍。