LDA線性判別分析
線性判別分析(Linear Discriminant Analysis,LDA)是一種有監督學習算 法,同時經常被用來對數據進行降維。它是Ronald Fisher在1936年發明的,有些資 料上也稱之為Fisher LDA(Fisher’s Linear Discriminant Analysis)。LDA是目前機 器學習、數據挖掘領域中經典且熱門的一種算法。
相比于PCA,LDA可以作為一種有監督的降維算法。在PCA中,算法沒有考 慮數據的標簽(類別),只是把原數據映射到一些方差比較大的方向上而已。
假設用不同的顏色標注C1、C2兩個不同類別的數據,如圖4.4所示。根據PCA 算法,數據應該映射到方差最大的那個方向,亦即y軸方向。但是,C1,C2兩個不
同類別的數據就會完全混合在一起,很難區分開。所以,使用PCA算法進行降維 后再進行分類的效果會非常差。但是,如果使用LDA算法,數據會映射到x軸方 向。那么,LDA算法究竟是如何做到這一點的呢?
LDA的中心思想——最大化類間距離和最小化類內距 離。
我們已經找到了使得類間距離盡可能大的投影方式,現在只需要同 時優化類內方差,使其盡可能小。我們將整個數據集的類內方差定義為各個類分 別的方差之和,將目標函數定義為類間距離和類內距離的比值,于是引出我們需 要最大化的目標
Fisher LDA相比PCA更善于對有類別信息的數據進行降 維處理,但它對數據的分布做了一些很強的假設,例如,每個類數據都是高斯分 布、各個類的協方差相等。盡管這些假設在實際中并不一定完全滿足,但LDA已 被證明是非常有效的一種降維方法。主要是因為線性模型對于噪聲的魯棒性比較 好,但由于模型簡單,表達能力有一定局限性,我們可以通過引入核函數擴展 LDA方法以處理分布較為復雜的數據。
PCA是有監督的降維算法,而LDA是無監督的降維 算法。雖然在原理或應用方面二者有一定的區別,但是從這兩種方法的數學本質 出發,我們不難發現二者有很多共通的特性。
LDA線性判別分析與PCA降維的區別
首先從目標出發,PCA選擇的是投影后數據方差最大的方向。由于它是無監 督的,因此PCA假設方差越大,信息量越多,用主成分來表示原始數據可以去除 冗余的維度,達到降維。而LDA選擇的是投影后類內方差小、類間方差大的方 向。其用到了類別標簽信息,為了找到數據中具有判別性的維度,使得原始數據 在這些方向上投影后,不同類別盡可能區分開。
舉一個簡單的例子,在語音識別中,我們想從一段音頻中提取出人的語音信 號,這時可以使用PCA先進行降維,過濾掉一些固定頻率(方差較小)的背景噪 聲。但如果我們的需求是從這段音頻中區分出聲音屬于哪個人,那么我們應該使 用LDA對數據進行降維,使每個人的語音信號具有區分性。
另外,在人臉識別領域中,PCA和LDA都會被頻繁使用。基于PCA的人臉識 別方法也稱為特征臉(Eigenface)方法,該方法將人臉圖像按行展開形成一個高 維向量,對多個人臉特征的協方差矩陣做特征值分解,其中較大特征值對應的特 征向量具有與人臉相似的形狀,故稱為特征臉。Eigenface for Recognition一文中將 人臉用7個特征臉表示(見圖4.7),于是可以把原始65536維的圖像特征瞬間降到7 維,人臉識別在降維后的空間上進行。然而由于其利用PCA進行降維,一般情況 下保留的是最佳描述特征(主成分),而非分類特征。如果我們想要達到更好的 人臉識別效果,應該用LDA方法對數據集進行降維,使得不同人臉在投影后的特 征具有一定區分性。
從應用的角度,我們可以掌握一個基本的原則——對無監督的任務使用PCA
進行降維,對有監督的則應用LDA。 ·總結與擴展·
至此,我們從數學原理、優化目標以及應用場景的角度對比了PCA和LDA這 兩種經典的線性降維方法,對于非線性數據,可以通過核映射等方法對二者分別 進行擴展以得到更好的降維效果。關于特征臉這一降維應用,有興趣的讀者可以 拜讀最經典的Eigenface論文[4],更好地理解降維算法的實際應用。