線性降維之LDA與PCA


1.前言

如果我只說LDA,那么對於自然語言處理的人來講,可能更熟悉的是LDA主題模型。但是一旦我跟上PCA了,那么這兩個兄弟,我相信從事機器學習相關的同學就會知道,這是在講——線性降維。

2. 摘要

我們這里首先給出LDA和PCA之間的區別與聯系,然后我們再詳細講解兩個線性降維方法。因為實際上,scikit-learning機器學習工具包中就已經包含了LDAPCA降維的實現,因此我們如果在應用時,可以直接拿來用。細節部分我們稍后介紹。

LDA和PCA都是線性降維處理的常用方法,但是他們的目標基本上是相反的,下表給出了LDA與PCA之間的區別。

類型 LDA PCA
學習用處 可獨立作為線性分類器 只能當做預處理
學習方式 有監督學習 無監督學習
學習目標 保證樣本在空間中有最佳的可分離性 保證樣本在空間中保持原來變量信息
學習過程 保證類別內距離越近越好,類別間距離越遠越好 保留樣本擁有最大方差

下圖給出了對於同一個樣例,兩種降維方法得到的不同的結果,很直觀的,對吧。
這里寫圖片描述

3. LDA

LDA(Linear Discriminant Analysis)稱為是線性判別分析,是一種常用的線性降維方法,而線性降維的原理就是通過一個函數H,把原空間X映射到空間Y,使得|Y|<|X|即達到降維目的,但是降維的好壞要看映射后空間Y對於原數據的表現能力是否優於原空間X。

LDA是線性分類器,因此它的模樣其實長得很大眾化:
yk(x)=wTkx+wk0

這個東西在神經網絡中實在是再熟悉不過了。但事實上,每一個線性分類器只能二元分類(包括SVM),因此想K類分類的話,需要有K個線性函數。

回顧我們上面講的,LDA的目標是保證映射后的樣本類別內距離越近越好,類別間距離越遠越好。可是這個目標比較寬泛,我們如何根據他來確定最終的線性分類器呢。

首先需要定義這么幾個值;
類別i的原始中心點(均值)為:
mi=1nixDix
類別i投影后的中心點為:
mi~=wTmi
衡量類別i投影后,類別點之間的分散程度(方差)為:
si~=yγi(ymi~2)
最終一個二分類問題就可以得到下面的目標優化函數:
J(w)=|m1~m2~|2s1~2s2~2

我們定義一個投影前的各類別分散程度的矩陣,其意思是,如果某一個分類的輸入點集 Di 里面的點距離這個分類的中心點 mi 越近,則 si 里面的元素的值越小。帶入 si ,將J(w)的分母化為:
Si=xDi(xmi)(xmi)T
si~=xDi(wTxwTmi)2=sumxDi(xmi)(xmi)Tw=wTSiw

這樣,二分類的分母就可以是:
s1~2+s2~2=wT(S1+S2)w=wTSww
同樣,分子就變成了:
|m1~m2~|2=wT(m1m2)(m1m2)Tw=wTSBw
因此目標函數就變成了:
J(w)=wTSBwwTSww

這樣就可以使用拉格朗日乘子法了,不過為了限制無窮節,這里使用一個小技巧,那就是將分母限制長度為1,並作為拉格朗日乘子法的限制條件,帶入就可以得到:
c(w)=wTSBwλ(wTSww1)
dcdw=2SBw2λSww=0
SBw=λSww
這樣式子就是一個求廣義特征值的問題了,如果 Sw 可逆,那么求到后的結果兩邊同乘以 S1w 得到:
S1wSBw=λw
w為矩陣的特征向量,這個公式就被稱為Fisher linear discrimination。

讓我們觀察一下:
(m1m2)(m1m2)T=SB
那么:
SBw=(m1m2)(m1m2)Tw=(m1m2)λ=λw
由於對w擴大縮小任何倍不影響結果,因此可以約去兩邊的未知常數 λλ ,因此得到了:
w=S1w(m1m2)
至此,我們只需要求出原始樣本的均值和方差就可以求出最佳的方向w。
對於N(N>2)分類問題,我們可以直接寫出以下結論:
Sw=i=1cSi
SB=i=1cni(mim)(mim)T
SBwi=λSwWi

