LDA線性判別分析_第1頁
LDA線性判別分析_第2頁
LDA線性判別分析_第3頁
LDA線性判別分析_第4頁
LDA線性判別分析_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、1 PCA 和LDALDA:    LDA的全稱是Linear Discriminant Analysis(線性判別分析),是一種supervised learning。有些資料上也稱為是Fishers Linear Discriminant,因為它被Ronald Fisher發(fā)明自1936年,Discriminant這次詞我個人的理解是,一個模型,不需要去通過概率的方法來訓(xùn)練、預(yù)測數(shù)據(jù),比如說各種貝葉斯方法,就需要獲取數(shù)據(jù)的先驗、后驗概率等等。LDA是在目前機器學(xué)習(xí)、數(shù)據(jù)挖掘領(lǐng)域經(jīng)典且熱門的一個算法,據(jù)我所知,百度的商務(wù)搜索部里面就用了不少這方面的算法。

2、0;   LDA的原理是,將帶上標簽的數(shù)據(jù)(點),通過投影的方法,投影到維度更低的空間中,使得投影后的點,會形成按類別區(qū)分,一簇一簇的情況,相同類別的點,將會在投影后的空間中更接近。要說明白LDA,首先得弄明白線性分類器(Linear Classifier):因為LDA是一種線性分類器。對于K-分類的一個分類問題,會有K個線性函數(shù):     當滿足條件:對于所有的j,都有Yk > Yj,的時候,我們就說x屬于類別k。對于每一個分類,都有一個公式去算一個分值,在所有的公式得到的分值中,找一個最大的,就是所屬的分類了。 &

3、#160;  上式實際上就是一種投影,是將一個高維的點投影到一條高維的直線上,LDA最求的目標是,給出一個標注了類別的數(shù)據(jù)集,投影到了一條直線之后,能夠使得點盡量的按類別區(qū)分開,當k=2即二分類問題的時候,如下圖所示:     紅色的方形的點為0類的原始點、藍色的方形點為1類的原始點,經(jīng)過原點的那條線就是投影的直線,從圖上可以清楚的看到,紅色的點和藍色的點被原點明顯的分開了,這個數(shù)據(jù)只是隨便畫的,如果在高維的情況下,看起來會更好一點。下面我來推導(dǎo)一下二分類LDA問題的公式:     假設(shè)用來區(qū)分二分類的直

4、線(投影函數(shù))為:    LDA分類的一個目標是使得不同類別之間的距離越遠越好,同一類別之中的距離越近越好,所以我們需要定義幾個關(guān)鍵的值。    類別i的原始中心點為:(Di表示屬于類別i的點)    類別i投影后的中心點為:    衡量類別i投影后,類別點之間的分散程度(方差)為:    最終我們可以得到一個下面的公式,表示LDA投影到w后的損失函數(shù):   我們分類的目標是,使得類別內(nèi)的點距離越近越好(集中),類別間的點越遠

5、越好。分母表示每一個類別內(nèi)的方差之和,方差越大表示一個類別內(nèi)的點越分散,分子為兩個類別各自的中心點的距離的平方,我們最大化J(w)就可以求出最優(yōu)的w了。想要求出最優(yōu)的w,可以使用拉格朗日乘子法,但是現(xiàn)在我們得到的J(w)里面,w是不能被單獨提出來的,我們就得想辦法將w單獨提出來。   我們定義一個投影前的各類別分散程度的矩陣,這個矩陣看起來有一點麻煩,其實意思是,如果某一個分類的輸入點集Di里面的點距離這個分類的中心店mi越近,則Si里面元素的值就越小,如果分類的點都緊緊地圍繞著mi,則Si里面的元素值越更接近0.   帶入Si,將J(w)分母化為:&#

6、160;  同樣的將J(w)分子化為:   這樣損失函數(shù)可以化成下面的形式:    這樣就可以用最喜歡的拉格朗日乘子法了,但是還有一個問題,如果分子、分母是都可以取任意值的,那就會使得有無窮解,我們將分母限制為長度為1(這是用拉格朗日乘子法一個很重要的技巧,在下面將說的PCA里面也會用到,如果忘記了,請復(fù)習(xí)一下高數(shù)),并作為拉格朗日乘子法的限制條件,帶入得到:   這樣的式子就是一個求特征值的問題了。   對于N(N>2)分類的問題,我就直接寫出下面的結(jié)論了:   這同

