📖 互動式學習講義 、 Interactive Lecture

線性分類器:畫一條線,把世界分兩邊

Chapter 3 、 Linear Classifiers

上一章我們舉著「機率望遠鏡」看資料;這一章收鏡子、拿出直尺:不管資料長什麼樣,直接畫一條線把它們分開。你會被帶著親手寫出感知機、最小平方法、Logistic、SVM,最後還會看懂「支持向量為什麼只有那麼幾個『守門員』」。放心,每一步都有生活類比、有數字、有可以玩的 7 個 Demo。

7 站3.1–3.7
7 個互動 Demo
6 本筆記本
★→★★★★由淺入深
00

開場:為什麼改學線性分類器?

Introduction (3.1)

原文的主張很務實:先不猜資料背後的機率分布,直接用一個簡單、快速、可計算的線性模型建立基線。

🐘 先把問題說清楚:不是「線性一定最好」

Ch2 用機率密度與 Bayesian 方法設計分類器;有些結果最後也會長成線性判別函數。Ch3 換一個角度:不先假設資料由哪一個 pdf 產生,而是直接求出線性函數的參數。

這樣做的優點是兩個字:簡單、快。代價也很明白:如果資料真的不是線性可分,我們只能在「允許錯誤」的前提下,選一個準則最好的線。

原文問題 A:可分
存在一個超平面,所有類別樣本都能被分到正確一側;接下來問「怎麼找到它?」
原文問題 B:不可分
任何直線都會錯一些;接下來問「怎麼定義最好?」這會引出 MSE、Logistic 與 SVM。

本次重寫的閱讀契約:比例看得到,簡略跑不掉

本頁不是把原文壓成八句口號。每一站都保留原文的定義、主要公式、課本例題、Remark/演算法與工程限制;完整對照表見套件根目錄的 source_coverage.md。

本頁主線原文範圍新增的必要內容
決策幾何3.2正交性、距離、擴充向量、原點特例
感知機3.3收斂證明骨架、兩種更新、Pocket、Kesler 多類
最小平方3.4MSE/LMS/LS/偽逆/Adaline/Example 3.4
機率與泛化3.5–3.6條件平均、後驗機率、bias–variance、最大概似、LDA 比較
SVM3.7.1–3.7.6KKT、對偶、軟邊距、多類、ν、凸包與 RCH

讀完這一章,你要能做的事

  • 看見 $g(\boldsymbol{x})$ 就說出正負側與距離意義。
  • 手算一次感知機更新,並解釋「線性可分才保證收斂」。
  • 從 MSE 推到正規方程、LMS 與後驗機率的連結。
  • 說清楚 Logistic 的 log-odds、SVM 的 margin、support vector 與 $C/\nu$。
  • 用凸包/縮減凸包的幾何語言重新說一次 SVM。
MAP

全域知識地圖

Knowledge Map
2026-08-22T17:42:29.311995 image/svg+xml Matplotlib v3.10.6, https://matplotlib.org/
01

畫一條線:先學會看超平面的臉色

Linear discriminants & decision hyperplanes (3.2)

這一站把「一條線」拆成三件事:方程、方向、距離。後面每個演算法都在調這些參數。

🐘 生活類比:機場安檢線

地板上的線是決策邊界。線的一側是「可通過」,另一側是「請留下」。$\boldsymbol{w}$ 不是線本身,而是垂直指向線的箭頭;它告訴我們哪個方向會讓分數增加。

$$g(\boldsymbol{x})=\boldsymbol{w}^{T}\boldsymbol{x}+w_{0}=0 \qquad (3.1)$$
$\boldsymbol{w}=[w_1,\ldots,w_l]^T$ 是權重向量;$w_0$ 是 threshold/截距。

取決策線上的兩點 $\boldsymbol{x}_1,\boldsymbol{x}_2$,兩點都讓 $g=0$,相減後:

$$\boldsymbol{w}^{T}(\boldsymbol{x}_1-\boldsymbol{x}_2)=0 \qquad (3.2)$$

所以線上任意方向都和 $\boldsymbol{w}$ 垂直。這就是「法向量」的來源,不是背公式背出來的。

圖3.1 決策的幾何:一側 g>0、一側 g<0
圖3.1 決策的幾何:一側 g>0、一側 g<0

距離不是 $|g|$ 本身:要除以箭頭長度

原文先給兩個幾何量。原點到線的距離是:

$$d=\frac{|w_0|}{\sqrt{w_1^2+w_2^2}} \qquad (3.3)$$

任意點 $\boldsymbol{x}$ 到線的有號距離大小是:

$$z=\frac{|g(\boldsymbol{x})|}{\sqrt{w_1^2+w_2^2}} \qquad (3.4)$$

因此 $|g(\boldsymbol{x})|$ 只能當作「未正規化信心分數」;真正的歐氏距離還要除以 $\|\boldsymbol{w}\|$。$g>0$ 與 $g<0$ 分別在兩側;若 $w_0=0$,線穿過原點。

數字例子:令 $\boldsymbol{w}=[2,1]^T$、$w_0=-3$、$\boldsymbol{x}=[2,1]^T$。

$$g(\boldsymbol{x})=2,\qquad z=\frac{2}{\sqrt{5}}\approx0.894,\qquad d=\frac{3}{\sqrt{5}}\approx1.342$$
數字大代表什麼? $|g|$ 大通常表示離邊界遠;但若換了 $\boldsymbol{w}$ 的縮放,$|g|$ 也會跟著變,所以比較模型時要看正規化距離。
互動 Demo 1|拉一條線,親眼看「距離=信心」兩個滑桿:角度(傾斜)與偏移(離原點)
角度 = 45°
偏移 = -0.5
誤判數 —
角度
偏移

把滑鼠移進圖裡,會即時報出「這個點離線多遠、判它哪邊」。

你應該能回答

① 為什麼 $\boldsymbol{w}$ 垂直於超平面? ② $|g|$ 和真正距離差在哪? ③ $w_0=0$ 時幾何上發生什麼事?

02

感知機:錯一題、訂正一題,直到全對

The perceptron algorithm (3.3)

原文先處理「線性可分」:有一條正確的線存在,感知機負責把它找出來。

1. 先把「不過原點的線」搬進擴充空間

若 $\boldsymbol{w}^{*T}\boldsymbol{x}=0$ 能分開兩類,則 $\omega_1$ 在正側、$\omega_2$ 在負側。一般有 threshold 的線也能用擴充向量處理:

$$\boldsymbol{x}'=[\boldsymbol{x}^{T},1]^T,\qquad \boldsymbol{w}'=[\boldsymbol{w}^{*T},w_0^*]^T$$ $$\boldsymbol{w}^{*T}\boldsymbol{x}+w_0^*=\boldsymbol{w}'^{T}\boldsymbol{x}'$$

這個小技巧讓後面所有式子看起來都像「過原點的超平面」。最後一個座標其實就是截距的插座。

2. Perceptron cost:只把錯題加總

令 $Y$ 是目前被分錯的樣本集合;$\delta_x=-1$($\omega_1$)或 $+1$($\omega_2$)。在錯誤樣本上,下面的乘積會是正數;全對時 $Y=\varnothing$,成本變成 0:

$$J(\boldsymbol{w})=\sum_{\boldsymbol{x}\in Y}\delta_x\boldsymbol{w}^{T}\boldsymbol{x} \qquad (3.6)$$

$J$ 是連續、分段線性的函數。當某個點跨過邊界,$Y$ 會改變,梯度在那個位置不連續;所以它不是一個可以放心套用平滑梯度下降理論的普通函數。

$$\boldsymbol{w}(t+1)=\boldsymbol{w}(t)-\rho_t\sum_{\boldsymbol{x}\in Y}\delta_x\boldsymbol{x} \qquad (3.9)$$

更新方向很有直覺:被誤判的點會把 $\boldsymbol{w}$ 往「修正它」的方向推。

3. 原文演算法骨架

  1. 隨機選 $\boldsymbol{w}(0)$ 與正學習率 $\rho_0$。
  2. 掃過所有樣本,找出 $\delta_{x_i}\boldsymbol{w}^{T}\boldsymbol{x}_i\geq0$ 的錯誤集合 $Y$。
  3. 依 (3.9) 更新;調整 $\rho_t$;重複。
  4. $Y=\varnothing$ 才停止。

一次把整批錯誤加總,是 batch 形式;下面的 reward-and-punishment 則是一個樣本一個樣本修。

互動 Demo 2|親眼看決策線「被轉」直到全對批次式感知機(3.9),你按一次就轉一次
步數 0
誤判 —
ρ = 0.1
w = [0,0,0]
學習率 ρ

被分錯的點會掛紅圈;每按一次 Step,紫線就朝「錯的人」轉一點。

4. 為什麼會收斂?把證明讀成「距離帳本」

原文不是只說「實驗看起來會停」。它選一個真正的解 $\boldsymbol{w}^*$,比較 $\boldsymbol{w}(t)$ 和 $\alpha\boldsymbol{w}^*$ 的距離。更新後平方距離可被壓成:

$$\|\boldsymbol{w}(t+1)-\alpha\boldsymbol{w}^*\|^2 \leq \|\boldsymbol{w}(t)-\alpha\boldsymbol{w}^*\|^2+\rho_t^2\beta^2-2\rho_t\alpha|\gamma| \qquad (3.15)$$

$\beta^2$ 是所有可能錯誤子集合的修正向量最大平方長度;$\gamma<0$ 則記錄真解對錯誤樣本提供的負向量量。選 $\alpha=\beta^2/(2|\gamma|)$ 後,累加得到 (3.16)。要讓「累積前進量」壓過「累積噪聲」,學習率需滿足:

$$\lim_{t\to\infty}\sum_{k=0}^{t}\rho_k=\infty,\qquad \lim_{t\to\infty}\sum_{k=0}^{t}\rho_k^2<\infty \qquad (3.17\text{--}3.18)$$

第一條說步子總和不能太小;第二條說平方噪聲總和要有限。典型選擇是 $\rho_t=c/(t+1)$。在適當有界條件下,常數 $\rho$ 也能收斂,但速度與步幅很敏感。重點:收斂保證的前提是線性可分,而且解不一定唯一。

5. Example 3.1:一次更新真的把線轉正

目前權重是 $[1,1,-0.5]^T$、$\rho=0.7$;被誤判的兩點是 $[0.4,0.05]^T$($\delta=-1$)與 $[-0.2,0.75]^T$($\delta=+1$)。把兩個錯誤一起放入 (3.9):

$$\boldsymbol{w}(t+1)=\begin{bmatrix}1\\1\\-0.5\end{bmatrix} -0.7(-1)\begin{bmatrix}0.4\\0.05\\1\end{bmatrix} -0.7(+1)\begin{bmatrix}-0.2\\0.75\\1\end{bmatrix} =\begin{bmatrix}1.42\\0.51\\-0.5\end{bmatrix}$$

新線是 $1.42x_1+0.51x_2-0.5=0$,課本指出它把所有點分對,演算法停止。

圖3.3 Example 3.1:更新後線從虛線轉到實線、全對
圖3.3 Example 3.1:更新後線從虛線轉到實線、全對

6. Reward-and-punishment:單筆更新版

樣本依序進來。$\omega_1$ 被錯判就加 $\rho\boldsymbol{x}_{(t)}$;$\omega_2$ 被錯判就減;分對就完全不動:

$$\boldsymbol{w}(t+1)=\begin{cases} \boldsymbol{w}(t)+\rho\boldsymbol{x}_{(t)},&\boldsymbol{x}_{(t)}\in\omega_1\ \text{且}\ \boldsymbol{w}^{T}(t)\boldsymbol{x}_{(t)}\leq0\\ \boldsymbol{w}(t)-\rho\boldsymbol{x}_{(t)},&\boldsymbol{x}_{(t)}\in\omega_2\ \text{且}\ \boldsymbol{w}^{T}(t)\boldsymbol{x}_{(t)}\geq0\\ \boldsymbol{w}(t),&\text{otherwise} \end{cases} \qquad (3.21\text{--}3.23)$$

它就是「答對獎勵不扣分、答錯處罰並訂正」的學習機制。

圖3.2 感知機的幾何解讀:權重朝被誤判之點的方向轉
圖3.2 感知機的幾何解讀:權重朝被誤判之點的方向轉
圖3.4 Example 3.2:四點與解得直線 x1=x2
圖3.4 Example 3.2:四點與解得直線 x1=x2

7. Example 3.2:四點逐步得到 $x_1=x_2$

類別 $\omega_1$:$(-1,0),(0,1)$;類別 $\omega_2$:$(0,-1),(1,0)$。擴充成三維,$\rho=1$、$\boldsymbol{w}(0)=[0,0,0]^T$:

