【深度学习】数据降维方法总结
引言:
機器學習領域中所謂的降維就是指采用某種映射方法,將原高維空間中的數據點映射到低維度的空間中。降維的本質是學習一個映射函數 f : x->y,其中x是原始數據點的表達,目前最多使用向量表達形式。 y是數據點映射后的低維向量表達,通常y的維度小于x的維度(當然提高維度也是可以的)。f可能是顯式的或隱式的、線性的或非線性的。
目前大部分降維算法處理向量表達的數據,也有一些降維算法處理高階張量表達的數據。之所以使用降維后的數據表示是因為:①在原始的高維空間中,包含有冗余信息以及噪音信息,在實際應用例如圖像識別中造成了誤差,降低了準確率;而通過降維,我們希望減少冗余信息所造成的誤差,提高識別(或其他應用)的精度。?②又或者希望通過降維算法來尋找數據內部的本質結構特征。
在很多算法中,降維算法成為了數據預處理的一部分,如PCA。事實上,有一些算法如果沒有降維預處理,其實是很難得到很好的效果的。
-
數據降維的目的
數據降維,直觀地好處是維度降低了,便于計算和可視化,其更深層次的意義在于有效信息的提取綜合及無用信息的擯棄。
-
數據降維的方法
主要的方法是線性映射和非線性映射方法兩大類。
一、線性映射
線性映射方法的代表方法有:PCA(Principal Component Analysis),LDA(Discriminant Analysis)
1.1 ?主成分分析算法(PCA)
主成分分析(PCA) 是最常用的線性降維方法,它的目標是通過某種線性投影,將高維的數據映射到低維的空間中表示,并期望在所投影的維度上數據的方差最大,以此使用較少的數據維度,同時保留住較多的原數據點的特性。?是將原空間變換到特征向量空間內,數學表示為AX = γX。
為什么要用協方差矩陣來特向分解呢??
協方差矩陣表征了變量之間的相關程度(維度之間關系)。?
對數據相關性矩陣的特向分解,意味著找到最能表征屬性相關性的特向(最能表征即誤差平方最小)。PCA一開始就沒打算對數據進行特向分解,而是對數據屬性的相關性進行分析,從而表示出最能代表屬性相關性的特向,然后將原始數據向這些特向上投影。所以,有的地方說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軸將會得到很好的區分結果。
PCA優缺點:
優點:1.最小誤差 2.提取了主要信息
缺點:PCA將所有的樣本(特征向量集合)作為一個整體對待,去尋找一個均方誤差最小意義下的最優線性映射投影,而忽略了類別屬性,而它所忽略的投影方向有可能剛好包含了重要的可分性信息。
1.2 線性判別分析(LDA)
判別分析(Discriminant Analysis) 所追求的目標與PCA不同,不是希望保持數據最多的信息,而是希望數據在降維后能夠很容易地被區分開來。后面會介紹LDA的方法,是另一 種常見的線性降維方法。另外一些非線性的降維方法利用數據點的局部性質,也可以做到比較好地區分結果,例如LLE,Laplacian Eigenmap等。以后會介紹。
LDA是一種有監督的(supervised)線性降維算法。與PCA保持數據信息不同,核心思想:往線性判別超平面的法向量上投影,是的區分度最大(高內聚,低耦合)。LDA是為了使得降維后的數據點盡可能地容易被區分!
假設原始數據表示為X,(m*n矩陣,m是維度,n是sample的數量)
既然是線性的,那么就是希望找到映射向量a, 使得 a‘X后的數據點能夠保持以下兩種性質:
1、同類的數據點盡可能的接近(within class)
2、不同類的數據點盡可能的分開(between class)
所以呢還是上次PCA用的這張圖,如果圖中兩堆點是兩類的話,那么我們就希望他們能夠投影到軸1去(PCA結果為軸2),這樣在一維空間中也是很容易區分的。
?PCA與LDA的區別:
主成分分析(Principal Component Analysis,PCA)可以找擁有最大方差的那個軸。雖然這樣的轉換是從最佳重建角度考慮的,但是他沒有把標簽問題考慮進去。想象一個情況,對于圖片分類樣本而言,如果變化是基于外部來源,比如光照。軸的最大方差不一定包含任何有鑒別性的信息,因此此時的分類是不可能的。而線性判別分析(Linear Discriminant Analysis,LDA)的特定類投影方法被提出來解決人臉識別問題。其中一個基本的想法就是,使類內方差最小的同時,使類外方差最大。二、非線性映射
非線性映射方法的代表方法有:核方法(核+線性),二維化和張量化(二維+線性),流形學習(ISOMap,LLE,LPP)
2.1 ?基于核的非線性降維
代表方法有:KPCA,KFDA。?
KPCA的基本思想:通過Kernel trick將PCA投影的過程通過內積的形式表達出來。將高維向量?(x)與對應特向β?(x)與對應特向β的內積轉換成低維的核函數表示。?
2.2 ?流形學習
流形學習的主要算法有:ISOMap(等距映射)、LE(拉普拉斯特征映射)、LLE(局部線性嵌入)。?
流形:直線或者曲線是一維流形,平面或者曲面是二維流形,更高維之后是多維流形。一個流形好比是?d?維的空間,是一個?m?維空間(m>n)被扭曲之后的空間。流形并不是一個“形狀”,而是一個“空間”?
流形學習的假設:數據采樣于某一流形上。
2.2.1 ?ISOMap(等距特征映射)
ISOMap是一種非迭代的全局優化算法。ISOMap對MDS(Multidimensional Scaling-多維尺度分析)進行改造,用測地線距離(曲線距離)作為空間中兩點距離,原來是用歐氏距離,從而將位于某維流形上的數據映射到一個歐氏空間上。?
ISOMap將數據點連接起來構成一個鄰接Graph來離散地近似原來流形,而測地距離則相應地通過Graph上的最短路徑來近似了。?
比如:我們將球體曲面映射到二維平面上。?
此博客寫得通俗易懂:http://blog.pluskid.org/?p=533?
幾點注意:?
1)ISOMap適用的流形:適合于內部平坦的低維流形,不適合于學習有較大內在曲率的流形。?
2)近鄰數的選擇:近鄰數應足夠大以便能夠減少在路徑長度和真實測地距離之間的不同,但要小到能夠預防“短路”現象。?
3)所構造圖的連通性:要求所構造的圖示連通的,否則有兩種處理辦法,一種是放寬臨界點選擇的限制,另一種是對于每一連通部分分別使用ISOMap算法,得到不同部分的降維結果。?
數據到底是否分布于一個流形上?這是個暫時難以回答的問題。?
MDS是一種降維方法,它在降維時使得降維之后的兩點間的歐氏距離盡量保持不變(用歐氏距離矩陣來表示高維向量的兩兩之間的相似度,尋找同樣數量的映射維度的向量,使得映射維度下兩兩間距離約等于原高維下兩兩間距離,變為了優化問題)。維基百科對MDS的介紹https://en.wikipedia.org/wiki/Multidimensional_scaling
2.2.2 ?LLE(局部線性嵌入)
前提假設:數據沒有形成一個封閉的超曲面,局部數據點是線性的。?
LLE(Locally Linear Embedding-局部線性嵌入)是一種非線性降維算法,它能夠使降維后的數據較好地保持原有?流形結構?。LLE用局部線性反映全局的非線性的算法,并能夠使降維的數據保持原有數據的拓撲結構。(在流形上使用局部線性,并用有限局部樣本的互相線性表示,得到幾何特性的構造權重矩陣,在低維下找到滿足高維時樣本間構造權重的樣本集)?
使用LLE將三維數據(b)映射到二維(c)之后,映射后的數據仍能保持原有的數據流形(紅色的點互相接近,藍色的也互相接近),說明LLE有效地保持了數據原有的流行結構。
但是LLE在有些情況下也并不適用,如果數據分布在整個封閉的球面上,LLE則不能將它映射到二維空間,且不能保持原有的數據流形。那么我們在處理數據中,首先假設數據不是分布在閉合的球面或者橢球面上。
LLE算法認為每一個數據點都可以由其近鄰點的線性加權組合構造得到。算法的主要步驟分為三步:
LLE詳細步驟如下:?
1.計算或者尋找數據點xi的臨近數據點。?
假設數據局部為平面,故可以用線性組合表示xi,其誤差為:?
其中wij表示線性重構xi時的貢獻比例。?
找到每個樣本點的K個最近鄰點。?
2.計算構造權重并重構數據?
通過約束計算wij,使得不在該樣本點的K個最近鄰點中的構造權重都為0.?
重構權重使得重構的數據點與臨近點間的旋轉、縮放、平移特性保持不變,即幾何特性不依賴于特定的參考框架。?
3.由重構樣本向低維映射。(求低維嵌入)?
設zz是低維空間,找到同樣數量的低維映射樣本,使得:?
最小。(不去關心?,直接找zi)?
流形學習優缺點:?
優點:1)假設流形的存在,部分解決了高維數據分布的問題。?
缺點:1)假設流形的存在,不能總是適合數據特點。
三、小結
降維方法?__ 屬性選擇:過濾法、包裝法、嵌入法;?
?|_ 映射方法? __線性映射方法:PCA、FDA等?
|__非線性映射方法:?
|__核方法:KPCA、KFDA等?
|__二維化:?
|__流形學習:ISOMap、LLE、LPP等。?
|__其他方法:神經網絡和聚類?
?
降維可以方便數據可視化+數據分析+數據壓縮+數據提取等。?
各個降維方法效果圖展示:?
轉載于:https://www.cnblogs.com/guoyaohua/p/8855636.html
總結
以上是生活随笔為你收集整理的【深度学习】数据降维方法总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Git + Maven + Jenkin
- 下一篇: 五周第四次课(4月23日)