四大機器學習降維算法:PCA、LDA、LLE、Laplacian Eigenmaps

原文:http://dataunion.org/13451.html

引言:

機器學習領域中所謂的降維就是指采用某種映射方法,將原高維空間中的數據點映射到低維度的空間中。降維的本質是學習一個映射函數 f : x->y,其中x是原始數據點的表達,目前最多使用向量表達形式。 y是數據點映射后的低維向量表達,通常y的維度小于x的維度(當然提高維度也是可以的)。f可能是顯式的或隱式的、線性的或非線性的。

目前大部分降維算法處理向量表達的數據,也有一些降維算法處理高階張量表達的數據。之所以使用降維后的數據表示是因為在原始的高維空間中,包含有冗余信息以及噪音信息,在實際應用例如圖像識別中造成了誤差,降低了準確率;而通過降維,我們希望減少冗余信息所造成的誤差,提高識別(或其他應用)的精度。又或者希望通過降維算法來尋找數據內部的本質結構特征。

在很多算法中,降維算法成為了數據預處理的一部分,如PCA。事實上,有一些算法如果沒有降維預處理,其實是很難得到很好的效果的。

注:我寫的東西有一些口語化,而且受限于網頁blog的編輯功能,很多地方可能有一些簡單。

主成分分析算法(PCA)

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

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

n維向量w為目標子空間的一個坐標軸方向(稱為映射向量),最大化數據映射后的方差,有:

其中m是數據實例的個數, xi是數據實例i的向量表達, x拔是所有數據實例的平均向量。定義W為包含所有映射向量為列向量的矩陣,經過線性代數變換,可以得到如下優化目標函數:

其中tr表示矩陣的跡,A是數據協方差矩陣。

容易得到最優的W是由數據協方差矩陣前k個最大的特征值對應的特征向量作為列向量構成的。這些特征向量形成一組正交基并且最好地保留了數據中的信息。

PCA的輸出就是Y = W‘X,由X的原始維度降低到了k維。

PCA追求的是在降維之后能夠最大化保持數據的內在信息,并通過衡量在投影方向上的數據方差的大小來衡量該方向的重要性。但是這樣投影以后對數據的區分作用并不大,反而可能使得數據點揉雜在一起無法區分。這也是PCA存在的最大一個問題,這導致使用PCA在很多情況下的分類效果并不好。具體可以看下圖所示,若使用PCA將數據點投影至一維空間上時,PCA會選擇2軸,這使得原本很容易區分的兩簇點被揉雜在一起變得無法區分;而這時若選擇1軸將會得到很好的區分結果。

Discriminant Analysis所追求的目標與PCA不同,不是希望保持數據最多的信息,而是希望數據在降維后能夠很容易地被區分開來。后面會介紹LDA的方法,是另一種常見的線性降維方法。另外一些非線性的降維方法利用數據點的局部性質,也可以做到比較好地區分結果,例如LLE,Laplacian Eigenmap等。以后會介紹。

LDA

Linear Discriminant Analysis(也有叫做Fisher Linear Discriminant)是一種有監督的(supervised)線性降維算法。與PCA保持數據信息不同,LDA是為了使得降維后的數據點盡可能地容易被區分!

假設原始數據表示為X,(m*n矩陣,m是維度,n是sample的數量)

既然是線性的,那么就是希望找到映射向量a, 使得 a‘X后的數據點能夠保持以下兩種性質:

1、同類的數據點盡可能的接近(within class)

2、不同類的數據點盡可能的分開(between class)

所以呢還是上次PCA用的這張圖,如果圖中兩堆點是兩類的話,那么我們就希望他們能夠投影到軸1去(PCA結果為軸2),這樣在一維空間中也是很容易區分的。

接下來是推導,因為這里寫公式很不方便,我就引用Deng Cai老師的一個ppt中的一小段圖片了:

思路還是非常清楚的,目標函數就是最后一行J(a),μ(一飄)就是映射后的中心用來評估類間距,s(一瓢)就是映射后的點與中心的距離之和用來評估類內距。J(a)正好就是從上述兩個性質演化出來的。

因此兩類情況下:

加上a’a=1的條件(類似于PCA)

可以拓展成多類:

以上公式推導可以具體參考pattern classification書中的相應章節,講fisher discirminant的

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

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

線性降維算法我想最重要的就是PCA和LDA了,后面還會介紹一些非線性的方法。

局部線性嵌入(LLE)

Locally linear embedding(LLE)[1] 是一種非線性降維算法,它能夠使降維后的數據較好地保持原有流形結構。LLE可以說是流形學習方法最經典的工作之一。很多后續的流形學習、降維方法都與LLE有密切聯系。

見圖1,使用LLE將三維數據(b)映射到二維(c)之后,映射后的數據仍能保持原有的數據流形(紅色的點互相接近,藍色的也互相接近),說明LLE有效地保持了數據原有的流行結構。

但是LLE在有些情況下也并不適用,如果數據分布在整個封閉的球面上,LLE則不能將它映射到二維空間,且不能保持原有的數據流形。那么我們在處理數據中,首先假設數據不是分布在閉合的球面或者橢球面上。

圖1 LLE降維算法使用實例

LLE算法認為每一個數據點都可以由其近鄰點的線性加權組合構造得到。算法的主要步驟分為三步:

(1)尋找每個樣本點的k個近鄰點;

(2)由每個樣本點的近鄰點計算出該樣本點的局部重建權值矩陣;

(3)由該樣本點的局部重建權值矩陣和其近鄰點計算出該樣本點的輸出值。具體的算法流程如 ? ? ? ? ? ? ?圖2所示:

圖2

圖 2 LLE算法步驟

Laplacian Eigenmaps 拉普拉斯特征映射

繼續寫一點經典的降維算法,前面介紹了PCA,LDA,LLE,這里講一講Laplacian Eigenmaps。其實不是說每一個算法都比前面的好,而是每一個算法都是從不同角度去看問題,因此解決問題的思路是不一樣的。這些降維算法的思想都很簡單,卻在有些方面很有效。這些方法事實上是后面一些新的算法的思路來源。

Laplacian Eigenmaps[1] 看問題的角度和LLE有些相似,也是用局部的角度去構建數據之間的關系。

它的直觀思想是希望相互間有關系的點(在圖中相連的點)在降維后的空間中盡可能的靠近。Laplacian Eigenmaps可以反映出數據內在的流形結構。

使用時算法具體步驟為:

步驟1:構建圖

使用某一種方法來將所有的點構建成一個圖,例如使用KNN算法,將每個點最近的K個點連上邊。K是一個預先設定的值。

步驟2:確定權重

確定點與點之間的權重大小,例如選用熱核函數來確定,如果點i和點j相連,那么它們關系的權重設定為:

使用最小的m個非零特征值對應的特征向量作為降維后的結果輸出。

前面提到過,Laplacian Eigenmap具有區分數據點的特性,可以從下面的例子看出:

圖1 Laplacian Eigenmap實驗結果

見圖1所示,左邊的圖表示有兩類數據點(數據是圖片),中間圖表示采用Laplacian Eigenmap降維后每個數據點在二維空間中的位置,右邊的圖表示采用PCA并取前兩個主要方向投影后的結果,可以清楚地看到,在此分類問題上,Laplacian Eigenmap的結果明顯優于PCA。

圖2 roll數據的降維

圖2說明的是,高維數據(圖中3D)也有可能是具有低維的內在屬性的(圖中roll實際上是2D的),但是這個低維不是原來坐標表示,例如如果要保持局部關系,藍色和下面黃色是完全不相關的,但是如果只用任何2D或者3D的距離來描述都是不準確的。

下面三個圖是Laplacian Eigenmap在不同參數下的展開結果(降維到2D),可以看到,似乎是要把整個帶子拉平了。于是藍色和黃色差的比較遠。

文章出處:http://blog.csdn.net/xbinworld?viewmode=contents

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,488評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,034評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,327評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,554評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,337評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,883評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,975評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,114評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,625評論 1 332
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,555評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,737評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,244評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,973評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,362評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,615評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,343評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,699評論 2 370

推薦閱讀更多精彩內容