這同樣是一個求廣義特征值的問題,求出的第i大的特征向量,即為對應的 wi

最后,計算映射向量w就是求最大特征向量,也可以是前幾個最大特征向量組成矩陣 A=[w1,w2,.wk] 之后,就可以對新來的點進行降維了: y=AX (線性的一個好處就是計算方便!)

可以發現,LDA最后也是轉化成為一個求矩陣特征向量的問題,和PCA很像,事實上很多其他的算法也是歸結於這一類,一般稱之為譜(spectral)方法。

更多的可以參考《LDA 線性判別分析》和《LDA算法的中心思想》及《LDA線性判別分析詳解》和《線性判別分析LDA與主成分分析PCA》。

4. PCA

PCA(Principal Component Analysis)被稱為是主成分分析法。它的目標是通過某種線性投影,將高維的數據映射到低維的空間中表示,並期望在所投影的維度上數據的方差最大,以此使用較少的數據維度,同時保留住較多的原數據點的特性。

通俗的理解,如果把所有的點都映射到一起,那么幾乎所有的信息(如點和點之間的距離關系)都丟失了,而如果映射后方差盡可能的大,那么數據點則會分散開來,以此來保留更多的信息。可以證明,PCA是丟失原始數據信息最少的一種線性降維方式。(實際上就是最接近原始數據,但是PCA並不試圖去探索數據內在結構)

說實話,如果把原來的數據變為一個矩陣,那么PCA就是通過線性變換,成為一個線性無關的矩陣。但是這種方式有很多,該如何選取一個合適的變換呢?

如果還記得線性代數里的協方差,那么就好辦多了。

如果將選取的第一個線性組合即第一個綜合變量記為 F1 ,自然希望它盡可能多地反映原來變量的信息,這里“信息”用方差來測量,即希望 Var(F1) 越大,表示 F1 包含的信息越多。因此在所有的線性組合
中所選取的 F1 應該是方差最大的,故稱 F1 為第一主成分。如果第一主成分不足以代表原來p個變量的信息,再考慮選取 F2 即第二個線性組合,為了有效地反映原來信息, F1 己有的信息就不需要再出現在 F2 中,用數學語言表達就是要求 covF1F20 。,稱 F1 為第二主成分,依此類推可以構造出第三、四…第p個主成分。

為什么要用方差大的作為主信息呢,而這一切,都要從最大方差理論說起:在信號處理中認為信號具有較大的方差,噪聲有較小的方差,信噪比就是信號與噪聲的方差比,越大越好。因此我們認為,最好的k維特征是將n維樣本點轉換為k維后,每一維上的樣本方差都很大。

因此這個理論認為方差最大的才是有效信息。我們要求的是最佳的直線,是的投影后樣本點方差最大。設投影后樣本點為 x¯,x¯=1Nn=1Nxn ,因此方差為:
1Nn=1N(uT1xnuT1x¯)2=uT1Su1
其中:
S=1Ni=1N(xix¯)(xix¯)T
S就是樣本特征的協方差矩陣,令u為單位向量,即u^Tu=1,用拉格朗日乘子法可得:
f(u)=uTSu+λ(1uTu)
將上式求導,使之為0,得到 Su=λu 這是一個標准的特征值表達式了, λuvar=uTSu=λ

var取得最大值的條件就是入最大,也就是取得最大的特征值的時候。假設我們是要將一個D維的數據空間投影到M維的數據空間中 M<D) ,那我們取前M個特征向量構成的投影矩陣就是能夠使得方差最大的矩陣了。同時,由於u是實對稱矩陣的特征向量,因此特征向量之間正交,投影得到的綜合變量彼此獨立,協方差為0。

因此,我們只需要對協方差矩陣進行特征值分解,得到的前k大特征值對應的特征向量就是最佳的k維新特征,而且這k維新特征是正交的。

更多的細節可以參照《PCAPPT》和《PCA的數學原理》以及《主元分析(PCA)理論分析及應用》。

5. 小結

今天我們主要介紹了2個線性降維的方法,而且有很多公式推導,比較燒腦。后面可以慢慢體會。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com