機器學習(三十二)——t-SNE, Adaboost
阿新 • • 發佈:2018-12-10
t-SNE(續)
SNE
在介紹t-SNE之前,我們首先介紹一下SNE(Stochastic Neighbor Embedding)的原理。
假設我們有資料集X,它共有N個數據點。每一個數據點的維度為D,我們希望降低為d維。在一般用於視覺化的條件下,d的取值為 2,即在平面上表示出所有資料。
SNE將資料點間的歐幾里德距離轉化為條件概率來表徵相似性:
如果以資料點在為中心的高斯分佈所佔的概率密度為標準選擇近鄰,那麼 就代表將選擇作為它的近鄰。對於相近的資料點,條件概率是相對較高的,然而對於分離的資料點,幾乎是無窮小量(若高斯分佈的方差選擇合理)。
現在引入矩陣Y,Y是N*2階矩陣,即輸入矩陣X的2維表徵。基於矩陣Y,我們可以構建一個分佈q,其形式與p類似。
對於高維資料點和在低維空間中的對映點和,計算一個相似的條件概率是可以實現的。我們將計算條件概率中用到的高斯分佈的方差設定為1/2。因此我們可以對對映的低維資料點和之間的相似度進行建模:
我們的總體目標是選擇Y中的一個數據點,然後其令條件概率分佈q近似於p。這一步可以通過最小化兩個分佈之間的KL散度而實現,這一過程可以定義為:
這裡的表示了給定點下,其他所有資料點的條件概率分佈。需要注意的是KL散度具有不對稱性,在低維對映中不同的距離對應的懲罰權重是不同的,具體來說:距離較遠的兩個點來表達距離較近的兩個點會產生更大的cost,相反,用較近的兩個點來表達較遠的兩個點產生的cost相對較小(注意:類似於迴歸容易受異常值影響,但效果相反)。即用較小的 來建模較大的