步驟當下內積更新後權重
1,$(-1,0,1)$0,錯$[-1,0,1]^T$
2,$(0,1,1)$1,對不變
3,$(0,-1,1)$1,錯$[-1,1,0]^T$
4,$(1,0,1)$-1,對不變

再掃過四個點都不需修正,得到 $-x_1+x_2=0$,也就是 $x_1=x_2$。

圖3.4 Example 3.2:四點與解得直線 x1=x2
圖3.4 Example 3.2:四點與解得直線 x1=x2

8. Perceptron 是一個神經元

分類規則是 $\boldsymbol{w}^{T}\boldsymbol{x}+w_0>0$ 判給 $\omega_1$、小於 0 判給 $\omega_2$。網路實作就是:輸入乘 synaptic weights → 加總 threshold → 經過 hard limiter step function。

$$f(a)=\begin{cases}-1,&a<0\\+1,&a>0\end{cases},\qquad a=\boldsymbol{w}^{T}\boldsymbol{x}+w_0 \qquad (3.24)$$

輸出也可以改成 0/1。這個 McCulloch–Pitts 型神經元,是後面更複雜學習網路的基本零件。

圖3.5 感知機(神經元):線性加總+激活函數
圖3.5 感知機(神經元):線性加總+激活函數

9. 不可分時:Pocket 先把最好成績放口袋

若類別不可線性分,普通感知機會一直更新、不保證停止。Pocket algorithm 仍照感知機更新,但另外保存目前「分對最多」的 $\boldsymbol{w}_s$ 與歷史正確數 $b_s$:

  1. 隨機初始化 $\boldsymbol{w}(0)$,口袋向量與計數歸零。
  2. 做一次感知機更新,計算新權重分對的樣本數 $b$。
  3. 若 $b>b_s$,把新權重放進口袋;繼續迭代。

原文指出,在適當條件下它以機率一收斂到錯誤數最少的解。它不是把不可分資料變魔術,而是把「永遠找不到零錯誤」改成「留住目前最好的線」。

10. Kesler's construction:把多類問題搬成二類

多類時,每一類有一個 $g_i(\boldsymbol{x})=\boldsymbol{w}_i^T\boldsymbol{x}$;若 $\boldsymbol{x}\in\omega_i$,希望 $g_i>g_j$ 對所有 $j\ne i$。對每一個 $i,j$ 建立 block vector:

$$\boldsymbol{x}_{ij}=[\boldsymbol{0}^T,\ldots,\boldsymbol{x}^T,\ldots,-\boldsymbol{x}^T,\ldots,\boldsymbol{0}^T]^T$$ $$\boldsymbol{w}=[\boldsymbol{w}_1^T,\ldots,\boldsymbol{w}_M^T]^T,\qquad \boldsymbol{w}^T\boldsymbol{x}_{ij}>0$$

於是原本的 $M$ 類比較,被改寫成擴充空間裡的「所有 block vector 都在正側」的二類感知機問題。

Example 3.3:三類分別落在三個象限。課本以 $\rho_t=0.5$ 的感知機跑 4 次,得到:

$$\boldsymbol{w}_1=[5.13,3.60,1.00]^T,\quad \boldsymbol{w}_2=[-0.05,-3.16,-0.41]^T,\quad \boldsymbol{w}_3=[-3.84,1.28,0.69]^T$$

這個建構法的代價是維度變成 $(l+1)M$,樣本數也變成 $(M-1)N$;類別多時,計算量會明顯增加。

你應該能回答

① 感知機 cost 為何是分段線性? ② 收斂條件兩個無窮和各自防什麼? ③ Pocket 解決什麼問題? ④ Kesler 如何把多類轉成二類?

03

最小平方家族:從「挑錯題」升級成「績效制」

Least-squares methods (3.4)

感知機追求零錯誤,但不可分資料不答應。最小平方改問:所有誤差平方加起來,怎麼最小?

1. MSE:允許犯錯,但要付平方代價

二類 desired response 設成 $y=+1$ 或 $-1$;模型輸出是 $\boldsymbol{w}^{T}\boldsymbol{x}$。MSE 把整體期望誤差平方最小化:

$$J(\boldsymbol{w})=E\left[(y-\boldsymbol{x}^{T}\boldsymbol{w})^2\right],\qquad \hat{\boldsymbol{w}}=\operatorname*{arg\,min}_{\boldsymbol{w}}J(\boldsymbol{w}) \qquad (3.26\text{--}3.27)$$

若把兩類的條件分布展開,這就是 $\omega_1$ 的 $(1-\boldsymbol{x}^{T}\boldsymbol{w})^2$ 加上 $\omega_2$ 的 $(1+\boldsymbol{x}^{T}\boldsymbol{w})^2$,並用先驗機率加權(3.28)。

$$\frac{\partial J}{\partial\boldsymbol{w}}=2E\left[\boldsymbol{x}(y-\boldsymbol{x}^{T}\boldsymbol{w})\right]=\boldsymbol{0} \qquad (3.29)$$ $$\hat{\boldsymbol{w}}=R_x^{-1}E[\boldsymbol{x}y],\qquad R_x=E[\boldsymbol{x}\boldsymbol{x}^{T}] \qquad (3.30\text{--}3.31)$$

$R_x$ 是 autocorrelation matrix;$E[\boldsymbol{x}y]$ 是 cross-correlation。前提是 $R_x$ 可逆。

圖3.6 最小平方 = 向量 y 在 x 張開子空間上的正交投影
圖3.6 最小平方 = 向量 y 在 x 張開子空間上的正交投影

2. 正交投影:MSE 為何長這樣?

把隨機變數當成向量,內積用 $E[uv]$ 定義。模型 $\boldsymbol{w}^{T}\boldsymbol{x}$ 是由輸入座標張成的子空間中的一個向量。最好的解讓殘差 $y-\boldsymbol{w}^{T}\boldsymbol{x}$ 和每個輸入 $x_i$ 都垂直:

$$E\left[\boldsymbol{x}(y-\boldsymbol{x}^{T}\hat{\boldsymbol{w}})\right]=\boldsymbol{0}$$

所以 MSE 不是神秘的黑盒:它把 $y$ 正交投影到輸入能表示的子空間。若真實關係不在這個子空間裡,剩下的就是不可消除的投影誤差。

3. 多類 MSE:一個輸出變成 one-hot 向量

