高斯判別分析-2
Gaussian Discriminant Analysis (GDA) - 2
這裡我們補充一下 GDA 裡的數學推導部分。
假設我們有一組已標記的資料 $(\mathbf{x}_i, y_i)$,其中:
- $\mathbf{x}_i \in \mathbb{R}^d$:第 $i$ 筆資料的 $d$-維特徵向量(例如身高和體重)。
- $y_i \in {0, 1}$:標示資料的類別(例如 0 表女生、1 表男生)。
我們的目標是:
給定一筆新的資料 $\mathbf{x}$,判斷它屬於哪一個類別比較合理。
在 GDA 中,這個判斷是透過貝式定理(Bayes’ theorem)來完成的,因此我們先回顧一下貝式定理的形式。
對於一筆特徵向量 $\mathbf{x}$,它屬於類別 $y$ 的後驗概率為: $$ P(y = 1 \mid \mathbf{x}) = \frac{P(\mathbf{x} \mid y = 1) P(y = 1)}{P(\mathbf{x})}. $$ 這個公式告訴我們,要計算「在看到資料 $\mathbf{x}$ 之後,它是男生的可能性有多大」,我們需要三個量:
- $P(\mathbf{x} \mid y)$:在已知類別的情況下,資料長成 $\mathbf{x}$ 的機率(這是 GDA 的核心假設),
- $P(y)$:類別的先驗機率(例如男生、女生各自的比例),
- $P(\mathbf{x})$:資料 $\mathbf{x}$ 出現的總機率(作為正規化常數)。
接下來,我們會一步步說明 GDA 是如何對這些機率做建模,以及最後如何得到分類的決策規則。
1. $P(\mathbf{x} \mid y)$
在 GDA 裡,我們假設每個類別的特徵向量都服從高斯分布: $$ \mathbf{x} \mid y = k\sim \mathcal{N}(\mu_k, \Sigma_k), $$ 也就是說,對於每個類別,我們認為資料大致「長這個樣子」,由平均值 $\mu_k$ 描述中心位置,由共變異數矩陣 $\Sigma_k$ 描述資料的擴散與形狀。
因此,計算 $P(\mathbf{x} \mid y)$ 就變成估計這兩個參數:
- 將所有屬於類別 $y=k$ 的資料收集起來。
- 計算它們的平均值 $\mu_k$ 和共變異數矩陣 $\Sigma_k$。
- 代入高斯分布公式,就得到了 $P(\mathbf{x} \mid y)$。
1.1 共用共變異數矩陣(LDA 特例)
在 線性判別分析(LDA) 中,我們做了一個簡化假設:假設所有類別共享同一個共變異數矩陣 $$ \Sigma_k=\Sigma, \quad \forall k. $$ 這個假設帶來兩個好處:
- 需要估計的參數變少,更穩定,尤其是資料量不大時。
- 決策邊界變成線性的(直線或超平面),計算上更簡單。
也就是說,LDA 是 GDA 的一個特例,它在假設更嚴格的情況下,把決策邊界從二次曲線簡化成線性曲線。
2. Maximum Likelihood Estimation (MLE)
2.1 Likelihood function
假設我們有二分類資料 $(\mathbf{x}_i, y_i)$,$i=1,\dots,n$,$y_i \in \{0,1\}$。
- 類別先驗: $$ P(y=1) = \phi, \quad P(y=0)=1-\phi. $$
- 條件分布: $$ \mathbf{x} \mid y = k\sim \mathcal{N}(\mu_k, \Sigma_k). $$
則整體的 likelihood function 為 $$ L(\phi, \mu_k, \Sigma_k) = \prod^n_{i=1} P(\mathbf{x}_i, y_i)= \prod^n_{i=1} P(\mathbf{x}_i\mid y_i)P(y_i). $$ 展開後得到 $$ L = \prod_{i, y=1}\phi \mathcal{N}(\mathbf{x}_i \mid \mu_1, \Sigma_1)\prod_{i, y=0}(1-\phi) \mathcal{N}(\mathbf{x}_i \mid \mu_0, \Sigma_0). $$
2.2 Log-Likelihood
取 $\log$ 之後得到 log-likelihood: $$ \ell(\phi, \mu_k, \Sigma_k) = \sum_{i, y=1}\log\phi+\log\mathcal{N}(\mathbf{x}_i \mid \mu_1, \Sigma_1)+\sum_{i, y=0}\log(1-\phi)+\log\mathcal{N}(\mathbf{x}_i \mid \mu_0, \Sigma_0). $$
2.3 Estimator
- 將 log-likelihood 對 $\phi$ 微分求極值後就可以得到 $$ \phi = \frac{\text{類別 1 的樣本數}}{\text{總樣本數}}. $$
- 將 log-likelihood 對 $\mu_k$ 求導並設為 $0$,得到: $$ \mu_k= \frac{1}{n_k}\sum_{{i, y=k}}\mathbf{x}_i, $$ 其中 $n_k$ 是類別 $k$ 的樣本數。因此 $\mu_k$ 就是類別 $k$ 的平均值。
- 將 log-likelihood 對 $\Sigma_k$ 求導並設為 $0$,得到: $$ \Sigma_k = \frac{1}{n_k}\sum_{i, y=k}(\mathbf{x}_i - \mu_k)(\mathbf{x}_i - \mu_k)^T. $$ 因此 $\Sigma_k$ 就是類別 $k$ 的共變異數矩陣。
- 在 LDA 這個特殊情況時,我們假設 $\Sigma_k=\Sigma$,一樣將 log-likelihood 對 $\Sigma$ 求導並設為 $0$,得到: $$ \Sigma = \frac{n_0}{n} \Sigma_0 + \frac{n_1}{n} \Sigma_1. $$ 也就是說,在這情況下共變異數矩陣是加權平均,按每個類別的樣本數加權。
3 優化與預測
最後總結一下,對於給定的分類資料,我們的訓練與預測流程如下:
- 訓練:通過最大似然估計(Maximum Likelihood Estimation, MLE)計算模型參數 $$ (\phi, \mu_k, \Sigma_k). $$
- 預測分類:對於新的資料點 $\mathbf{x}$,若 $$ P(y = 1 \mid \mathbf{x}) > P(y = 0 \mid \mathbf{x}), $$ 則預測為 $y = 1$;反之為 $y = 0$。
備註: 在計算後驗機率 $P(y = k \mid \mathbf{x})$ 時,公式裡會有分母 $P(\mathbf{x})$,它表示「不管它屬於哪個類別,$\mathbf{x}$ 出現的總機率」。不過在實務上,我們不需要特別算它,因為在比較分類結果時,分母對所有類別都是一樣的,所以只要比較分子就可以直接做分類。
4. 決策邊界
4.1 LDA 決策邊界
假設二分類資料 $y \in \{0,1\}$,條件分布為 $$ \mathbf{x} \mid y=k \sim \mathcal{N}(\mu_k, \Sigma), \quad k=0,1, $$ 其中所有類別共享同一個共變異數矩陣 $\Sigma$。
LDA 的決策規則很直觀:如果 $$ P(y=1 \mid \mathbf{x}) > P(y=0 \mid \mathbf{x}), $$ 則預測 $y=1$。這決策規則也可以等價改寫成以下兩種形式: $$ \frac{P(y=1 \mid \mathbf{x})}{P(y=0 \mid \mathbf{x})} > 1, \quad \log \frac{P(y=1 \mid \mathbf{x})}{P(y=0 \mid \mathbf{x})} > 0. $$
具體而言,對數比(log-odds)可以展開為:
$$
\begin{align}
\log \frac{P(y=1 \mid \mathbf{x})}{P(y=0 \mid \mathbf{x})} =& \mathbf{x}^T \underbrace{\Sigma^{-1} (\mu_1 - \mu_0)}_{\mathbf{x}^T \mathbf{w}} \\
&-\frac{1}{2} (\mu_1^T \Sigma^{-1} \mu_1 - \mu_0^T \Sigma^{-1} \mu_0) + \log \frac{\phi}{1-\phi}.
\end{align}
$$
因此我們令
$$
\mathbf{w} = \Sigma^{-1} (\mu_1 - \mu_0), \quad
b = - \frac{1}{2} (\mu_1^T \Sigma^{-1} \mu_1 - \mu_0^T \Sigma^{-1} \mu_0) + \log \frac{\phi}{1-\phi},
$$
則決策邊界可寫成簡單的線性形式:
$$
\mathbf{w}^T \mathbf{x} + b = 0
$$
這條超平面(在二維情況下就是直線)就是 LDA 的決策邊界。
4.2 GDA 決策邊界
若我們假設每個類別有自己的共變異數矩陣,則對數比變成:
$$
\begin{align}
\log \frac{P(y=1 \mid \mathbf{x})}{P(y=0 \mid \mathbf{x})} =&-\frac{1}{2} \Big[ (\mathbf{x}-\mu_1)^T \Sigma_1^{-1} (\mathbf{x}-\mu_1) - (\mathbf{x}-\mu_0)^T \Sigma_0^{-1} (\mathbf{x}-\mu_0) \Big] \\
& - \frac{1}{2} \log \frac{|\Sigma_1|}{|\Sigma_0|} + \log \frac{\phi}{1-\phi}.
\end{align}
$$
因為共變異數矩陣不同,因此二次項不會抵銷,決策邊界是一條二次曲線(椭圓、拋物線或雙曲線),又稱為 Quadratic Discriminant Analysis (QDA)。