7、樣是一個求特征值的問題,我們求出的第i大的特征向量,就是對應(yīng)的Wi了。   這里想多談?wù)勌卣髦?,特征值在純?shù)學(xué)、量子力學(xué)、固體力學(xué)、計算機等等領(lǐng)域都有廣泛的應(yīng)用,特征值表示的是矩陣的性質(zhì),當我們?nèi)〉骄仃嚨那癗個最大的特征值的時候,我們可以說提取到的矩陣主要的成分(這個和之后的PCA相關(guān),但是不是完全一樣的概念)。在機器學(xué)習(xí)領(lǐng)域,不少的地方都要用到特征值的計算,比如說圖像識別、pagerank、LDA、還有之后將會提到的PCA等等。   下圖是圖像識別中廣泛用到的特征臉(eigen face),提取出特征臉有兩個目的,首先是為了壓縮數(shù)據(jù),對于一張圖片,只需

8、要保存其最重要的部分就是了,然后是為了使得程序更容易處理,在提取主要特征的時候,很多的噪聲都被過濾掉了。跟下面將談到的PCA的作用非常相關(guān)。    特征值的求法有很多,求一個D * D的矩陣的時間復(fù)雜度是O(D3), 也有一些求Top M的方法,比如說power method,它的時間復(fù)雜度是O(D2 * M), 總體來說,求特征值是一個很費時間的操作,如果是單機環(huán)境下,是很局限的。PCA:    主成分分析(PCA)與LDA有著非常近似的意思,LDA的輸入數(shù)據(jù)是帶標簽的,而PCA的輸入數(shù)據(jù)是不帶標簽的,所以PCA是一種unsuper

9、vised learning。LDA通常來說是作為一個獨立的算法存在,給定了訓(xùn)練數(shù)據(jù)后,將會得到一系列的判別函數(shù)(discriminate function),之后對于新的輸入,就可以進行預(yù)測了。而PCA更像是一個預(yù)處理的方法,它可以將原本的數(shù)據(jù)降低維度,而使得降低了維度的數(shù)據(jù)之間的方差最大(也可以說投影誤差最小,具體在之后的推導(dǎo)里面會談到)。    方差這個東西是個很有趣的,有些時候我們會考慮減少方差(比如說訓(xùn)練模型的時候,我們會考慮到方差-偏差的均衡),有的時候我們會盡量的增大方差。方差就像是一種信仰(強哥的話),不一定會有很嚴密的證明,從實踐來說,通過盡量增

10、大投影方差的PCA算法,確實可以提高我們的算法質(zhì)量。    說了這么多,推推公式可以幫助我們理解。我下面將用兩種思路來推導(dǎo)出一個同樣的表達式。首先是最大化投影后的方差,其次是最小化投影后的損失(投影產(chǎn)生的損失最?。?。    最大化方差法:    假設(shè)我們還是將一個空間中的點投影到一個向量中去。首先,給出原空間的中心點:    假設(shè)u1為投影向量,投影之后的方差為:    上面這個式子如果看懂了之前推導(dǎo)LDA的過程,應(yīng)該比較容易理解,如果線性代數(shù)里

11、面的內(nèi)容忘記了,可以再溫習(xí)一下,優(yōu)化上式等號右邊的內(nèi)容,還是用拉格朗日乘子法:    將上式求導(dǎo),使之為0,得到:    這是一個標準的特征值表達式了,對應(yīng)的特征值,u對應(yīng)的特征向量。上式的左邊取得最大值的條件就是1最大,也就是取得最大的特征值的時候。假設(shè)我們是要將一個D維的數(shù)據(jù)空間投影到M維的數(shù)據(jù)空間中(M < D), 那我們?nèi)∏癕個特征向量構(gòu)成的投影矩陣就是能夠使得方差最大的矩陣了。    最小化損失法:    假設(shè)輸入數(shù)據(jù)x是在D維空間中的點,那么,我們可以用D個

12、正交的D維向量去完全的表示這個空間(這個空間中所有的向量都可以用這D個向量的線性組合得到)。在D維空間中,有無窮多種可能找這D個正交的D維向量,哪個組合是最合適的呢?    假設(shè)我們已經(jīng)找到了這D個向量,可以得到:    我們可以用近似法來表示投影后的點:    上式表示,得到的新的x是由前M 個基的線性組合加上后D - M個基的線性組合,注意這里的z是對于每個x都不同的,而b對于每個x是相同的,這樣我們就可以用M個數(shù)來表示空間中的一個點,也就是使得數(shù)據(jù)降維了。但是這樣降維后的數(shù)據(jù),必然會產(chǎn)生一些扭曲,我