$M$ 類時,令 $y_i=1$(屬於 $\omega_i$)或 0(不屬於),$W=[\boldsymbol{w}_1,\ldots,\boldsymbol{w}_M]$。一次最小化所有輸出的平方誤差:

$$\hat W=\operatorname*{arg\,min}_{W}E\left[\|\boldsymbol{y}-W^T\boldsymbol{x}\|^2\right] =\operatorname*{arg\,min}_{W}E\left[\sum_{i=1}^{M}(y_i-\boldsymbol{w}_i^T\boldsymbol{x})^2\right] \qquad (3.33)$$

它等價於 $M$ 個獨立的 scalar MSE 問題。最後選輸出最大的類別。

4. 不知道期望值怎麼辦?Robbins–Monro → LMS

理論解需要 $R_x$ 與 cross-correlation,但真實 pdf 通常不知道。隨機近似用單筆樣本替代期望:

$$\hat{\boldsymbol{w}}(k)=\hat{\boldsymbol{w}}(k-1)+\rho_kF(\boldsymbol{x}_k,\hat{\boldsymbol{w}}(k-1)) \qquad (3.34)$$ $$\sum_{k=1}^{\infty}\rho_k=\infty,\qquad \sum_{k=1}^{\infty}\rho_k^2<\infty \qquad (3.35\text{--}3.36)$$

第一條不讓學習太早凍結;第二條讓累積噪聲有限,於是 $\rho_k\to0$,估計值以機率、也以 MSE 意義趨近真解(3.37–3.39)。最簡單的平均值例子是:

$$\hat w(k)=\hat w(k-1)+\frac{1}{k}[x_k-\hat w(k-1)]=\frac{1}{k}\sum_{r=1}^{k}x_r$$

套回分類問題,就是 LMS/Widrow–Hoff:

$$\hat{\boldsymbol{w}}(k)=\hat{\boldsymbol{w}}(k-1)+\rho_k\boldsymbol{x}_k\left(y_k-\boldsymbol{x}_k^T\hat{\boldsymbol{w}}(k-1)\right) \qquad (3.40)$$

若用固定 $\rho$,只要 $0<\rho<2/\operatorname{trace}(R_x)$,平均值仍趨近 MSE 解,但方差會停在一個非零常數(3.41)。$\rho$ 小:穩但慢;$\rho$ 大:快但抖。固定步幅的好處是資料統計慢慢漂移時,模型還能追蹤。

Adaline:LMS 訓練的是沒有 activation 的線性 neuron;訓練完成後,才在加總器後面接 hard limiter。它和感知機長得像,但學習規則不同。
互動 Demo 3|你拉的線 vs 最小平方最優線(SSE 擂台賽)就是課本 Example 3.4 那 10 個點;噪音拉高=資料開始「造反」
你的 SSE —
最優 w = [—]
最優 SSE —
噪音 10
斜率 截距 噪音

努力把你的粉線拉到跟綠線重疊——試著輸給電腦一次,你就懂「最優」的意思了。

5. LS/SSE:把期望值換成有限訓練集

有 $N$ 筆資料時,直接最小化誤差平方和:

$$J(\boldsymbol{w})=\sum_{i=1}^{N}(y_i-\boldsymbol{x}_i^T\boldsymbol{w})^2 =\sum_{i=1}^{N}e_i^2 \qquad (3.42)$$ $$\left(\sum_i\boldsymbol{x}_i\boldsymbol{x}_i^T\right)\hat{\boldsymbol{w}}=\sum_i\boldsymbol{x}_iy_i \qquad (3.43)$$

把樣本排成 $X$ 的列、desired response 排成 $\boldsymbol{y}$:

$$X=\begin{bmatrix}\boldsymbol{x}_1^T\\\boldsymbol{x}_2^T\\\vdots\\\boldsymbol{x}_N^T\end{bmatrix},\qquad (X^TX)\hat{\boldsymbol{w}}=X^T\boldsymbol{y},\qquad \hat{\boldsymbol{w}}=(X^TX)^{-1}X^T\boldsymbol{y}=X^+\boldsymbol{y} \qquad (3.44\text{--}3.45)$$

$X^+$ 是 pseudoinverse;只有 $X^TX$ 可逆、$X$ 滿 column rank 時,上面的顯式逆矩陣才合法。當 $N>l$,通常沒有一條線通過所有點,偽逆給的是平方和最小的折衷。

6. Example 3.4:不可分資料也能算出一條最好的線

課本給兩類各 5 個二維點,追加常數 1 後得到 $10\times3$ 的 $X$;desired response 是前五個 $+1$、後五個 $-1$:

$$X^TX=\begin{bmatrix}2.8&2.24&4.8\\2.24&2.41&4.7\\4.8&4.7&10\end{bmatrix},\qquad X^T\boldsymbol{y}=\begin{bmatrix}-1.6\\0.1\\0\end{bmatrix}$$ $$[w_1,w_2,w_0]=[-3.218,\ 0.241,\ 1.431]$$

這條線不可能零錯誤,但它的總平方誤差已經是所有線性模型中最小。這是「最佳」不等於「全對」的第一個重要示範。

圖3.7 Example 3.4:最小誤差平方和的分類線(資料不可分)
圖3.7 Example 3.4:最小誤差平方和的分類線(資料不可分)

你應該能回答

① MSE 正規方程的幾何意義? ② LMS 為何需要遞減步幅?固定步幅何時反而有用? ③ 偽逆在 $N>l$ 時替我們解決什麼問題?

04

MSE 的隱藏技能:條件平均、後驗與 bias–variance

MSE revisited (3.5)

這一站把上一站的線性公式放回機率世界:MSE 的最佳答案其實是條件平均;分類時,one-hot 的條件平均就是後驗機率。

1. Regression:最好的平方誤差預測是條件平均

先不限定模型是直線。給定觀測到的 $\boldsymbol{x}$,想用某個 $\tilde{\boldsymbol{y}}$ 預測 $\boldsymbol{y}$:

$$\hat{\boldsymbol{y}}=\operatorname*{arg\,min}_{\tilde{\boldsymbol{y}}}E\left[\|\boldsymbol{y}-\tilde{\boldsymbol{y}}\|^2\right] \qquad (3.46)$$ $$\hat{\boldsymbol{y}}=E[\boldsymbol{y}\mid\boldsymbol{x}]=\int\boldsymbol{y}\,p(\boldsymbol{y}\mid\boldsymbol{x})\,d\boldsymbol{y} \qquad (3.47)$$

