熱線電話:13121318867

登錄
首頁精彩閱讀探索可視化高維數據之如何有效使用t-SNE?
探索可視化高維數據之如何有效使用t-SNE?
2019-10-21
收藏
探索可視化高維數據之如何有效使用t-SNE?

作者 | IAN JOHNSON

編譯 | CDA數據分析師

How to Use t-SNE Effectively

盡管對于可視化高維數據非常有用,但t-SNE圖有時可能是神秘的或誤導性的。通過探索它在簡單情況下的行為方式,我們可以學習如何更有效地使用它。

一種用于探索高維數據的流行方法是在2008年由t-SNE引入的 van der Maaten和Hinton]。該技術在機器學習領域已經變得普遍,因為它具有幾乎神奇的能力,可以從具有數百甚至數千維度的數據創建引人注目的雙維“地圖”。雖然令人印象深刻,但這些圖像很容易被誤讀。本說明的目的是防止一些常見的誤讀。

我們將通過一系列簡單的例子來說明t-SNE圖可以和不可以顯示什么。t-SNE技術確實很有用 - 但前提是你知道如何解釋它。

在潛入之前:如果您之前沒有遇到過t-SNE,那么您需要了解它背后的數學知識。目標是在高維空間中獲取一組點,并在較低維空間(通常是2D平面)中找到這些點的忠實表示。該算法是非線性的,并且適應底層數據,在不同區域上執行不同的變換。這些差異可能是混亂的主要原因。

探索可視化高維數據之如何有效使用t-SNE?

t-SNE的第二個特征是可調參數,“困惑”,它(松散地)說明如何在數據的本地和全局方面之間平衡注意力。在某種意義上,該參數是關于每個點具有的近鄰的數量的猜測。困惑值對得到的圖像具有復雜的影響。原始論文說:“SNE的表現對于困惑的變化是相當強大的,典型的值在5到50之間?!钡@個故事比那更加微妙。從t-SNE中獲取最大收益可能意味著分析具有不同困惑的多個圖。

這不是復雜的結束。例如,t-SNE算法并不總是在連續運行中產生類似的輸出,并且存在與優化過程相關的附加超參數。

1.那些超參數真的很重要

讓我們從t-SNE的“hello world”開始:兩個廣泛分離的集群的數據集。為了使事情盡可能簡單,我們將考慮2D平面中的聚類,如左圖所示。(為清楚起見,兩個簇是彩色編碼的。)右邊的圖顯示了五個不同的困惑值的t-SNE圖。

探索可視化高維數據之如何有效使用t-SNE?

由van der Maaten和Hinton建議的范圍(5 - 50)中的困惑值,圖表確實顯示了這些簇,盡管形狀非常不同。在這個范圍之外,事情變得有點奇怪。由于困惑2,局部變化占主導地位。具有合并的簇的困惑圖像100示出了陷阱:為了使算法正確地操作,困惑確實應該小于點的數量。否則,實現可能會產生意外行為。

上面的每個圖都是5000次迭代,學習率(通常稱為“epsilon”)為10,并且已經達到了步驟5,000的穩定點。這些價值觀有多大區別?根據我們的經驗,最重要的是迭代直到達到穩定的配置。

探索可視化高維數據之如何有效使用t-SNE?

上面的圖像顯示了困惑30的五個不同的運行。前四個在穩定之前停止。在10,20,60和120步之后,您可以看到具有看似群集的一維甚至點狀圖像的布局。如果你看到一個奇怪的“捏”形狀的t-SNE圖,那么這個過程很可能太早停止了。不幸的是,沒有固定數量的步驟可以產生穩定的結果。不同的數據集可能需要不同的迭代次數才能收斂。

另一個自然的問題是,具有相同超參數的不同運行是否產生相同的結果。在這個簡單的雙集群示例中,以及我們討論的大多數其他示例中,多次運行給出了相同的全局形狀。但是,某些數據集在不同的運行中會產生明顯不同的圖表; 我們稍后會給出一個例子。

從現在開始,除非另有說明,否則我們將顯示5,000次迭代的結果。這通常足以在本文的(相對較小的)例子中收斂。然而,我們會繼續表現出一系列的困惑,因為這似乎在每種情況下都會產生很大的不同。

2. t-SNE圖中的簇大小沒有任何意義

到現在為止還挺好。但是如果這兩個集群有不同的標準偏差,那么大小不同呢?(按尺寸,我們指的是邊界框測量值,而不是點數。)下面是平面中高斯混合物的t-SNE圖,其中一個是另一個的10倍。

探索可視化高維數據之如何有效使用t-SNE?

令人驚訝的是,這兩個簇在t-SNE圖中看起來大小相同。這是怎么回事?t-SNE算法使其“距離”概念適應數據集中的區域密度變化。結果,它自然地擴展了密集的集群,并且收縮了稀疏集群,使集群大小縮小。需要明確的是,這與任何降維技術都會扭曲距離的普通事實不同。(畢竟,在這個例子中,所有數據都是二維的開始。)相反,密度均衡是通過設計發生的,并且是t-SNE的可預測特征。

然而,底線是你無法在t-SNE圖中看到聚類的相對大小。

3.集群之間的距離可能沒有任何意義

集群之間的距離怎么樣?下圖顯示了三個高斯分別為50分,一對分別是另一對的5倍。

探索可視化高維數據之如何有效使用t-SNE?