13、們用J描述這種扭曲,我們的目標是,使得J最?。?#160;   上式的意思很直觀,就是對于每一個點,將降維后的點與原始的點之間的距離的平方和加起來,求平均值,我們就要使得這個平均值最小。我們令:    將上面得到的z與b帶入降維的表達式:    將上式帶入J的表達式得到:     再用上拉普拉斯乘子法(此處略),可以得到,取得我們想要的投影基的表達式為:    這里又是一個特征值的表達式,我們想要的前M個向量其實就是這里最大的M個特征值所對應(yīng)的特

14、征向量。證明這個還可以看看,我們J可以化為:    也就是當誤差J是由最小的D - M個特征值組成的時候,J取得最小值。跟上面的意思相同。    下圖是PCA的投影的一個表示,黑色的點是原始的點,帶箭頭的虛線是投影的向量,Pc1表示特征值最大的特征向量,pc2表示特征值次大的特征向量,兩者是彼此正交的,因為這原本是一個2維的空間,所以最多有兩個投影的向量,如果空間維度更高,則投影的向量會更多。 總結(jié):    本次主要講了兩種方法,PCA與LDA,兩者的思想和計算方法非常類似,但是一個是作為獨立的

15、算法存在,另一個更多的用于數(shù)據(jù)的預(yù)處理的工作。另外對于PCA和LDA還有核方法,本次的篇幅比較大了,先不說了,以后有時間再談:2 LDA1. 問題     之前我們討論的PCA、ICA也好,對樣本數(shù)據(jù)來言,可以是沒有類別標簽y的?;叵胛覀冏龌貧w時,如果特征太多,那么會產(chǎn)生不相關(guān)特征引入、過度擬合等問題。我們可以使用PCA來降維,但PCA沒有將類別標簽考慮進去,屬于無監(jiān)督的。     比如回到上次提出的文檔中含有“l(fā)earn”和“study”的問題,使用PCA后,也許可以將這兩個特征合并為一個,降了維度。但假設(shè)我們的

16、類別標簽y是判斷這篇文章的topic是不是有關(guān)學(xué)習(xí)方面的。那么這兩個特征對y幾乎沒什么影響,完全可以去除。     再舉一個例子,假設(shè)我們對一張100*100像素的圖片做人臉識別,每個像素是一個特征,那么會有10000個特征,而對應(yīng)的類別標簽y僅僅是0/1值,1代表是人臉。這么多特征不僅訓(xùn)練復(fù)雜,而且不必要特征對結(jié)果會帶來不可預(yù)知的影響,但我們想得到降維后的一些最佳特征(與y關(guān)系最密切的),怎么辦呢?2. 線性判別分析(二類情況)     回顧我們之前的logistic回歸方法,給定m個n維特征的訓(xùn)練樣例(i從1到

17、m),每個對應(yīng)一個類標簽。我們就是要學(xué)習(xí)出參數(shù),使得(g是sigmoid函數(shù))。     現(xiàn)在只考慮二值分類情況,也就是y=1或者y=0。     為了方便表示,我們先換符號重新定義問題,給定特征為d維的N個樣例,其中有個樣例屬于類別,另外個樣例屬于類別。     現(xiàn)在我們覺得原始特征數(shù)太多,想將d維特征降到只有一維,而又要保證類別能夠“清晰”地反映在低維數(shù)據(jù)上,也就是這一維就能決定每個樣例的類別。     我們將這個最佳的向量稱為w(

18、d維),那么樣例x(d維)到w上的投影可以用下式來計算          這里得到的y值不是0/1值,而是x投影到直線上的點到原點的距離。     當x是二維的,我們就是要找一條直線(方向為w)來做投影,然后尋找最能使樣本點分離的直線。如下圖:          從直觀上來看,右圖比較好,可以很好地將不同類別的樣本點分離。     接下來

19、我們從定量的角度來找到這個最佳的w。     首先我們尋找每類樣例的均值(中心點),這里i只有兩個          由于x到w投影后的樣本點均值為          由此可知,投影后的的均值也就是樣本中心點的投影。     什么是最佳的直線(w)呢?我們首先發(fā)現(xiàn),能夠使投影后的兩類樣本中心點盡量分離的直線是好的直線,定量表示就是:

20、60;         J(w)越大越好。     但是只考慮J(w)行不行呢?不行,看下圖          樣本點均勻分布在橢圓里,投影到橫軸x1上時能夠獲得更大的中心點間距J(w),但是由于有重疊,x1不能分離樣本點。投影到縱軸x2上,雖然J(w)較小,但是能夠分離樣本點。因此我們還需要考慮樣本點之間的方差,方差越大,樣本點越難以分離。    

21、; 我們使用另外一個度量值,稱作散列值(scatter),對投影后的類求散列值,如下          從公式中可以看出,只是少除以樣本數(shù)量的方差值,散列值的幾何意義是樣本點的密集程度,值越大,越分散,反之,越集中。     而我們想要的投影后的樣本點的樣子是:不同類別的樣本點越分開越好,同類的越聚集越好,也就是均值差越大越好,散列值越小越好。正好,我們可以使用J(w)和S來度量,最終的度量公式是      

22、;    接下來的事就比較明顯了,我們只需尋找使J(w)最大的w即可。     先把散列值公式展開          我們定義上式中中間那部分          這個公式的樣子不就是少除以樣例數(shù)的協(xié)方差矩陣么,稱為散列矩陣(scatter matrices)     我們繼續(xù)定義  

23、60;       稱為Within-class scatter matrix。     那么回到上面的公式,使用替換中間部分,得               然后,我們展開分子          稱為Between-class scatter,是兩

24、個向量的外積,雖然是個矩陣,但秩為1。     那么J(w)最終可以表示為          在我們求導(dǎo)之前,需要對分母進行歸一化,因為不做歸一的話,w擴大任何倍,都成立,我們就無法確定w。因此我們打算令,那么加入拉格朗日乘子后,求導(dǎo)          其中用到了矩陣微積分,求導(dǎo)時可以簡單地把當做看待。     如果可逆,那么將求導(dǎo)后的結(jié)

25、果兩邊都乘以,得          這個可喜的結(jié)果就是w就是矩陣的特征向量了。     這個公式稱為Fisher linear discrimination。     等等,讓我們再觀察一下,發(fā)現(xiàn)前面的公式          那么         

26、代入最后的特征值公式得          由于對w擴大縮小任何倍不影響結(jié)果,因此可以約去兩邊的未知常數(shù)和,得到          至此,我們只需要求出原始樣本的均值和方差就可以求出最佳的方向w,這就是Fisher于1936年提出的線性判別分析。     看上面二維樣本的投影結(jié)果圖:     3. 線性判別分析(多類情況)

27、0;    前面是針對只有兩個類的情況,假設(shè)類別變成多個了,那么要怎么改變,才能保證投影后類別能夠分離呢?我們之前討論的是如何將d維降到一維,現(xiàn)在類別多了,一維可能已經(jīng)不能滿足要求。假設(shè)我們有C個類別,需要K維向量(或者叫做基向量)來做投影。     將這K維向量表示為。     我們將樣本點在這K維向量投影后結(jié)果表示為,有以下公式成立            

28、0;  為了像上節(jié)一樣度量J(w),我們打算仍然從類間散列度和類內(nèi)散列度來考慮。     當樣本是二維時,我們從幾何意義上考慮:          其中和與上節(jié)的意義一樣,是類別1里的樣本點相對于該類中心點的散列程度。變成類別1中心點相對于樣本中心點的協(xié)方差矩陣,即類1相對于的散列程度。     為         &

29、#160;的計算公式不變,仍然類似于類內(nèi)部樣本點的協(xié)方差矩陣          需要變,原來度量的是兩個均值點的散列情況,現(xiàn)在度量的是每類均值點相對于樣本中心的散列情況。類似于將看作樣本點,是均值的協(xié)方差矩陣,如果某類里面的樣本點較多,那么其權(quán)重稍大,權(quán)重用Ni/N表示,但由于J(w)對倍數(shù)不敏感,因此使用Ni。          其中      

30、    是所有樣本的均值。     上面討論的都是在投影前的公式變化,但真正的J(w)的分子分母都是在投影后計算的。下面我們看樣本點投影后的公式改變:     這兩個是第i類樣本點在某基向量上投影后的均值計算公式。               下面兩個是在某基向量上投影后的和     &#