證明就是平方展開:拿任意估計 $\tilde{\boldsymbol{y}}$ 與條件平均比較,交叉項的期望為 0,剩下一個非負的距離平方:

$$E\left[\|\boldsymbol{y}-\tilde{\boldsymbol{y}}\|^2\right] =E\left[\|\boldsymbol{y}-\hat{\boldsymbol{y}}\|^2\right]+\|\hat{\boldsymbol{y}}-\tilde{\boldsymbol{y}}\|^2 \geq E\left[\|\boldsymbol{y}-\hat{\boldsymbol{y}}\|^2\right] \qquad (3.48\text{--}3.50)$$

因此 regression function $E[\boldsymbol{y}\mid\boldsymbol{x}]$ 一般可以是非線性的;只有加上共同 Gaussian 等條件時,才會退化成線性函數。

2. 1-of-M 輸出:MSE 偷偷估出 posterior

多類標籤用 one-hot 向量 $\boldsymbol{y}$:正確類別是 1,其餘是 0。令 $\boldsymbol{g}(\boldsymbol{x})$ 是模型輸出:

$$J=E\left[\sum_{i=1}^{M}(g_i(\boldsymbol{x})-y_i)^2\right] \qquad (3.51)$$

把平方項加減 $\left(E[y_i\mid\boldsymbol{x}]\right)^2$,可以分成「模型和條件平均的距離」以及與 $g_i$ 無關的條件變異:

$$J=E\left[\sum_i\left(g_i(\boldsymbol{x})-E[y_i\mid\boldsymbol{x}]\right)^2\right] +E\left[\sum_i\operatorname{Var}(y_i\mid\boldsymbol{x})\right] \qquad (3.56)$$ $$E[y_i\mid\boldsymbol{x}]=P(\omega_i\mid\boldsymbol{x}) \qquad (3.57\text{--}3.58)$$

所以只要用 1/0 目標做 MSE,理想上 $g_i(\boldsymbol{x})$ 就是第 $i$ 類的後驗機率估計;再取最大的 $g_i$ 就能做 Bayesian-style decision。限制不在這個結論,而在於你選的模型(例如直線)能不能把真正的非線性 posterior 表示好。

重要區分:「MSE cost 有估 posterior 的性質」和「線性模型一定估得準」是兩句不同的話。前者是代價函數的結論,後者取決於模型容量。
互動 Demo 4|同一個真相:直線 vs 高階多項式(bias–variance 兩難)把次數拉高,看擬合「貼死資料」卻一換資料就翻臉
多項式次數 d = 2
真值 f(x) = sin(5x) + 0.6x
結論 —

灰線 = 40 組不同訓練集各自的擬合;粗紅線 = 它們的平均;藍虛線 = 你沒看過的真值。灰色帶越寬,代表「換份資料就大變樣」。

平均偏差(紅 vs 藍)—
變異(灰帶寬)—

3. Bias–variance:同一個真相,換資料集就換一條線

訓練資料集記成 $\mathcal{D}$,模型其實是 $g(\boldsymbol{x};\mathcal{D})$。對所有可能的同大小資料集平均:

$$E_{\mathcal{D}}\left[(g(\boldsymbol{x};\mathcal{D})-E[y\mid\boldsymbol{x}])^2\right] =\left(E_{\mathcal{D}}[g]-E[y\mid\boldsymbol{x}]\right)^2 +E_{\mathcal{D}}\left[(g-E_{\mathcal{D}}[g])^2\right] \qquad (3.59\text{--}3.60)$$

第一項是 bias,第二項是 variance。模型越簡單,常見情況是 bias 大、variance 小;模型越複雜,可能把每個資料集的噪聲都背起來,bias 小但 variance 大。

Case 1:固定直線
$g(x)=w_1x+w_0$ 不隨資料集變,variance 幾乎為 0;若真實 $f(x)$ 彎曲,bias 可能很大。
Case 2:高階多項式
每個資料集都穿過 11 個 noisy points,訓練點 bias 可接近 0;但在新資料集上曲線會大幅擺動,variance 變大。
圖3.8 bias–variance:直線偏差大變異小;高階多項式反之
圖3.8 bias–variance:直線偏差大變異小;高階多項式反之

原文也提醒:分類不能只看 MSE。輸出即使離 $+1/-1$ 很遠,只要大多站在正確一側,分類錯誤率仍可能很好。有限資料下,我們要找的是 bias 與 variance 的折衷;這正是後續泛化理論關心的問題。

你應該能回答

① 為什麼條件平均是 MSE 最佳答案? ② one-hot 的條件平均為什麼等於 posterior? ③ 高階模型如何同時降低 bias 卻提高 variance?

05

Logistic:直接把 log-odds 建模成直線

Logistic discrimination (3.6)

MSE 是訓練後才「順便」得到 posterior;Logistic 從一開始就把 posterior 的勝算寫進模型。

1. 多類:先寫 log likelihood ratio,再讓機率總和為 1

選第 $M$ 類當參考類別,對 $i=1,\ldots,M-1$ 設:

$$\ln\frac{P(\omega_i\mid\boldsymbol{x})}{P(\omega_M\mid\boldsymbol{x})} =w_{i,0}+\boldsymbol{w}_i^T\boldsymbol{x} \qquad (3.61)$$ $$\sum_{i=1}^{M}P(\omega_i\mid\boldsymbol{x})=1 \qquad (3.62)$$

兩式合起來就是 softmax 型的 posterior:

$$P(\omega_M\mid\boldsymbol{x})=\frac{1}{1+\sum_{i=1}^{M-1}\exp(w_{i,0}+\boldsymbol{w}_i^T\boldsymbol{x})} \qquad (3.63)$$ $$P(\omega_i\mid\boldsymbol{x})=\frac{\exp(w_{i,0}+\boldsymbol{w}_i^T\boldsymbol{x})}{1+\sum_{j=1}^{M-1}\exp(w_{j,0}+\boldsymbol{w}_j^T\boldsymbol{x})} \qquad (3.64)$$

2. 二類:sigmoid 是 softmax 的特例

$$P(\omega_2\mid\boldsymbol{x})=\frac{1}{1+\exp(w_0+\boldsymbol{w}^T\boldsymbol{x})},\qquad P(\omega_1\mid\boldsymbol{x})=\frac{\exp(w_0+\boldsymbol{w}^T\boldsymbol{x})}{1+\exp(w_0+\boldsymbol{w}^T\boldsymbol{x})} \qquad (3.65\text{--}3.66)$$