在困惑50時,該圖給出了對全局幾何的良好感覺。對于較低的茫然值,群集看起來是等距的。當困惑度為100時,我們看到全局幾何結構很好,但其中一個集群看起來錯誤地比其他集群小得多。由于困惑50在這個例子中給了我們一個好的畫面,如果我們想看到全局幾何,我們是否總能將困惑設置為50?

可悲的是沒有。如果我們為每個群集添加更多點,則必須增加困難以進行補償。以下是三個高斯群集的t-SNE圖,每個群集有200個點,而不是50個?,F在沒有一個試驗困惑度值給出了良好的結果。

探索可視化高維數據之如何有效使用t-SNE?

看到全球幾何需要微調困惑是個壞消息。真實世界的數據可能會有多個具有不同數量元素的集群??赡軟]有一個困惑值可以捕獲所有集群的距離 - 遺憾的是,困惑是一個全局參數。解決這個問題可能是未來研究的一個有趣領域。

基本信息是t-SNE圖中分離良好的簇之間的距離可能沒有任何意義。

4.隨機噪聲并不總是隨機的。

一個經典的陷阱是認為你看到的是真正隨機數據的模式。當你看到它時,識別噪音是一項關鍵技能,但要建立正確的直覺需要時間。關于t-SNE的一個棘手的事情是,它拋出了很多現有的直覺。下圖顯示了真實的隨機數據,從100維的單位高斯分布中抽取了500個點。左圖是前兩個坐標上的投影。

探索可視化高維數據之如何有效使用t-SNE?

困惑2的情節似乎表現出戲劇性的集群。如果你正在調整困惑以在數據中顯示結構,你可能會認為你已經中了大獎。

當然,因為我們知道點云是隨機生成的,所以它沒有統計上有意義的集群:那些“團塊”沒有意義。如果回顧前面的例子,低茫然度值通常會導致這種分布。將這些團塊識別為隨機噪聲是讀取t-SNE圖的重要部分。

不過有其他一些有趣的東西,這可能是t-SNE的勝利。起初,困惑30的情節根本看起來不像高斯分布:云的不同區域之間只存在微小的密度差異,并且這些點看起來可疑地均勻分布。事實上,這些特征是關于高維正態分布的有用的東西,它們非常接近球體上的均勻分布:均勻分布,點之間的間距大致相等。從這個角度來看,t-SNE圖比任何線性投影都準確。

5.你有時可以看到一些形狀

數據以完全對稱的方式分發很少見。讓我們看一下50維的軸對齊高斯分布,其中坐標i的標準偏差是1 / i。也就是說,我們正在研究一個長橢圓形的點云。

探索可視化高維數據之如何有效使用t-SNE?

對于足夠高的困惑值,細長的形狀易于閱讀。另一方面,在低度困惑的情況下,局部效應和無意義的“聚集”成為焦點。更加極端的形狀也會出現,但同樣只有正確的困惑。例如,這里是兩個75個點的集群,每個集群在2D中,以平行線排列,帶有一點噪聲。

探索可視化高維數據之如何有效使用t-SNE?

對于一定程度的困惑,長簇看起來接近正確,這是令人放心的。

然而,即使在最好的情況下,也存在一種微妙的失真:在t-SNE圖中線條略微向外彎曲。原因在于,像往常一樣,t-SNE傾向于擴展更密集的數據區域。由于群集的中間周圍的空白空間少于末端,因此算法會放大它們。

6.對于拓撲,您可能需要多個繪圖

有時您可以從t-SNE圖中讀取拓撲信息,但這通常需要多個困惑的視圖。最簡單的拓撲屬性之一是遏制。下圖顯示了50維空間中的兩組75個點。兩者都是從以原點為中心的對稱高斯分布中采樣的,但其中一個比另一個分散50倍?!靶 狈植紝嶋H上包含在大的分布中。

探索可視化高維數據之如何有效使用t-SNE?

困惑30視圖正確地顯示了基本拓撲,但是t-SNE再次大大夸大了較小點組的大小。在困惑50時,有一種新現象:外部群體變成一個圓圈,因為情節試圖描繪其所有點與內部群體的距離大致相同的事實。如果你單獨看這個圖像,很容易將這些外點誤讀為一維結構。

更復雜的拓撲類型呢?對于數學家而言,這可能是實際數據分析師的主題,但有時在野外會發現有趣的低維結構。

考慮一組在三維中跟蹤鏈接或結的點。再一次,查看多個困惑值可以得到最完整的圖像。低茫然度值給出兩個完全獨立的循環; 高點表現出一種全球連通性。

探索可視化高維數據之如何有效使用t-SNE?

三葉結是多次運行如何影響t-SNE結果的一個有趣例子。以下是困惑2視圖的五次運行。

該算法在圓上結算兩次,至少保留了固有拓撲。但在三次運行中,最終會有三種不同的解決方案引入人工休息。使用點顏色作為指導,您可以看到第一次和第三次運行相距很遠。

探索可視化高維數據之如何有效使用t-SNE?

然而,在困惑50處運行五次,得到(直到對稱性)在視覺上相同的結果。顯然,有些問題比其他問題更容易優化。

探索可視化高維數據之如何有效使用t-SNE?

結論

有一個原因是t-SNE變得如此受歡迎:它非常靈活,并且經??梢哉业狡渌?a href='/map/jiangwei/' style='color:#000;font-size:inherit;'>降維算法無法實現的結構。不幸的是,這種靈活性使解釋變得棘手。在用戶看不到的情況下,該算法進行各種調整以整理其可視化。但是,不要讓隱藏的“魔法”讓你遠離整個技術。好消息是,通過研究t-SNE在簡單情況下的行為方式,可以對正在發生的事情形成直覺。

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