31、160;         其實就是將換成了。     綜合各個投影向量(w)上的和,更新這兩個參數(shù),得到               W是基向量矩陣,是投影后的各個類內(nèi)部的散列矩陣之和,是投影后各個類中心相對于全樣本中心投影的散列矩陣之和。     回想我們上節(jié)的公式J(w),分子是兩類中心距,分母

32、是每個類自己的散列度?,F(xiàn)在投影方向是多維了(好幾條直線),分子需要做一些改變,我們不是求兩兩樣本中心距之和(這個對描述類別間的分散程度沒有用),而是求每類中心相對于全樣本中心的散列度之和。     然而,最后的J(w)的形式是          由于我們得到的分子分母都是散列矩陣,要將矩陣變成實數(shù),需要取行列式。又因為行列式的值實際上是矩陣特征值的積,一個特征值可以表示在該特征向量上的發(fā)散程度。因此我們使用行列式來計算(此處我感覺有點牽強,道理不是那么有說服力)。&

33、#160;    整個問題又回歸為求J(w)的最大值了,我們固定分母為1,然后求導(dǎo),得出最后結(jié)果(我翻查了很多講義和文章,沒有找到求導(dǎo)的過程)          與上節(jié)得出的結(jié)論一樣          最后還歸結(jié)到了求矩陣的特征值上來了。首先求出的特征值,然后取前K個特征向量組成W矩陣即可。     注意:由于中的 秩為1,因此

34、的秩至多為C(矩陣的秩小于等于各個相加矩陣的秩的和)。由于知道了前C-1個后,最后一個可以有前面的來線性表示,因此的秩至多為C-1。那么K最大為C-1,即特征向量最多有C-1個。特征值大的對應(yīng)的特征向量分割性能最好。     由于不一定是對稱陣,因此得到的K個特征向量不一定正交,這也是與PCA不同的地方。4. 實例      將3維空間上的球體樣本點投影到二維上,W1相比W2能夠獲得更好的分離效果。         

35、   PCA與LDA的降維對比:            PCA選擇樣本點投影具有最大方差的方向,LDA選擇分類性能最好的方向。      LDA既然叫做線性判別分析,應(yīng)該具有一定的預(yù)測功能,比如新來一個樣例x,如何確定其類別?      拿二值分來來說,我們可以將其投影到直線上,得到y(tǒng),然后看看y是否在超過某個閾值y0,超過是某一類,否則是另一類。而怎么尋找這個y0呢

36、?      看            根據(jù)中心極限定理,獨立同分布的隨機變量和符合高斯分布,然后利用極大似然估計求            然后用決策理論里的公式來尋找最佳的y0,詳情請參閱PRML。      這是一種可行但比較繁瑣的選取方法,可以看第7節(jié)(一些問題)來得到簡單

37、的答案。5. 使用LDA的一些限制      1、 LDA至多可生成C-1維子空間      LDA降維后的維度區(qū)間在1,C-1,與原始特征數(shù)n無關(guān),對于二值分類,最多投影到1維。      2、 LDA不適合對非高斯分布樣本進行降維。            上圖中紅色區(qū)域表示一類樣本,藍色區(qū)域表示另一類,由于是2類,所以最多投影到1維上

38、。不管在直線上怎么投影,都難使紅色點和藍色點內(nèi)部凝聚,類間分離。      3、 LDA在樣本分類信息依賴方差而不是均值時,效果不好。            上圖中,樣本點依靠方差信息進行分類,而不是均值信息。LDA不能夠進行有效分類,因為LDA過度依靠均值信息。      4、 LDA可能過度擬合數(shù)據(jù)。6. LDA的一些變種1、 非參數(shù)LDA   

39、0;  非參數(shù)LDA使用本地信息和K臨近樣本點來計算,使得是全秩的,這樣我們可以抽取多余C-1個特征向量。而且投影后分離效果更好。2、 正交LDA      先找到最佳的特征向量,然后找與這個特征向量正交且最大化fisher條件的向量。這種方法也能擺脫C-1的限制。3、 一般化LDA      引入了貝葉斯風(fēng)險等理論4、 核函數(shù)LDA      將特征,使用核函數(shù)來計算。7. 一些問題      上面在多值分類中使用的            是帶權(quán)重的各類樣本中心到全樣本中心的散列矩陣。如果

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論