線性判別分析(Linear Discriminant Analysis)

cute_Learner發表於2022-02-04

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\}$

 

相關文章