1 前言
在學 LDA 之前,需要將其與自然語言主題模型進行區別開來。在 NLP 中, LDA 是隱含狄利克雷分佈(Latent Dirichlet Allocation,簡稱LDA),是一種處理文件的主題模型。本文只討論線性判別分析(LDA)。
2 LDA思想
即:資料在低維度上投影,投影后希望每一種類別資料的投影點儘可能的接近,而不同類別的資料的類別中心之間的距離儘可能的大。
回顧一下主成分分析(PCA):《機器學習——主成分分析(PCA)》
3 正文
3.1 瑞利商(Rayleigh quotient)
瑞利商指 $ R(A, x)$ :
$R(A, x)=\frac{x^{H} A x}{x^{H} x} \quad \quad \quad (1)$
其中 $x$ 為非零向量, $A$ 為 $n \times n$ 的 $Hermitan$ 矩陣(如果矩陣 $\mathrm{A}$ 是實矩陣,且滿足 $A^{T}=A$ 的矩陣即為Hermitan矩陣) 。
瑞利商 $R(A, x) $ 的重要性質:
- 它的最大值等於矩陣 $A$ 最大的特徵值,而最小值等於矩陣 $A$ 的最小的特徵值,也就是滿足
$\lambda_{\min } \leq \frac{x^{H} A x}{x^{H} x} \leq \lambda_{\max } \quad \quad \quad (2)$
當向量 $x$ 是標準正交基時,即滿足 $x^{H} x=1$ 時,瑞利商退化為:
$R(A, x)=x^{H} A x \quad \quad \quad (3)$
3.2 廣義瑞利商(genralized Rayleigh quotient)
廣義瑞利商是指這樣的函式 $R(A, B, x)$ :
$R(A, B, x)=\frac{x^{H} A x}{x^{H} B x} \quad \quad \quad (4)$
其中 $x$ 為非零向量,而 $A, B$ 為 $n \times n$ 的 $Hermitan$ 矩陣。 $B$ 為正定矩陣。
思考:廣義瑞利商最大值和最小值是什麼呢?其形式是不是像 Eq.2 那種形式?
Solution:
通過將其標準化就可以轉化為瑞利商的形式。
令 $x=B^{-1 / 2} x^{\prime}$ , 則分母轉化為:
$x^{H} B x=x^{\prime H}(B^{-1 / 2})^{H} B B^{-1 / 2} x^{\prime}=x^{\prime H} B^{-1 / 2} B B^{-1 / 2} x^{\prime}=x^{\prime H} x^{\prime}\quad \quad \quad (5)$
分子則為:
$x^{H} A x=x^{\prime H} B^{-1 / 2} A B^{-1 / 2} x^{\prime}\quad \quad \quad (6)$
此時廣義瑞利商 $R(A, B, x)$ 轉化為 $R\left(A, B, x^{\prime}\right)$ :
${\large R\left(A, B, x^{\prime}\right)=\frac{x^{\prime H} B^{-1 / 2} A B^{-1 / 2} x^{\prime}}{x^{\prime H} x^{\prime}}} \quad \quad \quad (7)$
3.3 二類LDA
資料集 $D=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \ldots,\left(x_{m}, y_{m}\right)\right\} $,樣本 $x_{i} \in \mathbb{R}^n $ ,$ y_{i} \in\{0,1\} $。
如下圖所示,有紅藍兩種顏色標註的兩個類。對於二分類問題來說,是要找一條直線,使得實列 $x_i$ 在直線上的投影儘可能的滿足LDA基本思想。
上圖在 $m$、$n$ 軸下分別有兩條曲線:藍色曲線 和 紅色曲線(代表著藍色點和紅色點分別在 $m$、$n$ 軸投影的密度分佈函式)。
可以發現樣本 $x_i$ 在 $n$ 軸投影兩個類的類間距較大(密度中心距離遠),而在 $m$ 軸下的投影,類間距很小,幾乎快要重合。同時也可發現,在 $n$ 軸上兩個類的投影密度也較 $m$ 軸更大(分佈的峰值更大)。顯然在 $n$ 軸上滿足了最大化類間方差,和最小化類內方差。
類內分佈緊密例子:
從上圖,兩個類在綠色線上的投影如右圖所示,顯然此時的投影是的類內的方差最小化,即類內分佈更緊密。
那麼得出我們的目標:找一個向量使得滿足:類內更緊緻,類間更遠。
由於是兩類資料,因此只需要將資料投影到一條直線上即可。這裡先定義類中心:
$\mu_{j}=\frac{1}{N_{j}} \sum\limits _{x \in X_{j}} x \quad\quad(j=0,1)\quad \quad \quad (8)$
其中
-
- $N_{j}(j=0,1) $ 為第 $j$ 類樣本的個數;
- $\mu_{j}(j=0,1)$ 為第 $ j $ 類樣本的均值向量;
- $X_{j}\;(j=0,1)$ 代表 $X$ 軸下第 $j$ 類樣本集合;
假設投影直線是向量 $w$ ,對任意一個樣本 $x_{i}$ , 它在直線 $w$ 的投影為 $ w^{T} x_{i}$;那麼對於兩個類別的中心點 $\mu_{0}$, $\mu_{1} $ ,在直線 $w$ 的投影為 $w^{T} \mu_{0}$ 和 $w^{T} \mu_{1} $ 。
LDA 需要讓不同類別資料的類中心之間的距離儘可能的大(條件1:類間方差最大化),即要最大化
$\left\|w^{T} \mu_{0}-w^{T} \mu_{1}\right\|_{2}^{2} =w^T\left(\mu_{0}-\mu_{1}\right)\left(\mu_{0}-\mu_{1}\right)^{T}w \quad \quad \quad (9)$
但是不能只滿足這一個條件,如下圖所示,兩個類在 $q$ 軸上達到了類間方差最大化的條件,但在 $p$ 軸上的投影兩個類重合部分太多,無法進行有效的區分。(可以理解為在 $p$ 軸方向類分佈範圍大,發散)
所以,同時希望同一種類別資料的投影點儘可能的接近(條件2:類內方差最小化),
${\large \tilde{s}_{j}^{2}=\sum\limits _{y \in Y_{j}}\left(y-\tilde{\mu}_{j}\right)^{2}=\sum\limits_{x \in X_{j}}\left(w^{T} x-w^{T} \mu_{j}\right)^{2}=\sum\limits_{x \in X_{j}} w^{T}\left(x-\mu_{j}\right)\left(x-\mu_{j}\right)^{T} w} \quad \quad \quad (10)$
其中:
-
- $\Sigma_{j}=\sum\limits _{x \in X_{j}}\left(x-\mu_{j}\right)\left(x-\mu_{j}\right)^{T} \quad\quad(j=0,1)$
故:Eq.10 等價於最小化 (2類樣本)
$ w^{T} \Sigma_{0} w+w^{T} \Sigma_{1} w \quad \quad \quad (11)$
綜上所述,優化目標為:
${\large \underbrace{\arg \max }_{w}\; \; \; J(w)=\frac{\left\|w^{T} \mu_{0}-w^{T} \mu_{1}\right\|_{2}^{2}}{w^{T} \Sigma_{0} w+w^{T} \Sigma_{1} w}=\frac{w^{T}\left(\mu_{0}-\mu_{1}\right)\left(\mu_{0}-\mu_{1}\right)^{T} w}{w^{T}\left(\Sigma_{0}+\Sigma_{1}\right) w}} \quad \quad \quad (12)$
通常定義類內散度矩陣 $S_{w}$ 為:
$S_{w}=\Sigma_{0}+\Sigma_{1}=\sum\limits _{x \in X_{0}}\left(x-\mu_{0}\right)\left(x-\mu_{0}\right)^{T}+\sum\limits_{x \in X_{1}}\left(x-\mu_{1}\right)\left(x-\mu_{1}\right)^{T}\quad \quad \quad (13)$
類間散度矩陣 $S_{b}$ :
$S_{b}=\left(\mu_{0}-\mu_{1}\right)\left(\mu_{0}-\mu_{1}\right)^{T}\quad \quad \quad (14)$
那麼優化目標重寫為:
$\underbrace{\arg \max }_{w}\;\; J(w)={\large \frac{w^{T} S_{b} w}{w^{T} S_{w} w}} \quad \quad \quad (15)$
可以發現 Eq.15 就是上面將的廣義瑞利商。利用廣義瑞利商的性質可以知道 $J\left(w^{\prime}\right)$ 最大值為矩陣 $S_{w}^{-\frac{1}{2}} S_{b} S_{w}^{-\frac{1}{2}} $ 的最大特徵值,而對應的 $w^{\prime} $ 為 $S_{w}^{-\frac{1}{2}} S_{b} S_{w}^{-\frac{1}{2}}$ 最大特徵值對應的特徵向量。
$S_{w}^{-1} S_{b}$ 的特徵值和 $S_{w}^{-\frac{1}{2}} S_{b} S_{w}^{-\frac{1}{2}}$ 的特徵值相同, $S_{w}^{-1} S_{b} $ 的特徵向量 $w$ 和 $S_{w}^{-\frac{1}{2}} S_{b} S_{w}^{-\frac{1}{2}}$ 的特徵向量 $w^{\prime}$ 滿足 $w=S_{w}^{-\frac{1}{2}} w^{\prime} $。
注意到二類時, $S_{b} w$ 的方向恆平行於 $ \mu_{0}-\mu_{1}$ ,不妨令 $S_{b} w=\lambda\left(\mu_{0}-\mu_{1}\right) $,將其代入: $\left(S_{w}^{-1} S_{b}\right) w=\lambda w$ ,可以得到 $w=S_{w}^{-1}\left(\mu_{0}-\mu_{1}\right) $ ,即只要求出原始二類樣本的均值和方差就可以確定最佳的投影方向 $w $ 了。
3.4 多類LDA原理
資料集 $D=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \ldots,\left(\left(x_{m}, y_{m}\right)\right)\right\} $ ,其中任意樣本樣本 $x_{i} \in \mathbb{R}^n $ , $y_{i} \in\left\{C_{1}, C_{2}, \ldots, C_{k}\right\}$。
我們定義 $N_{j}(j=1,2 \ldots k) $ 為第 $j$ 類樣本的個數, $X_{j}(j=1,2 \ldots k)$ 為第 $j$ 類樣本的集合,而 $\mu_{j}(j=1,2 \ldots k) $ 為第 $j$ 類樣本的均值向量,定義 $ \Sigma_{j}(j=1,2 \ldots k)$ 為第 $j$ 類樣本的散度值。
由於是多類向低維投影,則此時投影到的低維空間就不是一條直線,而是一個超平面。假設投影到的低維空間的維度為 $d$ ,對應的基向量為 $\left(w_{1}, w_{2}, \ldots w_{d}\right) $,基向量組成的矩陣為 $W$ ,它是一個 $n \times d$ 的矩陣。
此時優化目標應該可以變成為:
$\frac{W^{T} S_{b} W}{W^{T} S_{w} W}\quad \quad \quad (16)$
其中
-
- $S_{b}=\sum\limits _{j=1}^{k} N_{j}\left(\mu_{j}-\mu\right)\left(\mu_{j}-\mu\right)^{T}$, $\mu$ 為所有樣本均值向量。
- $S_{w}=\sum\limits _{j=1}^{k} S_{w j}=\sum\limits_{j=1}^{k} \sum\limits_{x \in X_{j}}\left(x-\mu_{j}\right)\left(x-\mu_{j}\right)^{T}$
但是有一個問題,就是 $W^{T} S_{b} W$ 和 $W^{T} S_{w} W$ 都是矩陣,不是標量,無法作為一個標量函式來優化! 常見的一個LDA多類優化目標函式定義為:
$\underbrace{\arg \max }_{W} J(W)=\frac{\prod\limits _{\operatorname{diag}} W^{T} S_{b} W}{\prod\limits_{d i a g} W^{T} S_{w} W}\quad \quad \quad (17)$
其中
-
- $\prod\limits _{diag } A$ 為 $A$ 的主對角線元素的乘積,$ W$ 為 $n \times d$ 的矩陣。
$J(W)$ 的優化過程可以轉化為:
${\large J(W)=\frac{\prod_{i=1}^{d} w_{i}^{T} S_{b} w_{i}}{\prod_{i=1}^{d} w_{i}^{T} S_{w} w_{i}}=\prod_{i=1}^{d} \frac{w_{i}^{T} S_{b} w_{i}}{w_{i}^{T} S_{w} w_{i}}} \quad \quad \quad (18)$
顯然最右邊就是廣義瑞利商。最大值是矩陣 $S_{w}^{-1} S_{b} $ 的最大特徵值,最大的 $\mathrm{d} $ 個值的乘積就是矩陣 $S_{w}^{-1} S_{b}$ 的最大的 $\mathrm{d} $ 個特徵值的乘積,此時對應的矩陣 $W $ 為這最大的 $\mathrm{d}$ 個特徵值對應的特徵向量張成的矩陣。
由於 $W$ 是一個利用了樣本的類別得到的投影矩陣,因此它的降維到的維度 $\mathrm{d}$ 最大值為 $\mathrm{k}-1 $ 。為什麼最大維度不是類別數 $\mathrm{k}$ 呢? 因為 $S_{b}$ 中每個 $\mu_{j}-\mu$ 的秩為 $1$ ,因此協方差矩陣相加後最大的秩為 $\mathrm{k}$ (矩陣的秩小於等於各個相加矩陣的秩的和),但是由於如果我們知道前 $\mathrm{k}-1$ 個 $\mu_{j}$ 後,最後一個 $\mu_{k}$ 可以由前 $\mathrm{k}-1$ 個 $\mu_{j} $ 線性 表示,因此 $S_{b}$ 的秩最大為 $\mathrm{k}-1$ ,即特徵向量最多有 $\mathrm{k}-1$ 個。
4 LDA演算法流程
輸入: 資料集 $D=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \ldots,\left(\left(x_{m}, y_{m}\right)\right)\right\}$ , 其中任意樣本 $x_{i} 為 \mathrm{n}$ 維向量,$ y_{i} \in\left\{C_{1}, C_{2}, \ldots, C_{k}\right\} $, 降維到的維度 $\mathrm{d} $。
輸出: 降維後的樣本集 $D^{\prime} $
1) 計算類內散度矩陣 $S_{w} $
2) 計算類間散度矩陣 $S_{b} $
3) 計算矩陣 $S_{w}^{-1} S_{b} $
4) 計算 $S_{w}^{-1} S_{b}$ 的最大的 $\mathrm{d} $ 個特徵值和對應的 $\mathrm{d}$ 個特徵向量 $\left(w_{1}, w_{2}, \ldots w_{d}\right) $,得到投影矩陣 $\mathrm{W} W $
5) 對樣本集中的每一個樣本特徵 $x_{i} $,轉化為新的樣本 $z_{i}=W^{T} x_{i} $
6) 得到輸出樣本集 $D^{\prime}=\left\{\left(z_{1}, y_{1}\right),\left(z_{2}, y_{2}\right), \ldots,\left(\left(z_{m}, y_{m}\right)\right)\right\}$