机器学习算法:UMAP 深入理解
導(dǎo)讀
降維是機(jī)器學(xué)習(xí)從業(yè)者可視化和理解大型高維數(shù)據(jù)集的常用方法。最廣泛使用的可視化技術(shù)之一是 t-SNE,但它的性能受到數(shù)據(jù)集規(guī)模的影響,并且正確使用它可能需要一定學(xué)習(xí)成本。
UMAP 是 McInnes 等人開發(fā)的新算法。與t-SNE相比,它具有許多優(yōu)勢,最顯著的是提高了計算速度并更好地保留了數(shù)據(jù)的全局結(jié)構(gòu)。在本文中,我們將了解UMAP背后的理論,以便更好地了解該算法的工作原理、如何正確有效地使用它,以及與t-SNE進(jìn)行比較,它的性能如何。
那么,UMAP帶來了什么?最重要的是,UMAP速度很快,在數(shù)據(jù)集大小和維度方面都可以很好地擴(kuò)展。例如,UMAP可以在不到 3 分鐘的時間內(nèi)降維 784 維、70,000 點(diǎn)的 MNIST 數(shù)據(jù)集,而 scikit-learn 的t-SNE需要 45 分鐘。此外,UMAP傾向于更好地保留數(shù)據(jù)的全局結(jié)構(gòu)。這可以歸因于UMAP強(qiáng)大的理論基礎(chǔ),使得算法能夠更好地在強(qiáng)調(diào)局部結(jié)構(gòu)與全局結(jié)構(gòu)之間取得平衡。
1. UMAP vs t-SNE
在深入探討UMAP背后的理論之前,讓我們看一下它在現(xiàn)實(shí)世界的高維數(shù)據(jù)上的表現(xiàn)。下面的圖片顯示了使用UMAP和t-SNE將 784 維 Fashion MNIST 數(shù)據(jù)集的子集降維到 3 維上的情況。請注意每個不同類別的聚類程度(局部結(jié)構(gòu)),而相似的類別(例如涼鞋、運(yùn)動鞋和踝靴)傾向于聚集(全局結(jié)構(gòu))。
雖然這兩種算法都表現(xiàn)出強(qiáng)大的局部聚類,并將相似的類別聚集在一起,但UMAP 更清楚地將這些相似類別的組彼此分開。值得注意的是,計算時間,UMAP需要 4 分鐘,而多核t-SNE需要 27 分鐘。
2. 理論
UMAP的核心與t-SNE非常相似,兩者都使用圖形布局(graph layout)算法在低維空間中排列數(shù)據(jù)。簡單來說,UMAP首先構(gòu)建數(shù)據(jù)的高維圖表示,然后優(yōu)化低維圖以使其在結(jié)構(gòu)上盡可能相似。雖然UMAP用于構(gòu)建高維圖的數(shù)學(xué)是復(fù)雜的,但背后的想法是非常簡單的。
為了構(gòu)建初始的高維圖,UMAP構(gòu)建了一個叫做fuzzy simplicial complex的東西。這實(shí)際上只是加權(quán)圖的表示,邊權(quán)重表示兩個點(diǎn)連接的可能性。為了確定連通性,UMAP從每個點(diǎn)向外擴(kuò)展一個半徑,當(dāng)這些半徑重疊時連接點(diǎn)。這個半徑的選擇很關(guān)鍵:太小會導(dǎo)致小而孤立的集群,太大會將所有東西全連接在一起。UMAP根據(jù)到每個點(diǎn)的第 n 個最近鄰點(diǎn)的距離在本地選擇半徑來克服這個困難。UMAP然后通過隨著半徑的增長降低連接的可能性來使圖形fuzzy。最后,通過規(guī)定每個點(diǎn)必須至少連接到其最近的鄰居,UMAP確保局部結(jié)構(gòu)與全局結(jié)構(gòu)保持平衡。
一旦構(gòu)建了高維圖,UMAP就會優(yōu)化低維模擬的布局,使其盡可能相似。這個過程與t-SNE基本相同,但使用了一些技巧來加速該過程。
有效使用UMAP的關(guān)鍵在于理解初始高維圖的構(gòu)造。盡管該過程背后的想法非常直觀,但該算法依賴于一些高級數(shù)學(xué)來為該圖實(shí)際表示數(shù)據(jù)的程度提供強(qiáng)有力的理論保證。有興趣的讀者可以在:深入了解UMAP理論。
3. 參數(shù)
通過理解UMAP背后的理論后,理解算法的參數(shù)變得容易得多,尤其是與t-SNE中的perplexity參數(shù)相比。我們將考慮兩個最常用的參數(shù):n_neighbors 和 min_dist,它們有效地用于控制最終降維結(jié)果中局部和全局結(jié)構(gòu)之間的平衡。
- n_neighbors
最重要的參數(shù)是n_neighbors,用于構(gòu)造初始高維圖的近似最近鄰的數(shù)量。它有效地控制UMAP如何平衡局部結(jié)構(gòu)與全局結(jié)構(gòu) :較小的值將通過限制在分析高維數(shù)據(jù)時考慮的相鄰點(diǎn)的數(shù)量來推動UMAP更多地關(guān)注局部結(jié)構(gòu),而較大的值將推動UMAP代表全局結(jié)構(gòu),同時失去了細(xì)節(jié)。
- min_dist
我們將研究的第二個參數(shù)是 min_dist,即低維空間中點(diǎn)之間的最小距離。此參數(shù)控制UMAP將點(diǎn)聚集在一起的緊密程度,較低的值會導(dǎo)致嵌入更緊密。較大的 min_dist值將使UMAP將點(diǎn)更松散地打包在一起,而是專注于保留廣泛的拓?fù)浣Y(jié)構(gòu)。
下面的可視化,探索了UMAP參數(shù)對 3D 數(shù)據(jù)的 2D 投影的影響。通過更改 n_neighbors和min_dist參數(shù),您可以探索它們對生成投影的影響。
雖然UMAP的大多數(shù)應(yīng)用都涉及高維數(shù)據(jù)的投影,但 3D 的投影可以作為一個有用的類比來理解UMAP如何根據(jù)其參數(shù)優(yōu)先考慮全局結(jié)構(gòu)和局部結(jié)構(gòu)。隨著n_neighbors的增加,UMAP在構(gòu)建高維數(shù)據(jù)的圖表示時連接的相鄰點(diǎn)越來越多,從而導(dǎo)致更準(zhǔn)確地反映數(shù)據(jù)的全局結(jié)構(gòu)的投影。在非常低的值下,任何全局結(jié)構(gòu)的信息都幾乎完全丟失。隨著min_dist參數(shù)的增加,UMAP傾向于“散開”投影點(diǎn),導(dǎo)致數(shù)據(jù)的聚類減少,對全局結(jié)構(gòu)的重視程度降低。
4. UMAP vs t-SNE 2.0
與t-SNE相比,UMAP的輸出最大的區(qū)別在于局部結(jié)構(gòu)和全局結(jié)構(gòu)之間的平衡,UMAP 通常更擅長在最終投影中保留全局結(jié)構(gòu)。這意味著簇間的關(guān)系可能比 t-SNE更有意義。重要的是,因為UMAP和t-SNE在投影到低維時都必然會扭曲數(shù)據(jù)的高維形狀,所以任何給定的軸或較低維度的距離仍然不能用 PCA 等技術(shù)直接解釋。
回到 3D 猛犸象的例子,我們可以很容易地看到兩種算法輸出之間的一些巨大差異。對于較低的perplexity參數(shù)值,t-SNE傾向于“展開”投影數(shù)據(jù),而很少保留全局結(jié)構(gòu)。相比之下,UMAP傾向于將高維結(jié)構(gòu)的相鄰部分在低維中組合在一起,這反映了全局結(jié)構(gòu)。注意,使用t-SNE需要極高的perplexity(~1000)才能開始看到全局結(jié)構(gòu),并且在如此大的perplexity值下,計算時間顯著延長。同樣值得注意的是,每次運(yùn)行的t-SNE投影差異很大,不同的高維數(shù)據(jù)被投影到不同的位置。雖然UMAP也是一種隨機(jī)算法,但令人驚訝的是,每次運(yùn)行和使用不同參數(shù)時,生成的投影是十分相似的。
值得注意的是,t-SNE和UMAP在早期圖中的玩具示例上的表現(xiàn)非常相似,除了下面的示例例外。有趣的是,UMAP無法分離兩個嵌套集群,尤其是在高維時。
該算法未能處理這種包含的情況可能是由于UMAP在初始圖形構(gòu)造中使用的是局部距離。由于高維點(diǎn)之間的距離往往非常相似(維度災(zāi)難),UMAP似乎將內(nèi)部集群的外部點(diǎn)與外部集群的外部點(diǎn)連接起來。這實(shí)際上將兩個集群混合在一起。
5. 理解
雖然UMAP提供了許多優(yōu)于t-SNE的優(yōu)勢,但它絕不是靈丹妙藥,閱讀和理解其結(jié)果需要小心謹(jǐn)慎。
選擇好的超參數(shù)并不容易,并且取決于數(shù)據(jù)和目標(biāo)。這是UMAP速度的一大優(yōu)勢所在,通過使用各種超參數(shù)多次運(yùn)行UMAP,您可以更好地了解投影如何受其參數(shù)影響。
就像在t-SNE中一樣,簇相對于彼此的大小本質(zhì)上是沒有意義的。這是因為UMAP使用局部距離概念來構(gòu)建其高維圖形表示。
同樣,集群之間的距離可能毫無意義。雖然確實(shí)在UMAP中更好地保留了集群的全局位置,但它們之間的距離沒有意義。同樣,這是由于在構(gòu)建圖形時使用了局部距離。
尤其是在n_neighbors值較低時,可以觀察到虛假聚類。
由于UMAP算法是隨機(jī)的,因此使用相同超參數(shù)的不同運(yùn)行可能會產(chǎn)生不同的結(jié)果。此外,由于超參數(shù)的選擇非常重要,因此使用各種超參數(shù)多次運(yùn)行投影可能非常有用。
總結(jié)
UMAP是數(shù)據(jù)科學(xué)家武器庫中非常強(qiáng)大的工具,與t-SNE相比具有許多優(yōu)勢。雖然UMAP和 t-SNE 的輸出有些相似,但速度的提高、全局結(jié)構(gòu)的更好保存和更易于理解的參數(shù)使UMAP成為可視化高維數(shù)據(jù)的更有效工具。最后,重要的是要記住,沒有任何降維技術(shù)是完美的,UMAP也不例外。然而,通過建立對算法工作原理的直觀理解以及如何調(diào)整其參數(shù),我們可以更有效地使用這個強(qiáng)大的工具來可視化和理解大型高維數(shù)據(jù)集。
本文由mdnice多平臺發(fā)布
總結(jié)
以上是生活随笔為你收集整理的机器学习算法:UMAP 深入理解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Intel+Nvidia双显卡笔记本Li
- 下一篇: 三国群英传服务器端架设修改,三国群英传O