當 $w_0+\boldsymbol{w}^T\boldsymbol{x}=0$,兩類機率相等;正側往 $\omega_1$ 靠近,負側往 $\omega_2$ 靠近。這次的輸出不是硬切的 $+1/-1$,而是有機率意義的軟分數。

互動 Demo 5|Sigmoid 曲線長在資料上的瞬間一維特徵 x:藍點 = 類別一、紅點 = 類別二;藍線 = $P(\omega_1\mid x)$
w = [—]
迭代 0

$P(\omega_1\mid x)$ 越過 0.5 的點就是分類邊界;滑鼠移過,即時報信心值。

3. Maximum likelihood:參數怎麼學?

已知每筆訓練樣本的類別,令 $\boldsymbol{\theta}$ 收集所有 $w_{i,0}$ 與 $\boldsymbol{w}_i$。原文先寫條件 likelihood 的乘積:

$$L(\boldsymbol{\theta})=\ln\left\{\prod_{m=1}^{M}\prod_{k=1}^{N_m} p(\boldsymbol{x}_k^{(m)}\mid\omega_m;\boldsymbol{\theta})\right\} \qquad (3.67)$$

利用 Bayes 公式,所有與 $\boldsymbol{\theta}$ 無關的 marginal 項收進常數 $C$,真正要最大化的是:

$$L(\boldsymbol{\theta})=\sum_{m=1}^{M}\sum_{k=1}^{N_m} \ln P(\omega_m\mid\boldsymbol{x}_k^{(m)};\boldsymbol{\theta})+C \qquad (3.68\text{--}3.70)$$

接著可用梯度法或其他最佳化法求參數。這就是 Logistic regression 的核心:對條件機率做最大概似,不需要先寫出每一類的完整 pdf。

4. Logistic 與 LDA:長得像,假設不同

若各類是 Gaussian 且共用 covariance $\Sigma$,Ch2 的 LDA log posterior odds 也可寫成:

$$\ln\frac{P(\omega_1\mid\boldsymbol{x})}{P(\omega_2\mid\boldsymbol{x})} =\frac{1}{2}(\boldsymbol{\mu}_2^T\Sigma^{-1}\boldsymbol{\mu}_2-\boldsymbol{\mu}_1^T\Sigma^{-1}\boldsymbol{\mu}_1) +(\boldsymbol{\mu}_1-\boldsymbol{\mu}_2)^T\Sigma^{-1}\boldsymbol{x}$$
方法參數怎麼估什麼時候有優勢
LDA假設 Gaussian,使用 marginal density 的完整資訊Gaussian/共變異假設合理時
Logistic直接估 conditional posterior,較少分布假設不確定 pdf 形狀時

兩者在實務上可能很接近;差異不在「邊界一定不同」,而在「參數估計時使用的資訊與假設不同」。

你應該能回答

① log-odds 為何適合用直線建模? ② softmax 如何保證機率和為 1? ③ Logistic 與 LDA 的關鍵差異是模型形狀還是估參數的假設?

06

SVM:不只分對,還要車道夠寬

Support vector machines (3.7.1–3.7.3)

感知機找到「任何一條可分線」;SVM 要求「對未知資料更放心」的最大邊距線。

1. Generalization:為什麼不選貼邊的線?

兩條線都能把訓練點分對,但留白較大的線,資料稍微漂移時比較不容易翻到另一側。這就是原文引入的 generalization intuition:訓練資料以外的新資料,也要有安全空間。

圖3.9 兩個都可分對的超平面;實線留白更多
圖3.9 兩個都可分對的超平面;實線留白更多

固定方向後,選一條到兩類最近點距離相等的線;再在所有方向中挑 margin 最大者。

圖3.10 給定方向下,讓兩側最近的點定成 ±1 → 邊距
圖3.10 給定方向下,讓兩側最近的點定成 ±1 → 邊距

2. 正規化後,最大邊距變成一個凸最佳化問題

因為把 $\boldsymbol{w},w_0$ 同時放大不會改變線的位置,所以把最近的正類點規範成 $+1$、負類點規範成 $-1$:

$$\boldsymbol{w}^T\boldsymbol{x}+w_0\geq1\quad(\omega_1),\qquad \boldsymbol{w}^T\boldsymbol{x}+w_0\leq-1\quad(\omega_2)$$ $$\text{margin}=\frac{1}{\|\boldsymbol{w}\|}+\frac{1}{\|\boldsymbol{w}\|}=\frac{2}{\|\boldsymbol{w}\|}$$ $$\operatorname*{minimize}_{\boldsymbol{w},w_0}\ \frac12\|\boldsymbol{w}\|^2 \quad\text{subject to}\quad y_i(\boldsymbol{w}^T\boldsymbol{x}_i+w_0)\geq1 \qquad (3.72\text{--}3.73)$$

最小化 $\|\boldsymbol{w}\|$ 就是最大化 margin。這個目標是嚴格凸、限制是線性不等式,因此最優超平面唯一。

3. KKT:為什麼只有少數 support vectors 決定答案?

把每個限制放進 Lagrangian:

$$\mathcal{L}=\frac12\boldsymbol{w}^T\boldsymbol{w} -\sum_{i=1}^{N}\lambda_i[y_i(\boldsymbol{w}^T\boldsymbol{x}_i+w_0)-1]$$ $$\frac{\partial\mathcal{L}}{\partial\boldsymbol{w}}=0,\quad \frac{\partial\mathcal{L}}{\partial w_0}=0,\quad \lambda_i\geq0,\quad \lambda_i[y_i(\boldsymbol{w}^T\boldsymbol{x}_i+w_0)-1]=0 \qquad (3.74\text{--}3.78)$$

由此得到:

$$\boldsymbol{w}=\sum_{i=1}^{N}\lambda_i y_i\boldsymbol{x}_i,\qquad \sum_{i=1}^{N}\lambda_i y_i=0 \qquad (3.79\text{--}3.80)$$ $$\boldsymbol{w}=\sum_{i=1}^{N_s}\lambda_i y_i\boldsymbol{x}_i \qquad (3.81)$$

若 $\lambda_i=0$,那個點對最後的 $\boldsymbol{w}$ 沒貢獻;若 $\lambda_i>0$,互補鬆弛迫使它落在 $\boldsymbol{w}^T\boldsymbol{x}+w_0=\pm1$ 上。這些離邊界最近的點就是 support vectors。

圖3.12 Example 3.5:四點皆為支持向量、最優線 x1=0
圖3.12 Example 3.5:四點皆為支持向量、最優線 x1=0

