tSNE—高維數據降維可視化(理論部分)

t-SNE是一種降維方法,PCA主成分分析、LDA等屬於線性降維,t-SNE屬於非線性降維,是一種流形學習方法(Manifold Learning)。


如圖所示的曲面上,兩點之間的歐式距離爲紅色虛線所示,藍色實線爲兩點之間的測地線距離,第二張圖爲KNN圖,展開後如第三張圖所示。兩點之間的最短距離爲藍色實線所示,但實際應用中,真實最短距離較難獲得,一般通過構造KNN圖尋找最短路徑作爲近似。

構建二維空間k-d樹後,尋找k近鄰就不用計算某個點與其他所有點之間的距離了。例如尋找圖中紅點的k近鄰,只需要搜索當前子空間,同時不斷回溯搜索父節點的其他子空間,即可找到k近鄰點。

SNE(stochastic neighbor embedding)根本原理是:在高維空間相似的數據點,映射到低維空間距離也是相似的。通常使用歐式距離來描述這種相似性,而SNE把這種距離關係轉換爲一種條件概率來表示相似性。高維空間中的兩個數據點xi和xj,xi以條件概率Pj|i選擇xj作爲它的鄰近點。考慮以xi爲中心點的高斯分佈,若xj越靠近xi,則Pj|i越大。反之若兩者相距較遠,則Pj|i極小。因此我們可以這樣定義Pj|i。


其中σi表示以xi爲中心點的高斯分佈的方差。由於我們只關心不同點對之間的相似度,所以設定Pi|i=0。

當我們把數據映射到低維空間後,高維數據點之間的相似性也應該在低維空間的數據點上體現出來。這裏同樣用條件概率的形式描述,假設高維數據點xi和xj在低維空間的映射點分別爲yi和yj。類似的,低維空間中的條件概率用qj|i表示,並將所有高斯分佈的方差均設定爲1/sqrt(2),所以有:

若yi和yj真實反映了高維數據點xi和xj之間的關係,那麼條件概率pj|i與qj|i應該完全相等。這裏我們只考慮了xi與xj之間的條件概率,若考慮xi與其他所有點之間的條件概率,則可構成一個條件概率分佈Pi,同理在低維空間存在一個條件概率分佈Qi且應該與Pi一致。如何衡量兩個分佈之間的相似性?當然是用經典的KL距離(Kullback-Leibler Divergence),SNE最終目標就是對所有數據點最小化這個KL距離,我們可以使用梯度下降算法最小化如下代價函數:


http://bindog.github.io/blog/2016/06/04/from-sne-to-tsne-to-largevis/#top

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章