在大困惑度條件下tSNE降級為PCA

在大困惑度條件下tSNE降級為PCA

在大困惑度條件下tSNE降級為PCA

本文試圖以一種簡單的方式來解釋一些在生物信息學和計算生物學中使用的神秘分析技術。將詳細介紹使用高困惑度的tSNE時會出現一些陷阱,例如將非線性tSNE轉換為線性PCA尺寸縮減。



為什麼要使用具有大困惑度的tSNE

隨著數據集規模的增長,例如在scRNAseq領域中,處理成千上萬甚至數百萬個細胞幾乎是一種常規,在大型數據集上使用超出建議範圍(5到50)的大困惑度的tSNE變得越來越多。的確,在大型數據集上使用默認的困惑度可能不會提供足夠的信息,因為它經常導致數據點的聚集程度降低,這在一些出版物中已經顯示出來,在這裡也可以看到很好的討論。

在大困惑度條件下tSNE降級為PCA

較小的困惑度度值不允許解析數據結構

即使對於行為良好的MNIST基準數據集,小困惑度和大困惑度之間的區別也很明顯:更大的困惑度導致tSNE降維圖中的群集更加明顯。

在大困惑度條件下tSNE降級為PCA

當增加tSNE困惑度度值時,MNIST手寫數字圖像簇變得更加清晰

隨著數據集規模的增長,這一點變得越來越重要。您可能想在大型數據集上使用tSNE增加困惑度度值的第二個原因是tSNE可能存在的長期假設。在大的複雜度下保留更多的全局數據結構,以這種方式可以與UMAP進行比較。為了演示這一點,讓我們模擬3個2D數據點的高斯Blob(每個1000點):兩個Blob彼此靠近而遠離第三個。

現在,我們將嘗試重建運行tSNE的原始數據,並使用不同的困惑度度值:10、30、100和1000。


在大困惑度條件下tSNE降級為PCA

在這裡,我們可以做兩個重要的觀察:首先,在較低的困惑度度值10甚至30時,數據結構並不明顯,的確,如果我不給這些點著色,甚至很難猜測我們在tSNE中看到了多少個斑點由於數據點似乎形成了10個和30個困惑度點,因此為了解決這三個簇,我們需要將困惑度度值增加到100,其次,注意困惑度度等於10、30和100。儘管我們知道它們中的兩個應該放置在一起並與第三個分開,但這三個集群似乎是等距的。只有當我們將困惑度度增加到1000時,才能獲得正確的集群相對位置(全局數據結構),這遠遠超出了5至50之間的建議值。在那裡,大的困惑度限制對於從scRNAseq數據上的tSNE圖生物學解釋細胞群體的緊密度至關重要。



tSNE在很大的困惑度下類似於PCA

現在,在我們意識到tSNE的大困惑度極限的重要性之後,讓我們在World Map數據集的二維線性流形(3023點)上評估tSNE在大困惑度下。

在大困惑度條件下tSNE降級為PCA

使用tSNE和大困惑度值重建的2D世界地圖數據集

在這裡,我們可以看到tSNE錯誤地將南美置於非洲和北美之間,其困惑度度為500和1000,但是,當困惑度度達到2000時,我們幾乎可以完美地重建原始的世界地圖數據集,其中各大洲之間的所有相對距離似乎要很好地保存,這似乎令人放心,這表明如果要使用tSNE在數據中保留更多的全局結構,僅增加增加困惑度度值就足夠了。我們將原始的線性2D世界地圖數據集投影到非線性流形(例如球體)上,這樣我們就模擬了將大洲映射到球體表面的3D地球。讓我們在tSNE上運行具有較大困惑度度的值非線性3D地球/球體數據集並將其輸出與PCA和UMAP進行比較。此外,我們還將2D數據集投影到其他著名的非線性流形上,例如S形曲面和Swis 滾動運行PCA和tSNE / UMAP時,會感到非常困惑度/ n_neighbor。請注意,tSNE和UMAP均已通過PCA進行了初始化。

在大困惑度條件下tSNE降級為PCA

PCA,tSNE / UMAP處於極大的困惑度中/世界地圖上的n_neighbor投影到Sphere,S形和Swiss Roll