4. Dual:資料只透過內積出現

$$\operatorname*{maximize}_{\boldsymbol{\lambda}} \left(\sum_i\lambda_i-\frac12\sum_{i,j}\lambda_i\lambda_jy_iy_j\boldsymbol{x}_i^T\boldsymbol{x}_j\right)$$ $$\text{subject to}\quad \sum_i\lambda_iy_i=0,\qquad \lambda_i\geq0 \qquad (3.87\text{--}3.89)$$

這個對偶形式有兩個大禮物:第一,限制變成好處理的等式+非負條件;第二,輸入只以 pairwise inner product 出現,公式不直接依賴輸入維度。這正是下一章 kernel trick 能接手的入口。注意:最終 $\boldsymbol{w}$ 唯一,但能產生它的 $\lambda_i$ 組合不一定唯一。

5. Example 3.5:最佳線 $x_1=0$,但 multipliers 不唯一

正類是 $[1,1]^T,[1,-1]^T$;負類是 $[-1,1]^T,[-1,-1]^T$。正方形的左右兩邊最近,所以最佳線:

$$g(\boldsymbol{x})=x_1=0,\qquad w_1=1,\quad w_2=w_0=0,\quad\text{margin}=1$$

四個點都剛好在兩條 margin 線上,因此四個都是 support vectors。把已知 $w_1=1,w_2=w_0=0$ 放回 KKT,只剩三條線性方程配四個 $\lambda$,所以 multipliers 可有多組,但最後的線一樣。

圖3.11 不可分:點掉進邊距帶內(方格=帶內對、圓圈=誤判)
圖3.11 不可分:點掉進邊距帶內(方格=帶內對、圓圈=誤判)

6. 不可分:slack variables 與 soft margin

不可分時,點有三類:在 margin 外且分對、落在 margin 內但仍分對、跑到錯側。用 $\xi_i$ 把三種情況放進同一條限制:

圖3.13 Example 3.6:左 C=0.2 邊距寬、右 C=1000 邊距窄
圖3.13 Example 3.6:左 C=0.2 邊距寬、右 C=1000 邊距窄
$$y_i(\boldsymbol{w}^T\boldsymbol{x}_i+w_0)\geq1-\xi_i,\qquad \xi_i\geq0 \qquad (3.90)$$ $$\min\ \frac12\|\boldsymbol{w}\|^2+C\sum_i\xi_i \quad\text{subject to the constraints above} \qquad (3.95)$$

$\xi_i=0$ 表示在 margin 外;$0<\xi_i\leq1$ 表示帶內但可能仍分對;$\xi_i>1$ 表示錯側。原文先提出「是否有 slack」的 indicator cost,再用連續的 $\sum_i\xi_i$ 近似,讓問題保持凸且可解。

對偶的差異變成:

$$0\leq\lambda_i\leq C,\qquad \sum_i\lambda_iy_i=0 \qquad (3.103\text{--}3.105)$$

若 $\xi_i>0$,KKT 會把對應 $\lambda_i$ 推到 $C$。$C$ 越大,錯誤懲罰越重,模型會犧牲 margin 去少犯錯;$C$ 越小,容許較多點進 margin,換取較寬的車道。

圖3.13 Example 3.6:左 C=0.2 邊距寬、右 C=1000 邊距窄
圖3.13 Example 3.6:左 C=0.2 邊距寬、右 C=1000 邊距窄

7. Example 3.6:$C=0.2$ 和 $C=1000$ 的取捨

同一批不可分資料,$C=0.2$ 時讓較多點進 margin,車道較寬;$C=1000$ 時更重視每個 slack,線會移動、方向改變,margin 變窄,但錯誤/帶內點較少。這不是「哪個 $C$ 永遠正確」,而是工程上的正則化旋鈕。

8. 多類 SVM:三條路

方法做法代價/風險
One-against-all每類對其餘類訓練一個 $g_i$,最後取 $\operatorname*{arg\,max}_i g_i(\boldsymbol{x})$可能出現多個正值或全部負值;類別不平衡
One-against-one訓練 $M(M-1)/2$ 個兩類 SVM,多數投票模型數多,但每個子問題較小
ECOC每類分配長度 $L$ 的 ±1 codeword,分類看 Hamming distance若最小碼距為 $d$,可容忍最多 $\left\lfloor(d-1)/2\right\rfloor$ 個二類分類器犯錯
$$\text{Example code matrix:}\quad \begin{bmatrix}-1&-1&-1&+1&-1&+1\\+1&-1&+1&+1&-1&-1\\+1&+1&-1&-1&-1&+1\\-1&-1&+1&-1&+1&+1\end{bmatrix}$$

原文也提醒計算限制:天真的 QP solver 訓練成本約 $O(N^3)$、記憶體約 $O(N^2)$;大型資料會用 decomposition/working set,SMO 更把 working set 壓到兩個點。

互動 Demo 6|轉方向,找到「車道最寬」的那條線資料固定,只換方向;橙圈 = 兩側「守門員」(支持向量候補)
方向 = 0°
起始邊距 —
目前邊距 —
最佳方向 —

灰紫帶 = 該方向下的邊距帶;邊距的算法就是課本「最近點定成 ±1」那一套。

你應該能回答

① 最大化 margin 為何等價於最小化 $\|\boldsymbol{w}\|^2$? ② KKT 如何挑出 support vectors? ③ $C$ 變大會怎麼改變 margin? ④ ECOC 的碼距如何提供容錯?

07

深入 SVM:ν 旋鈕與幾何之眼

ν-SVM, convex hulls & reduced convex hulls (3.7.4–3.7.6)

$C$ 是間接控制 margin;ν-SVM 直接把 margin 寬度放進最佳化,接著還能用凸幾何重新看懂整件事。

1. ν-SVM:把 margin 寬度本身拿來調

用兩條平行線 $\boldsymbol{w}^T\boldsymbol{x}+w_0=\pm\rho$,$\rho\geq0$ 也是要學的變數。原文的 primal 問題:

$$\min_{\boldsymbol{w},w_0,\boldsymbol{\xi},\rho} \frac12\|\boldsymbol{w}\|^2-\nu\rho+\frac1N\sum_i\xi_i$$ $$\text{subject to}\quad y_i(\boldsymbol{w}^T\boldsymbol{x}_i+w_0)\geq\rho-\xi_i,\quad \xi_i\geq0,\quad\rho\geq0 \qquad (3.118\text{--}3.122)$$

若 $\xi_i=0$,兩條 margin 線的距離是 $2\rho/\|\boldsymbol{w}\|$。$\nu\in[0,1]$ 控制擴大 margin 與容許 slack 的拉扯。

2. ν 的兩個可讀保證

對偶限制可寫成:

$$0\leq\lambda_i\leq\frac1N,\qquad \sum_i\lambda_iy_i=0, \qquad \sum_i\lambda_i\geq\nu \qquad (3.138\text{--}3.141)$$

在非平凡解 $\rho>0$ 下,原文推得:

$$P_e\leq\nu \qquad (3.142),\qquad N\nu\leq N_s \qquad (3.143\text{--}3.144)$$

白話:$\nu$ 給訓練錯誤率一個上界,也給 support vector 數量一個下界。這不是測試集保證;它是設計者對訓練解的可讀控制訊號。

3. Convex hull:最大邊距其實是在找兩個最近點

一組點的 convex hull 是所有 convex combinations 的集合:

$$\operatorname{conv}(X)=\left\{\boldsymbol{y}:\boldsymbol{y}=\sum_i\lambda_i\boldsymbol{x}_i, \ \sum_i\lambda_i=1,\ 0\leq\lambda_i\leq1\right\} \qquad (3.145)$$

對可分兩類,分別在正類與負類 convex hull 找兩個最近點;連接它們的線段,其垂直平分線就是最大 margin 分類器。也就是「解析的 SVM dual」和「幾何最近點」是同一件事的兩種語言。

圖3.14 可分兩類的凸包與最近點
圖3.14 可分兩類的凸包與最近點
$$\min_{\boldsymbol{\lambda}}\left\|\sum_{y_i=1}\lambda_i\boldsymbol{x}_i-\sum_{y_i=-1}\lambda_i\boldsymbol{x}_i\right\|^2 \quad\text{subject to each class's weights sum to 1} \qquad (3.148\text{--}3.151)$$

4. RCH:資料不可分時,把兩塊凸包縮小

普通 convex hull 可能相交,最近距離是 0;RCH 對每個係數加上上限 $\mu$:

$$R(X,\mu)=\left\{\boldsymbol{y}:\boldsymbol{y}=\sum_i\lambda_i\boldsymbol{x}_i, \ \sum_i\lambda_i=1,\ 0\leq\lambda_i\leq\mu\right\} \qquad (3.159)$$ $$R(X,1)=\operatorname{conv}(X),\qquad R(X,\mu)\subseteq\operatorname{conv}(X) \qquad (3.160)$$

$\mu$ 越小,每個原始點能分到的權重越少,RCH 越縮;兩個 RCH 若終於分開,就可以取兩個最近點的垂直平分線作分類器。縮放關係是 $\nu=2/(\mu N)$。若兩類各有 $N/2$ 個點,最小可行 $\mu$ 時每個 RCH 會縮到各自類別的 centroid;兩個 centroid 不同才有非平凡方向。

圖3.15 兩類相交時的凸包與縮減凸包(RCH)
圖3.15 兩類相交時的凸包與縮減凸包(RCH)
圖3.16 最近點連線的垂直平分線 = 最優分類器(縮減後)
圖3.16 最近點連線的垂直平分線 = 最優分類器(縮減後)
互動 Demo 7|把凸包「縮到剛好分開」,最近兩點就是答案滑桿:每點往質心縮(RCH);紅線 = 垂直平分線
縮減因子 = 1.00
最近距離 —
狀態 —

虛線 = 原始凸包;實線 = 縮減凸包;兩包剛分開那一刻,中線 ≈ SVM 解。

5. 原文的可行性與工程提醒

  • 若 $\mu<1/N_{\min}$,某一類的係數總和連 1 都湊不出來;因此需要 $\mu\geq1/N_{\min}$。
  • 若兩個 RCH 仍相交,最近距離為 0,可能得到 $\boldsymbol{w}=\boldsymbol{0}$ 的 trivial solution;所以 $\nu$ 不能任意小。
  • 幾何法得到的方向和 KKT 解一致,但不可分時 $w_0$ 的幾何中點公式與 KKT 的 $w_0$ 可能需再校正。
  • RCH 的極點不一定是原始樣本,而是樣本的組合;$\mu$ 越小,參與一個極點的樣本可能越多,因此最近點演算法不只是把 convex-hull 演算法照搬。

6. 原文 Problems、MATLAB 與 computer experiments:把理論落地

原文最後不是只留公式,而是要求實作與比較:

原文任務本套件對應
3.1–3.4:感知機 cost、固定步幅、獎懲式與簡單資料nb2:逐步更新、收斂與不可分 Pocket 思考題
3.5–3.6:Gaussian 資料、感知機與 LMSnb2/nb3:合成資料與決策線比較
3.8–3.10:LS 與多類 MSEnb3:正規方程、偽逆、one-hot 輸出
3.11–3.14:條件平均、ML 與 Gaussian 特例nb4:Logistic/posterior/bias–variance
3.15–3.20:多類 SVM、KKT、凸包與 νnb4/nb5:margin、support vectors、RCH 幾何
MATLAB 3.1–3.3:Perceptron、SSErr、LMS以 NumPy 手寫演算法,另附 sklearn 對照

課本 computer experiments 使用固定亂數種子,並比較類別平均差距 $5$、$2$、$1$ 的資料;這正好展示類別越靠近,線性方法的錯誤與模型差異越值得觀察。

你應該能回答

① ν 同時控制哪兩個量? ② 為什麼 convex hull 最近點會產生最大 margin? ③ RCH 的 $\mu$ 為何能處理原本相交的類別? ④ 大型 SVM 為何需要 SMO/decomposition?

GO

職涯延伸路線圖

Career Roadmap
2026-08-22T17:43:52.658010 image/svg+xml Matplotlib v3.10.6, https://matplotlib.org/

把這一章端上你的作品集

做一本 「三種線性分類器同場競技」的迷你專案(nb6):同一份「可分成/攪在一起」的合成資料,用手寫感知機、正規方程(LS)、SVM 各訓練一次,畫出三條線、印出準確率——這是「我能把想法變成可量測分類器」的最短證明,面試拿得出手。

接著往上游走:Ch4 多層感知機(把直線疊成曲線)→ Ch5 深度學習(kernel → CNN/RNN),直攻影像與音訊 AI。線性分類器不是天花板,是最穩的出發樓梯。