這一章解鎖 Ch1 四大問題中的「分類器設計」:在「知道機率分布」的前提下,寫出理論最優的分類規則;再教你分布未知時如何從資料估出來。頁內含 4 個可動手 Demo(閾值誤差、LDA/QDA 決策面、kNN、貝氏網路訊息傳遞)與 2 張 SVG(知識地圖、全書定位)。
你已學過 Ch1(全景座標)與 Ch7(特徵)。本章回答「拿到特徵之後,分類器怎麼設計才最優?」——答案是貝氏決策。之後 Ch3(線性)、Ch4(神經網路)都是它的近似或變體,所以本章的直覺值得一次到位。
先看地圖再往下讀:貝氏決策 → 判別函數 → 常態分類(重點)→ 密度估計 → kNN/貝氏網路。完整版見 00-知識地圖.md。
| 站 | 主題 | 章節 | 難度 | 動手 |
|---|---|---|---|---|
| 1 | 貝氏決策:後驗x誤差x風險 | 2.1–2.2 | ★★ | nb1 + Demo 1 |
| 2 | 判別函數與高斯(QDA/LDA) | 2.3–2.4 | ★★★ | nb2 + Demo 2 |
| 3 | ML/MAP/貝氏推論 | 2.5.1–2.5.3 | ★★★ | nb3 |
| 4 | 混合模型+EM | 2.5.5 | ★★★ | nb3 附錄 |
| 5 | Parzen/kNN 密度/樸素貝氏 | 2.5.6–2.5.7 | ★★ | nb3+nb4 |
| 6 | kNN 規則+貝氏網路+專案 | 2.6–2.7 | ★★ | nb4 + Demo 3/4 |
兩類問題:先驗 $P(\omega_i)$(哪類常見)與似然 $p(\mathbf{x}|\omega_i)$(這類長怎樣)已知時:
錯誤機率:$P_e=\int_{R_2}P(\omega_1|\mathbf{x})p(\mathbf{x})d\mathbf{x}+\int_{R_1}P(\omega_2|\mathbf{x})p(\mathbf{x})d\mathbf{x}$(2.9)。課本證明:
積分項要在 $R_1$ 上最大化 → $R_1$ 取「$P(\omega_1|\mathbf{x})>P(\omega_2|\mathbf{x})$」的區域時 $P_e$ 最小。任何偏離(閾值移動)都會讓陰影面積變大。
錯的後果不同(惡性→良性 vs 良性→惡性):用損失矩陣 $\mathbf{L}=[\lambda_{ki}]$ 加權,最小化平均風險:
方差 1/2、等先驗:最小錯誤閾值 $x_0{=}1/2$;損失 $\lambda_{12}=0.5,\ \lambda_{21}=1$ 時,解 $e^{-x^2}=2e^{-(x-1)^2}$ 得 $x_0{=}(1-\ln2)/2\approx0.153$(誤判 $\omega_2$ 更嚴重 → 閾值左移)。nb1 以數值積分實測。
想猜新數據屬於哪一類,你就當自己在下注。先驗=你原本對各類「勝率」的估計;似然=眼前證據的力道;後驗=看完證據、更新之後的新勝率。貝氏定理 = 莊家最誠實的賠率表:證據夠力,勝率才動。圖裡的陰影面積,就是你「亂下注」會賠的錢。
想猜新數據屬於哪一類,就當自己在跟莊家下注。先驗=你原本對各類勝率的估計;似然=眼前證據的力道;後驗=看完證據更新後的新勝率。貝氏定理=莊家最誠實的賠率表:證據夠力,勝率才動。陰影面積就是你亂下注會賠的錢。
每個類別在高斯眼裡是一顆捏好的蛋:對角線=這顆蛋在長/短軸的長度(變異數);斜角=蛋歪不歪(特徵相關)。$\Sigma$ 相同→兩顆蛋一樣大,切線走直線(LDA);不同→一顆大、一顆小,切線自動彎(QDA)。馬氏距離=在「蛋的座標系」裡量你離蛋黃多遠。
移動閾值觀察:x0=0.5 時兩塊誤差面積之和最小;偏離任何方向 Pe 都會上升——這就是「貝氏最優」的圖形證明。
後驗機率和 log 判別函數,是同一座山的兩種畫法(等高線 vs 3D):單調變換不改山頂位置,只讓它更好算、更好畫。所以放心 log、log、log,答案永遠不變。
與其直接比機率,不如用判別函數 $g_i(\mathbf{x})\equiv f(P(\omega_i|\mathbf{x}))$($f$ 單調遞增,如 $\ln$):
重點:pdf 複雜難估時,可以跳過機率直接以別的成本畫決策面(Ch3/4 的路線)——那是對貝氏的「次優但實用」替代。
$\boldsymbol{\Sigma}$=共變異數矩陣:對角線=各特徵變異數,非對角=特徵間相關。它的特徵向量/特徵值決定等值橢圓的方向與長短軸。
對數判別函數:$g_i(\mathbf{x})=-\frac12(\mathbf{x}-\boldsymbol{\mu}_i)^T\boldsymbol{\Sigma}_i^{-1}(\mathbf{x}-\boldsymbol{\mu}_i)+\ln P(\omega_i)+c_i$(2.34)
| 情形 | 判別函數 | 決策面 | 名稱 |
|---|---|---|---|
| $\boldsymbol{\Sigma}_i$ 各類不同 | $\mathbf{x}$ 的二次型 | 二次曲面(橢圓/雙曲線…) | QDA |
| $\boldsymbol{\Sigma}_i=\boldsymbol{\Sigma}$ 相同 | 線性 $g_i=\mathbf{w}_i^T\mathbf{x}+w_{i0}$ | 超平面 | LDA |
| $\boldsymbol{\Sigma}=\sigma^2\mathbf{I}$ | $\frac1{\sigma^2}\boldsymbol{\mu}_i^T\mathbf{x}+w_{i0}$ | 正交於 $\boldsymbol{\mu}_i-\boldsymbol{\mu}_j$ 的平面 | 最小歐氏距離 |
馬氏 = 先白化再量歐氏:$\boldsymbol{\Sigma}=\boldsymbol{\Phi}\boldsymbol{\Lambda}\boldsymbol{\Phi}^T$(2.50),$\mathbf{x}'=\boldsymbol{\Phi}^T\mathbf{x}$ 下等距離曲線是標準橢圓(2.53)。Example 2.2:$d_m^2(\boldsymbol{\mu}_1,\mathbf{x})=2.952$ vs $d_m^2(\boldsymbol{\mu}_2,\mathbf{x})=3.672$ → 判給 $\omega_1$(歐氏卻較近 $\omega_2$)。
每個類別在高斯的眼裡,是一顆捏好的蛋:對角線=這顆蛋在長/短軸各多長(變異數);斜角=蛋是否歪著放(特徵相關)。$\Sigma$ 相同時,兩顆蛋一樣大 → 切的線是直的(LDA);$\Sigma$ 不同 → 一顆蛋大、一顆小 → 切線自動彎(QDA)。馬氏距離,就是「在蛋的座標系裡量你離蛋黃多遠」。
前面假設分布已知;這裡處理「不知道分布」時怎麼從資料估。先分處境,再選工具。
把「pdf 未知」拆兩種:知道型態、不知參數(例:我確定是高斯,但 $\mu$、$\sigma^2$ 未知)→ 用 4.1 的三種參數法;連型態也未知 → 用 4.4 的無母數法。先判斷再選工具,是這 Part 最重要的習慣。
一句話三分法:「ML 信資料、MAP 信先驗、貝氏全都要」——三者大樣本下收斂到同一答案,小樣本時分道揚鑣。
| 方法 | 目標 | 用到什麼 | 公式(高斯例) | 特性 |
|---|---|---|---|---|
| ML(最大似然) | 讓資料「最可能」:$\arg\max\prod_k p(\mathbf{x}_k;\theta)$ | 只有資料 | $\hat\mu=\bar x$;$\hat\sigma^2_{ML}=\frac1N\sum(x_k-\mu)^2$ | 漸近無偏/一致/有效(CR 下界);無限樣本才完美 |
| MAP(最大後驗) | $\arg\max p(\theta)p(X|\theta)$ | 資料+先驗 | $\hat\mu_{MAP}=\frac{\sigma^2\mu_0+\sigma_m^2\sum x_k}{\sigma^2+N\sigma_m^2}$ | 先驗寬或 N→∞ → 退化為 ML;小樣本較穩 |
| 貝氏推論 | 算整個後驗 $p(\theta|X)$ → 積分出預測 | 資料+先驗+積分 | $\mu_N=\frac{N\sigma_0^2\bar x+\sigma^2\mu_0}{N\sigma_0^2+\sigma^2}$,$\sigma_N^2=\frac{\sigma^2\sigma_0^2}{N\sigma_0^2+\sigma^2}$ | 最誠實(方差含不確定性 $\sigma_N^2$);一般需 MCMC |
一句話:只知道約束時,選「最隨機」的那個分布——不多做沒根據的假設(Jaynes 原則)。熵 $H=-\int p\ln p\,dx$ 是「隨機度」的量尺,越大越隨機。
直覺:只告訴你「範圍」,其它一律不預設 → 所有點等可能=均勻。你若再多告訴它「均值與方差」→ 答案變成高斯(Problem 2.30)——這不是巧合,而是「資訊量最少」的自然選擇。
輕輕破題:資料好像「一堆高斯疊在一起」,但我不知道每個點來自哪顆高斯(標籤隱藏)。
EM 用大白話講:
一句話:不知道型態 → 讓「樣本自己說」——在每個樣本上放一顆小高斯再平均,就是平滑版的直方圖。
h 怎選(口訣:h 是人生):$h$ 太小=只信每個樣本本身 → 結果像刺蝟(高方差);$h$ 太大=把一切抹平 → 太糊(高偏差)。課本規則:$h_N\to0$ 且 $Nh_N\to\infty$ 才漸近無偏且一致。
一句話:假設特徵互相獨立 → 高維 pdf 拆成 l 個一維 pdf:$p(\mathbf{x}|\omega_i)=\prod_j p(x_j|\omega_i)$,需要資料量從 $N^l$ 降到 $lN$(≠指數級!)。
一句話:不需要模型、不需要訓練(只把樣本存著)——看不認識的點,就看「離它最近的那 k 個訓練點大多屬於誰」。
為什麼「最簡單卻驚人」:樣本夠多時空間會變「密」,k 個鄰居都黏在你身邊 → 你附近的多數派=真實多數派。所以 1NN 漸近最多錯到貝氏的 2 倍,3NN 幾乎追平($P_B=1\% \Rightarrow 1.03\%$)。
樸素貝氏假設全部配料互不相干(太天真);貝氏網路則說:「每樣配料只受它『老爸』影響」——珍珠只聽甜度爸、甜度爸只聽糖漿爸。這樣一份本來要背 63 個數字的配方表,折成 13 個就夠;而且誰影響誰,畫成家譜(DAG)一眼看懂。
一句話:樸素貝氏假設「全部獨立」太強;貝氏網路用條件獨立(每個變數只依賴幾個「父」變數)折衷——只壓該壓的維。
Example 2.11 逐步(配合 Demo 4):鏈式 $x\to y\to z\to w$,給定 $P(x_1)=0.6$ 與三張條件表:
nb4 任務 3 用 5 行 Python 把這串數字算給你看——訊息不是神秘巫術,就是「貝氏定理逐節點接力」。
NumPy+高斯抽樣+貝氏定理複習
重現 Example 2.1:閾值、誤差面積、損失矩陣對閾值的影響
LDA/QDA 決策面、馬氏 vs 歐氏(重現 Example 2.2)
ML/MAP 參數估計與偏誤實驗、Parzen h 實驗、附錄:手刻 EM
kNN+Voronoi、樸素貝氏(二元特徵)、貝氏網路訊息傳遞實作
Ch1 入口 → ★Ch2 你在此 → Ch3–4 分類器 → Ch5 特徵選擇 → Ch10 評估