【機器學習降維】Fisher判別分析LDA

線性判別分析(Linear Discriminant Analysis,LDA)是一種有監督學習算法,同時經常被用來對數據進行降維。

線性判別分析

  Fisher的基本思想是:類內小,類間大。也就是說,我們要讓屬於同一類的樣本映射到某一條直線上後的距離越小越好,而不同類樣本之間的距離要越大越好。所以我們需要訓練這樣一條直線,把p維的樣本數據都投影到一個1維的方向,使得不同的樣本在降維後的一維空間內具有“類內小,類間大”的結果,從而很好地將兩類數據分開。
  在預測時,將待預測數據投影到上面學習到的直線上,根據投影點的位置來判斷所屬於的類別。

  假設我們找到了最好的投影方向ww,如果不對其做限定的話,這樣的w可以有無數條,所以我們限定w=1||w||=1。將樣本點xix_i投影到向量w上,得到新的點ziz_i,有
zi=xicosθ=xiwcosθ=wTxi..........(1) z_i=|x_i|cos\theta=|x_i||w|cos\theta=w^Tx_i..........(1)
  則其總體均值爲
zˉ=1Ni=1NwTxi..........(2) \bar z=\frac{1}{N}\sum_{i=1}^Nw^Tx_i..........(2)
  總體方差爲
Sz=1Ni=1N(wTxizˉ)(wTxizˉ)T..........(3) S_z=\frac{1}{N}\sum_{i=1}^N(w^Tx_i-\bar z)(w^Tx_i-\bar z)^T..........(3)
  假設兩類樣本分別用c1c_1c2c_2表示,則
zˉ1=1N1i=1N1wTxi..........(4)zˉ2=1N2i=1N2wTxi..........(5)S1=1N1i=1N1(wTxizˉ1)(wTxizˉ1)T..........(6)S2=1N2i=1N2(wTxizˉ2)(wTxizˉ2)T..........(7) \bar z_1=\frac{1}{N_1}\sum_{i=1}^{N_1}w^Tx_i..........(4) \\ \bar z_2=\frac{1}{N_2}\sum_{i=1}^{N_2}w^Tx_i..........(5) \\ S_1=\frac{1}{N_1}\sum_{i=1}^{N_1}(w^Tx_i-\bar z_1)(w^Tx_i-\bar z_1)^T..........(6) \\ S_2=\frac{1}{N_2}\sum_{i=1}^{N_2}(w^Tx_i-\bar z_2)(w^Tx_i-\bar z_2)^T..........(7)
  我們可以使兩類樣本的均值差最大來表示“類間大”,兩類樣本的方差和最小來表示“類內小”。因此我們可以將其構造成一個目標函數:
J(w)=(zˉ1zˉ2)2(S1+S2)..........(8) J(w)=\frac{(\bar z_1-\bar z_2)^2}{(S_1+S_2)}..........(8)
  則有
w^=argmaxwJ(w)=argmaxw(zˉ1zˉ2)2(S1+S2)=argmaxw(1N1i=1N1wTxi1N2i=1N2wTxi)2(1N1i=1N1(wTxizˉ1)(wTxizˉ1)T+1N2i=1N2(wTxizˉ2)(wTxizˉ2)T)=argmaxw(wT(1N1i=1N1xi1N2i=1N2xi))21N1i=1N1wT(xixˉc1)(xixˉc1)Tw+1N2i=1N2wT(xixˉc2)(xixˉc2)w=argmaxw(wT(xˉc1xˉc2))2wTSc1w+wTSc2w=argmaxwwT(xˉc1xˉc2)(xˉc1xˉc2)TwwT(Sc1+Sc2)w \begin{aligned} \hat w &=\arg \max_wJ(w) \\ &=\arg \max_w \frac{(\bar z_1-\bar z_2)^2}{(S_1+S_2)} \\ &=\arg \max_w \frac{(\frac{1}{N_1}\sum\limits_{i=1}^{N_1}w^Tx_i-\frac{1}{N_2}\sum\limits_{i=1}^{N_2}w^Tx_i)^2}{(\frac{1}{N_1}\sum\limits_{i=1}^{N_1}(w^Tx_i-\bar z_1)(w^Tx_i-\bar z_1)^T+\frac{1}{N_2}\sum\limits_{i=1}^{N_2}(w^Tx_i-\bar z_2)(w^Tx_i-\bar z_2)^T)} \\ &=\arg \max_w \frac{(w^T(\frac{1}{N_1}\sum\limits_{i=1}^{N_1}x_i-\frac{1}{N_2}\sum\limits_{i=1}^{N_2}x_i))^2}{\frac{1}{N_1}\sum\limits_{i=1}^{N_1}w^T(x_i-\bar x_{c1})(x_i-\bar x_{c1})^Tw+\frac{1}{N_2}\sum\limits_{i=1}^{N_2}w^T(x_i-\bar x_{c2})(x_i-\bar x_{c2})w} \\ &=\arg \max_w \frac{(w^T(\bar x_{c1}-\bar x_{c2}))^2}{w^TS_{c1}w+w^TS_{c2}w} \\ &=\arg \max_w \frac{w^T(\bar x_{c1}-\bar x_{c2})(\bar x_{c1}-\bar x_{c2})^Tw}{w^T(S_{c1}+S_{c2})w} \end{aligned}
  令