在這裡,我們觀察到了PCA圖和tSNE圖之間的顯著相似之處。發生了什麼?由於3D非線性流形(球體,S形和Swiss Roll)的內部維數仍然是2,因此人們希望一種合適的降維方法能夠恢復PCA未能實現此目的的直覺是PCA通過仿射變換(例如旋轉,翻轉,平移,拉伸等)搜索數據中變化最大的軸。但是,通過旋轉非線性流形並不會找到一個可以正確捕獲感興趣的變化的軸,該軸是世界地圖中各大洲的位置,相反,PCA揭示的螺旋,S曲線和圓確實捕獲了大部分可變化的軸。可以理解為什麼PCA在非線性流形上失敗,但是tSNE為什麼沒有更好的表現呢?這對於將世界地圖嵌入到非線性3D中並不是唯一的但是,即使在性能良好的基準MNIST數據集上也可以檢測到該特徵,即大困惑度度值等於500和3000的tSNE圖類似於PCA圖。


在大困惑度條件下tSNE降級為PCA

在非常大的tSNE困惑度度值下,MNIST手寫數字簇變得不那麼明顯

這是怎麼回事?tSNE難道不應該像本節開頭顯示的2D線性世界地圖在困惑度度= 2000時發生的那樣,使用正確保留的全局結構來重構原始數據嗎?查看tSNE算法的內部,並意識到由於梯度下降中梯度的消失,tSNE退化為PCA。



在大困惑度中檢查tSNE的梯度

為了瞭解tSNE在很大的困惑度下會發生什麼,我們需要回顧一下tSNE基於以下四個方程式,有關tSNE的優缺點的更多信息,請參閱我的文章:


在大困惑度條件下tSNE降級為PCA

並檢查一些重要的概念,例如數據的成對歐幾里德距離分佈,sigma值的分佈,在某個距離處找到數據點的高維概率的分佈,低維概率的分佈,最後是KL散度的梯度值的分佈。

可悲的是,所有這些度量標準都不容易從tSNE的當前實現中提取,我們需要檢查KL散度的梯度是否在大的困惑度中消失,因為這將意味著tSNE中的梯度下降在用PCA初始化後永遠不會正確開始。


在大困惑度條件下tSNE降級為PCA

原則上,研究scikitlearn的tSNE代碼,我們可以找到函數_joint_probabilities和_kl_divergence,它們可以提供以下信息:


在大困惑度條件下tSNE降級為PCA

在這裡,我們可以看到隨著困惑度參數的增加,KL梯度下降到幾乎為零。對於將來的更全面的信息,從頭開始實現tSNE是有意義的。下面的代碼以數字方式再現了scikitlearn tSNE實現的輸出但更緊湊,希望可以理解。


在大困惑度條件下tSNE降級為PCA

在大困惑度條件下tSNE降級為PCA

從頭開始編程tSNE的好處是我們可以提取所需的任何信息,例如在不同的困惑度度值下KL梯度的演變,我們可以立即看到KL梯度在很大的困惑度度下迅速下降到零。嵌入的座標停止更新,而我們最終只得到初始化時的座標。


在大困惑度條件下tSNE降級為PCA

因此,如果我們使用PCA初始化tSNE並增加困惑度度,則有可能以PCA圖而不是以tSNE結尾。請注意,為簡單起見,我使用術語PCA,儘管更正確的說法是tSNE降級為多維標度(MDS)圖.PCA和MDS在許多方面都相似,我將PCA(不是MDS)稱為更流行和已知的技術。

但是,為什麼KL梯度在大的困惑度中消失了呢?仔細觀察一下,發現P和Q之間有一個有趣的相互作用,即在一定距離處觀察數據點的高維和低維概率。複雜性,即P / Q接近1,並且從等式4開始,KL梯度消失,tSNE惡化。


在大困惑度條件下tSNE降級為PCA

用草率的表示法,回想起tSNE有一個重要的超參數,即早期誇張,它是高維概率P的倍增因子,可以將tSNE惡化條件記為:

在大困惑度條件下tSNE降級為PCA

其中alpha是早期誇張,N是樣本大小,sigma與困惑度有關,X和Y是高維和低維數據點之間的平均歐幾里得距離。上面的方程式連接了tSNE的最重要的超參數,除了對於在大困惑度下滿足P = Q條件的學習速率而言,這無關緊要。

總結

在本文中,我們瞭解到,需要在大型數據集上使用tSNE增加複雜度值,以便獲得更多不同的簇並保留數據中的更多全局結構,這對於生物學解釋不同簇之間的距離變得很重要但是,當KL梯度消失時,增加的困惑度度可能導致非線性tSNE降級到線性PCA / MDS尺寸減小,因此該算法永遠無法正常啟動。這有時會被錯誤地解釋為“原始圖像的完美重建”如果在線性數據上運行tSNE,但是在非線性數據上以較大的困惑度運行tSNE時,顯然會出錯。



分享到:


相關文章: