機器學習之無監(jiān)督學習:八大降維方法
之前我們總結了機器學習中常用的幾種回歸算法和分類算法。都屬于機器學習監(jiān)督學習算法。
今天,和大家分享一下機器學習之無監(jiān)督學習中的常見的降維方法。
我們可以怎樣發(fā)現一個數據集的底層結構?我們可以怎樣最有用地對其進行歸納和分組?我們可以怎樣以一種壓縮格式有效地表征數據?這都是無監(jiān)督學習的目標,之所以稱之為「無監(jiān)督」,是因為這是從無標簽的數據開始學習的。
降維看上去很像壓縮。這是為了在盡可能保存相關的結構的同時降低數據的復雜度。如果你有一張簡單的 128×128×3 像素的圖像(長×寬×RGB 值),那么數據就有 49152 維。如果你可以給這個圖像空間降維,同時又不毀掉圖像中太多有意義的內容,那么你就很好地執(zhí)行了降維。
降維是一種常見的無監(jiān)督學習任務,其目標是將高維數據映射到低維空間,以減少數據的特征維度,同時保留數據的關鍵結構和信息。通過降維,可以簡化數據表示、減少存儲空間、降低計算復雜度,并幫助可視化和數據理解。
降維方法的選擇取決于數據的性質、任務需求和算法的適用性。以下是一些常見的降維方法:
- 主成分分析(PCA)
- 獨立成分分析(ICA)
算法 t 分布-隨機鄰近嵌入(t-SNE) 線性判別分析(LDA) - 奇異值分解(SVD)
- 局部線性嵌入(LLE)
- 多維縮放(MDS)
- 等度量映射(Isomap)
1、主成分分析(PCA)
對于降維問題來說,目前最流行最常用的算法是一個叫做主成分分析法(Principal Components Analysis,PCA) 的算法,它可以用來做降維操作,也可以用來實現數據壓縮。
PCA 是一種統計分析、簡化數據集的方法。它利用正交變換來對一系列可能相關的變量的觀測值進行線性變換,從而投影為一系列線性不相關變量的值,這些不相關變量稱為主成分(Principal Components)。
具體地,主成分可以看做一個線性方程,其包含一系列線性系數來指示投影方向。PCA 對原始數據的正則化或預處理敏感(相對縮放)。
基本思想
(1)將坐標軸中心移到數據的中心,然后旋轉坐標軸,使得數據在 C1 軸上的方差最大,即全部 n 個數據個體在該方向上的投影最為分散。意味著更多的信息被保留下來。C1 成為第一主成分。
(2)C2 第二主成分:找一個 C2,使得 C2 與 C1 的協方差(相關系數)為 0,以免與 C1 信息重疊,并且使數據在該方向的方差盡量最大。
(3)以此類推,找到第三主成分,第四主成分……第 p 個主成分。p 個隨機變量可以有 p 個主成分。
主成分分析經常用于減少數據集的維數,同時保留數據集當中對方差貢獻最大的特征。這是通過保留低維主成分,忽略高維主成分做到的。這樣低維成分往往能夠保留住數據的最重要部分。
2、獨立成分分析(ICA)算法
獨立成分分析(Independent Component Analysis, ICA)算法是一種基于統計學的降維算法,其目的是從多個隨機變量的混合信號中恢復出獨立的原始信號,即通過對數據進行線性變換,使得變換后的數據各個分量間盡可能地獨立。ICA 算法常用于信號處理、圖像處理、語音識別、腦電圖分析等領域。
ICA 和 PCA 的區(qū)別:
(1)PCA 是降維并提取不相關屬性,而 ICA 是降維并提取相互獨立的屬性(不相關不一定獨立,獨立一定不相關。不相關是指沒有線性關系,獨立是指沒有任何關系)。
(2)PCA 是提取出最能表示原始事物的特征,而 ICA 是使每個分量最大化獨立,便于發(fā)現隱藏因素
(3)PCA 的適用環(huán)境是數據為高斯分布,而 ICA 不適用于高斯分布的數據。
ICA算法的應用
ICA算法在信號處理、圖像處理、語音識別等領域有廣泛應用。以音頻信號處理為例,ICA可以將多個聲音信號混合在一起的信號分離開來。在語音識別領域,ICA可以將不同說話人的語音信號分離開來,方便后續(xù)的處理。
3、t 分布-隨機鄰近嵌入(t-SNE)
t-SNE(t-distributed stochastic neighbor embedding)算法是一種非線性降維算法,可以用于高維數據的可視化和聚類分析。t-SNE 算法通過將高維空間中的數據點映射到低維空間(通常是二維或三維空間)中,保留數據點之間的相對距離和分布,從而使得高維數據的結構更加清晰可見。
t-SNE 算法的主要思想是通過 t 分布來描述低維空間中的點之間的相對距離,而通過高斯分布來描述高維空間中的點之間的相對距離。t-SNE 算法通過優(yōu)化 t 分布和高斯分布之間的 KL 散度來得到低維空間中的數據點位置。具體來說,算法首先隨機初始化低維空間中的點的位置,然后通過梯度下降來最小化高維空間中數據點之間的相對距離與低維空間中數據點之間的相對距離之間的KL散度,從而得到最終的低維表示。
t-SNE 算法的流程如下:
1.計算高維空間中的相對距離矩陣;
2.通過高斯分布來描述高維空間中的點之間的相對距離;
3.計算低維空間中的相對距離矩陣;
4.通過 t 分布來描述低維空間中的點之間的相對距離;
5.通過梯度下降來最小化高維空間中數據點之間的相對距離與低維空間中數據點之間的相對距離之間的KL散度;
6.重復第 5 步直至滿足收斂條件,得到最終的低維表示。
t-SNE 算法的應用
t-SNE 算法可以用于可視化高維數據,以便更好地理解數據之間的關系。下面的示例將展示如何使用 t-SNE 算法可視化手寫數字數據集 MNIST 中的圖像。
4、線性判別分析(LDA)
線性判別分析(Linear Discriminant Analysis, LDA) 也是一種常用的線性降維方法,它與 PCA 不同的是,LDA 考慮了樣本的類別信息。LDA 試圖在降維的過程中保留類別之間的差異,以找到更具有判別性的特征。因此,LDA 在分類問題中特別有用。
LDA 的思想可以用一句話概括,就是“投影后類內方差最小,類間方差最大”。通俗理解就是:將數據在低維度上進行投影,投影后希望每一種類別數據的投影點盡可能的接近,而不同類別的數據的類別中心之間的距離盡可能的大。
之所以稱為線性判別分析,其實是因為其最早用在分類當中:判別分析是尋找一種“分類規(guī)則”,即利用變量的函數(判別函數)來描述(解釋)兩組或多組之間的區(qū)別。
5、奇異值分解(SVD)
在 2006 年,Netflix 曾經舉辦了一個獎金為 100 萬美元的推薦系統算法比賽,最后的獲獎者就使用了矩陣分解中的明星:奇異值分解(Singular-Value Decomposition,簡稱SVD)。SVD 被廣泛應用在推薦系統、圖像處理等領域,是一種數據降維的經典方法。
奇異值分解是將矩陣分解為奇異向量和奇異值。通過奇異值分解,我們會得到一些與特征分解相同類型的信息。然而,奇異值分解有更廣泛的應用。每一個實數矩陣都有一個奇異值分解,但不一定都有特征分解(例如非方陣矩陣)。
6、局部線性嵌入(LLE)
局部線性嵌入(Locally linear embedding,LLE)是一種非線性降維算法,它能夠使降維后的數據較好地保持原有 流形結構 。LLE 可以說是流形學習方法最經典的工作之一。很多后續(xù)的流形學習、降維方法都與 LLE 有密切聯系。
LLE 是非常重要的降維方法。和傳統的 PCA,LDA 等關注樣本方差的降維方法相比,LLE 關注于降維時保持樣本局部的線性特征,由于 LLE 在降維時保持了樣本的局部特征,它廣泛的用于圖像圖像識別,高維數據可視化等領域。
一個形象的流形降維過程如下圖。我們有一塊卷起來的布,我們希望將其展開到一個二維平面,我們希望展開后的布能夠在局部保持布結構的特征,其實也就是將其展開的過程,就像兩個人將其拉開一樣。
7、多維縮放(MDS)
多維縮放(Multiple Dimensional Scaling,簡稱 MDS)是一種經典的降維方法,要求原始空間中樣本之間的距離在低維空間中得以保持。
多維縮放,即對一組對象之間的距離或差異的視覺表示?!皩ο蟆笨梢允穷伾?,面孔,地圖坐標,各種真實存在的事物。除了將不同之處解釋為圖上的距離之外,MDS還可以作為高維數據的降維技術。簡而言之。MDS 的主要目的是將這些差異保持在降維中。
MDS 算法思想很簡單,一句話就是保持樣本在原空間和低維空間的距離不變。
8、等度量映射(Isomap)
Isomap(等度量映射)是在 MDS 算法的基礎上衍生出的一種非迭代的全局優(yōu)化算法,它是一種等距映射算法,也就是說降維后的點,兩兩之間距離不變,這個距離是測地距離。
Isomap 方法是假設顯示情況中非線性數據的分布位于內嵌歐式距離的流形體上,其中的關鍵在于數據點之間的距離用測地線距離來代替歐氏距離。
Isomap)的基本觀點同 MDS 較為類似,即從高維數據中找到任意兩個樣本點之間的“測地距離”,通過映射實現在低維空間中“測地距離”近似保持不變。
與 MDS 不同的是,MDS 計算的是歐氏距離,而 Isomap 計算的是“測地距離”。
如上圖,“測地距離”即A中沿曲實線的兩點之間的距離,歐氏距離即如A中虛直線的兩點之間的直線距離。B圖即A的近鄰圖,C圖即B圖的低維映射結果,C圖中紅線為它的“測地距離”而藍線則為歐氏距離。
很明顯,Isomap中計算“測地距離”是非常重要的一步。如何計算“測地距離”呢?
我們可以利用流形在局部上與歐氏空間同胚這個性質,對每個點基于歐氏距離找出近鄰點,然后建立一個近鄰圖。于是計算兩點之間測地距離的問題就變成了計算近鄰圖上兩點之間的最短路徑問題。而計算最短路徑可以使用 Dijkstra 算法或 Floyd 算法。得到任意兩點的距離之后就可以通過 MDS 算法來獲得樣本點在低維空間中的坐標。