可視化的降維是否應該被視為一個“封閉”問題,由 t-SNE 解決?
我讀了很多關於-sne 降維算法。我對“經典”數據集的表現印象深刻,比如 MNIST,它實現了數字的清晰分離(參見原始文章):
我還用它來可視化我正在訓練的神經網絡學習的特徵,我對結果非常滿意。
所以,據我了解:
-sne 在大多數數據集上都有很好的結果,並且有一個非常有效的實現 - 使用 Barnes-Hut 近似方法。那麼,我們是否可以說“降維”問題,至少為了創建良好的 2D/3D 可視化,現在是一個“封閉”問題?
我知道這是一個相當大膽的聲明。我有興趣了解這種方法的潛在“陷阱”是什麼。也就是說,有沒有我們知道它沒有用的情況?此外,該領域的“開放”問題是什麼?
當然不。
我同意 t-SNE 是一種了不起的算法,效果非常好,這在當時是一個真正的突破。然而:
- 它確實有嚴重的缺點;
- 一些缺點必須是可以解決的;
- 已經有一些算法在某些情況下表現得更好;
- 許多 t-SNE 的特性仍然知之甚少。
有人鏈接到這個非常流行的關於 t-SNE 的一些缺點的帳戶:https ://distill.pub/2016/misread-tsne/ (+1),但它只討論了非常簡單的玩具數據集,我發現它不對應非常好地解決了在實際數據中使用 t-SNE 和相關算法時所面臨的問題。例如:
- t-SNE 經常無法保留數據集的全局結構;
- 當 t-SNE 出現“過度擁擠”時增長超過~100k;
- Barnes-Hut 運行時對於大型.
我將在下面簡要討論所有三個。
- t-SNE 通常無法保留數據集的全局結構。
考慮一下來自艾倫研究所(小鼠皮層細胞)的單細胞 RNA-seq 數據集:http: //celltypes.brain-map.org/rnaseq/mouse。它有大約 23k 個細胞。我們先驗地知道這個數據集有很多有意義的層次結構,這通過層次聚類得到證實。有神經元和非神經細胞(神經膠質細胞、星形膠質細胞等)。在神經元中,有興奮性和抑制性神經元——兩個非常不同的組。在例如抑制性神經元中,有幾個主要組:表達Pvalb、表達SSt、表達VIP。在這些組中的任何一個中,似乎都有多個進一步的集群。這反映在層次聚類樹中。但這裡是 t-SNE,取自上面的鏈接:
非神經細胞呈灰色/棕色/黑色。興奮性神經元呈藍色/藍綠色/綠色。抑制性神經元呈橙色/紅色/紫色。人們會希望這些主要群體粘在一起,但這不會發生:一旦 t-SNE 將一個群體分成幾個集群,它們最終可能會被任意定位。數據集的層次結構丟失。
我認為這應該是一個可以解決的問題,但我不知道有什麼好的原則性發展,儘管最近在這個方向上做了一些工作(包括我自己的)。 2. 當 t-SNE 出現“過度擁擠”時增長超過~100k
t-SNE 在 MNIST 數據上效果很好。但是考慮一下(取自這篇論文):
擁有 100 萬個數據點,所有集群都聚集在一起(確切原因還不是很清楚),唯一已知的平衡方法是使用一些骯髒的 hack,如上所示。我從經驗中知道,其他類似的大型數據集也會發生這種情況。
可以說,通過 MNIST 本身(N=70k)可以看到這一點。看一看:
右邊是 t-SNE。左邊是UMAP ,一種正在積極開發中的令人興奮的新方法,它與舊的largeVis非常相似。UMAP/largeVis 將集群拉得更遠。恕我直言,其確切原因尚不清楚;我想說這裡還有很多東西要理解,可能還有很多需要改進的地方。 3. Barnes-Hut 運行時對於大型
香草 t-SNE 無法用於超過~10k。直到最近,標準解決方案是 Barnes-Hut t-SNE,但是對於接近 100 萬,它變得非常緩慢。這是 UMAP 的一大賣點,但實際上最近的一篇論文提出了FFT 加速 t-SNE (FIt-SNE),它的工作速度比 Barnes-Hut t-SNE 快得多,並且至少與 UMAP 一樣快。我建議大家從現在開始使用這個實現。
所以這可能不再是一個開放的問題,但它直到最近才出現,我想在運行時還有進一步改進的空間。因此,工作當然可以繼續朝這個方向發展。