Sb=(xˉc1xˉc2)(xˉc1xˉc2)T..........(9)Sw=(Sc1+Sc2)..........(10) S_b=(\bar x_{c1}-\bar x_{c2})(\bar x_{c1}-\bar x_{c2})^T..........(9) \\ S_w=(S_{c1}+S_{c2})..........(10)
  SbS_b稱爲類間散度矩陣,SwS_w稱爲類內散度矩陣,則
J(w)=wTSbwwTSww.........(11) J(w)=\frac{w^TS_bw}{w^TS_ww} .........(11)
  上式爲廣義瑞利熵的形式,利用廣義瑞利商性質J(w)最大值爲矩陣Sb1/2SwSb1/2S_b^{-1/2}S_wS_b^{-1/2}的最大特徵值,而對應的w爲的最大特徵值對應的特徵向量。
  也可以不考慮廣義瑞利熵,式子11對ww求偏導,並令導數爲0 ,有
(wTSww)Sbw=(wTSbw)Sww..........(12) (w^TS_ww)S_bw=(w^TS_bw)S_ww..........(12)
  因爲在簡化的二分類問題中,wTSbww^TS_bwwTSwww^TS_ww都是實數,所以有
Sbw=J(w)Sww S_bw=J(w)S_ww
  整理得
Sw1Sbw=J(w)w..........(13) S_w^{-1}S_bw=J(w)w..........(13)
  從式子13可以看出,我們要最大化的目標j(w)j(w)對應了矩陣Sw1SbS_w^{-1}S_b的最大特徵值,而投影方向就是這個特徵值對應的特徵向量。

  二分類的LDA到這裏就結束了。而如果擴展到N分類呢?擴展到N分類後,我們希望將特徵降到d維,讓投影后的樣本點仍然滿足最大化類間距離和最小化類內距離。類內散度矩陣SwS_w擴展到n維後仍然滿足定義,而類間散度矩陣SbS_b則不滿足,我們需要做一些小小的變化。定義全局散度矩陣
St=i=1n(xiμ)(xiμ)T S_t=\sum_{i=1}^n(x_i-\mu)(x_i-\mu)^T
  其中μ\mu是N類樣本中心的均值。重新定義St=Sb+SwS_t=S_b+S_w,則
Sb=StSw=i=1n(xiμ)(xiμ)TxCi(xiμi)(xiμi)T=j=1N(xCi(xiμ)(xiμ)TxCi(xiμi)(xiμi)T)=j=1Nmj(μjμ)(μjμ)T \begin{aligned} S_b &=S_t-S_w \\ &=\sum_{i=1}^n(x_i-\mu)(x_i-\mu)^T-\sum_{x \in C_i}(x_i-\mu_i)(x_i-\mu_i)^T\\ &=\sum_{j=1}^N\left(\sum_{x \in C_i}(x_i-\mu)(x_i-\mu)^T-\sum_{x \in C_i}(x_i-\mu_i)(x_i-\mu_i)^T\right)\\ &=\sum_{j=1}^Nm_j(\mu_j-\mu)(\mu_j-\mu)^T \end{aligned}
  其中mjm_j是第j個類別中的樣本個數,N是總類別數。根據LDA,最大化目標爲
J(W)=tr(WTSbW)tr(WTSwW),s.t.WTW=I J(W)=\frac{tr(W^TS_bW)}{tr(W^TS_wW)} ,\quad s.t. W^TW=I
  最大化J(W)對應了以下廣義特徵值的求解,即
Sbw=λSww S_bw=\lambda S_ww
  通過求解Sw1SbS_w^{-1}S_b矩陣的前k個最大特徵向量組成的矩陣,得到W,從而能夠將原始的特徵空間投影到新的d維空間中。

LDA與PCA

  • PCA選取的是投影后數據方差最大的方向,由於PCA是無監督學習,他假設方差越大,信息越多,使用主成分來達到降維。
  • LDA選擇的是投影后類內方差小,類間方差大的方向,屬於有監督學習。
  • 從應用的角度,對無監督的學習應該使用PCA進行降維,對有監督的則應用LDA。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章