1. 程式人生 > >線性判別分析(LDA)

線性判別分析(LDA)

      上一節介紹了PCA演算法,PCA的目標是希望降維後的資料能夠保持最多的信息,Discriminant Analysis所追求的目標與PCA不同,它希望資料在降維後能夠很容易地被區分開來

一. LDA演算法概述:

     線性判別式分析(Linear Discriminant Analysis, LDA),也叫做Fisher線性判別(Fisher Linear Discriminant ,FLD),是模式識別的經典演算法,它是在1996年由Belhumeur引入模式識別和人工智慧領域的。性鑑別分析的基本思想是將高維的模式樣本投影到最佳鑑別向量空間,以達到抽取分類資訊和壓縮特徵空間維數的效果,投影后保證模式樣本在新的子空間有最大的類間距離和最小的類內距離,即模式在該空間中有最佳的可分離性。因此,它是一種有效的特徵抽取方法。使用這種方法能夠使投影后模式樣本的類間散佈矩陣最大,並且同時類內散佈矩陣最小。就是說,它能夠保證投影后模式樣本在新的空間中有最小的類內距離和最大的類間距離,即模式在該空間中有最佳的可分離性。

二. 原理簡述:

     LDA的原理是,將帶上標籤的資料(點),通過投影的方法投影到維度更低的空間中,使得投影后的點形成按類別區分的情形,即相同類別的點,在投影后的空間中距離較近,不同類別的點,在投影后的空間中距離較遠。

      要說明LDA,首先得弄明白線性分類器(Linear Classifier):因為LDA是一種線性分類器。對於K-分類的一個分類問題,會有K個線性函式:

image

     當滿足條件:對於所有的j,都有Yk > Yj,的時候,我們就說x屬於類別k。對於每一個分類,都會用一個公式去計算一個得分值,所有公式的結果中得分最高的那個類別,就是所屬的分類了。

    上式實際上就是一種投影,是將一個高維的點投影到一條高維的直線上,LDA最求的目標是,給出一個標註了類別的資料集,投影到了一條直線之後,能夠使得點儘量的按類別區分開,當k=2即二分類問題的時候,如下圖所示:

clip_image002

     紅色的方形的點為0類的原始點、藍色的方形點為1類的原始點,經過原點的那條線就是投影的直線,從圖上可以清楚的看到,紅色的點和藍色的點被原點明顯的分開了,這個資料只是隨便畫的,如果在高維的情況下,看起來會更好一點。下面我來推導一下二分類LDA問題的公式:

     假設用來區分二分類的直線(投影函式)為:

image

    LDA分類的一個目標是使得不同類別之間的距離越遠越好,同一類別之中的距離越近越好,所以我們需要定義幾個關鍵的值。

    類別i的原始中心點為:(Di表示屬於類別i的點)image

    類別i投影后的中心點為:

image

    衡量類別i投影后,類別點之間的分散程度(方差)為:

image

    最終我們可以得到一個下面的公式,表示LDA投影到w後的損失函式:

image

   我們分類的目標是,使得類別內的點距離越近越好(集中),類別間的點越遠越好。分母表示每一個類別內的方差之和,方差越大表示一個類別內的點越分散,分子為兩個類別各自的中心點的距離的平方,我們最大化J(w)就可以求出最優的w了。想要求出最優的w,可以使用拉格朗日乘子法,但是現在我們得到的J(w)裡面,w是不能被單獨提出來的,我們就得想辦法將w單獨提出來。

   我們定義一個投影前的各類別分散程度的矩陣,這個矩陣的意思是,如果某一個輸入點集Di裡面的點距離這個分類的中心點mi越近,則Si裡面元素的值就越小,如果分類的點都緊緊地圍繞著mi,則Si裡面的元素值越更接近0.

image

   帶入Si,將J(w)分母化為:

image

image

   同樣的將J(w)分子化為:

image

   這樣損失函式可以化成下面的形式,我們的目標是求取它的最大值:

   這樣就可以用拉格朗日乘子法了,但是還有一個問題,如果分子、分母是都可以取任意值的,那就會使得有無窮解,我們將分母限制為長度為1(這是用拉格朗日乘子法一個很重要的技巧),並作為拉格朗日乘子法的限制條件,帶入得到:

image

求導公式如下:

   這樣的式子就是一個求特徵值的問題了。

   對於N(N>2)分類的問題,我就直接寫出下面的結論了:

image

 又因為w=[w1,w2...wd],所以得到:

把損失函式分解可知,我們要求的是:

       最佳投影矩陣的列向量即為的d個最大的特徵值所對應的特徵向量(矩陣的特徵向量),且最優投影軸的個數d<=c-1(c表示類的個數).

   這裡想多談談特徵值,特徵值在純數學、量子力學、固體力學、計算機等等領域都有廣泛的應用,特徵值表示的是矩陣的性質,當我們取到矩陣的前N個最大的特徵值的時候,我們可以說提取到的矩陣主要的成分(這個和之後的PCA相關,但是不是完全一樣的概念)。在機器學習領域,不少的地方都要用到特徵值的計算,比如說影象識別、pagerank、LDA、還有之後將會提到的PCA等等。

三. 使用LDA的一些限制

 1、 LDA至多可生成C-1維子空間

 clip_image110

     由於clip_image070[2]中的clip_image140 秩為1,因此clip_image070[3]的秩至多為C(矩陣的秩小於等於各個相加矩陣的秩的和)。由於知道了前C-1個clip_image094[2]後,最後一個clip_image142可以有前面的clip_image094[3]來線性表示,因此clip_image070[4]的秩至多為C-1。那麼K最大為C-1,即特徵向量最多有C-1個。特徵值大的對應的特徵向量分割效能最好。

 2、 LDA不適合對非高斯分佈樣本進行降維。

      clip_image010

   上圖中紅色區域表示一類樣本,藍色區域表示另一類,由於是2類,所以最多投影到1維上。不管在直線上怎麼投影,都難使紅色點和藍色點內部凝聚,類間分離。

 3、 LDA在樣本分類資訊依賴方差而不是均值時,效果不好。

      clip_image011

  上圖中,樣本點依靠方差資訊進行分類,而不是均值資訊。LDA不能夠進行有效分類,因為LDA過度依靠均值資訊。

 4、 LDA可能過度擬合數據。

四. LDA與PCA對比

   將3維空間上的球體樣本點投影到二維上,W1相比W2能夠獲得更好的分離效果。

      clip_image002

      PCA與LDA的降維對比:

      clip_image004

      PCA選擇樣本點投影具有最大方差的方向,LDA選擇分類效能最好的方向。


參考: