如果我只說LDA,那么對於自然語言處理的人來講,可能更熟悉的是LDA主題模型。但是一旦我跟上PCA了,那么這兩個兄弟,我相信從事機器學習相關的同學就會知道,這是在講——線性降維。
我們這里首先給出LDA和PCA之間的區別與聯系,然后我們再詳細講解兩個線性降維方法。因為實際上,scikit-learning機器學習工具包中就已經包含了LDA和PCA降維的實現,因此我們如果在應用時,可以直接拿來用。細節部分我們稍后介紹。
LDA和PCA都是線性降維處理的常用方法,但是他們的目標基本上是相反的,下表給出了LDA與PCA之間的區別。
類型 | LDA | PCA |
---|---|---|
學習用處 | 可獨立作為線性分類器 | 只能當做預處理 |
學習方式 | 有監督學習 | 無監督學習 |
學習目標 | 保證樣本在空間中有最佳的可分離性 | 保證樣本在空間中保持原來變量信息 |
學習過程 | 保證類別內距離越近越好,類別間距離越遠越好 | 保留樣本擁有最大方差 |
下圖給出了對於同一個樣例,兩種降維方法得到的不同的結果,很直觀的,對吧。
LDA(Linear Discriminant Analysis)稱為是線性判別分析,是一種常用的線性降維方法,而線性降維的原理就是通過一個函數H,把原空間X映射到空間Y,使得|Y|<|X|即達到降維目的,但是降維的好壞要看映射后空間Y對於原數據的表現能力是否優於原空間X。
LDA是線性分類器,因此它的模樣其實長得很大眾化:
這個東西在神經網絡中實在是再熟悉不過了。但事實上,每一個線性分類器只能二元分類(包括SVM),因此想K類分類的話,需要有K個線性函數。
回顧我們上面講的,LDA的目標是保證映射后的樣本類別內距離越近越好,類別間距離越遠越好。可是這個目標比較寬泛,我們如何根據他來確定最終的線性分類器呢。
首先需要定義這么幾個值;
類別i的原始中心點(均值)為:
類別i投影后的中心點為:
衡量類別i投影后,類別點之間的分散程度(方差)為:
最終一個二分類問題就可以得到下面的目標優化函數:
我們定義一個投影前的各類別分散程度的矩陣,其意思是,如果某一個分類的輸入點集
這樣,二分類的分母就可以是:
同樣,分子就變成了:
因此目標函數就變成了:
這樣就可以使用拉格朗日乘子法了,不過為了限制無窮節,這里使用一個小技巧,那就是將分母限制長度為1,並作為拉格朗日乘子法的限制條件,帶入就可以得到:
這樣式子就是一個求廣義特征值的問題了,如果
w為矩陣的特征向量,這個公式就被稱為Fisher linear discrimination。
讓我們觀察一下:
那么:
由於對w擴大縮小任何倍不影響結果,因此可以約去兩邊的未知常數
至此,我們只需要求出原始樣本的均值和方差就可以求出最佳的方向w。
對於N(N>2)分類問題,我們可以直接寫出以下結論:
這同樣是一個求廣義特征值的問題,求出的第i大的特征向量,即為對應的
最后,計算映射向量w就是求最大特征向量,也可以是前幾個最大特征向量組成矩陣
可以發現,LDA最后也是轉化成為一個求矩陣特征向量的問題,和PCA很像,事實上很多其他的算法也是歸結於這一類,一般稱之為譜(spectral)方法。
更多的可以參考《LDA 線性判別分析》和《LDA算法的中心思想》及《LDA線性判別分析詳解》和《線性判別分析LDA與主成分分析PCA》。
PCA(Principal Component Analysis)被稱為是主成分分析法。它的目標是通過某種線性投影,將高維的數據映射到低維的空間中表示,並期望在所投影的維度上數據的方差最大,以此使用較少的數據維度,同時保留住較多的原數據點的特性。
通俗的理解,如果把所有的點都映射到一起,那么幾乎所有的信息(如點和點之間的距離關系)都丟失了,而如果映射后方差盡可能的大,那么數據點則會分散開來,以此來保留更多的信息。可以證明,PCA是丟失原始數據信息最少的一種線性降維方式。(實際上就是最接近原始數據,但是PCA並不試圖去探索數據內在結構)
說實話,如果把原來的數據變為一個矩陣,那么PCA就是通過線性變換,成為一個線性無關的矩陣。但是這種方式有很多,該如何選取一個合適的變換呢?
如果還記得線性代數里的協方差,那么就好辦多了。
如果將選取的第一個線性組合即第一個綜合變量記為
中所選取的
為什么要用方差大的作為主信息呢,而這一切,都要從最大方差理論說起:在信號處理中認為信號具有較大的方差,噪聲有較小的方差,信噪比就是信號與噪聲的方差比,越大越好。因此我們認為,最好的k維特征是將n維樣本點轉換為k維后,每一維上的樣本方差都很大。
因此這個理論認為方差最大的才是有效信息。我們要求的是最佳的直線,是的投影后樣本點方差最大。設投影后樣本點為
其中:
S就是樣本特征的協方差矩陣,令u為單位向量,即u^Tu=1,用拉格朗日乘子法可得:
將上式求導,使之為0,得到
var取得最大值的條件就是入最大,也就是取得最大的特征值的時候。假設我們是要將一個D維的數據空間投影到M維的數據空間中
因此,我們只需要對協方差矩陣進行特征值分解,得到的前k大特征值對應的特征向量就是最佳的k維新特征,而且這k維新特征是正交的。
更多的細節可以參照《PCAPPT》和《PCA的數學原理》以及《主元分析(PCA)理論分析及應用》。
今天我們主要介紹了2個線性降維的方法,而且有很多公式推導,比較燒腦。后面可以慢慢體會。
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。