機器學習 t SNE演算法原理

2021-09-17 18:13:04 字數 1968 閱讀 3629

目錄

1. sen原理

2 t-sen

2.1  symmetric sne

2.2 crowing 問題

2.3 t-sne

2.4 演算法過程

2.5 不足

基本原理: 是通放射變換  將資料點對映到概率分布上,分為兩個步驟:

t-sne是非監督的降維,跟kmeans 等不同,他不能通過訓練得到一些東西後再用於其他資料(kmeans 可以通過訓練得到k個點,再用於其他資料集,而t-sne 只能單獨多資料做操作。

原理推導: sne 是先將歐幾里得距離轉化為條件概率來表達點與點之間的相似度,具體來說,給定n個高 維的資料,(n 不是維度)。首先是計算概率pij,正比於xi和xj 之間的相似度,

這裡的引數

同樣qi|i=0。

如果降維效果比較好,區域性特徵保留完整,那麼

kl 散度具有不對稱性,在低維對映中不同距離對應的懲罰權重是不同的。具體來說是: 距離較遠的兩個點來表達距離較近的兩個點會產生更大的cost,距離較近的兩個點來表達距離較遠的兩個點產生的cost 相對較小。例如

sne 很難優化,存在crowing 問題 (擁擠) 不同點: 使用對稱的sne,簡化梯度公式,低維空間下,使用更重長尾分布的t 分布替代高斯分布代表兩點之間的相似度。來避免擁擠問題。

優化pi|j 和qi|j 的kl散度的替換思路是使用聯合概率分布來替換條件概率分布,即p是高維空間中各個點的聯合概率分布,q是低維空間下的,目標函式為

這裡1的pii和qii都為0,這種sne稱為symmetric sne,因為他假設了對於任意i,pij =pji,qij=**i,因此概率分布可以改寫為:

這種方法會引入異常值的問題,比如xi 是異常值,那麼||xi-xj||2 會很大,對應的所有的j,pij 都會很小,導致低維對映下yi對cost的影響很小。為了解決這個問題,會將聯合概率分布做乙個修正。

各個簇聚在一起,無法區分,比如高維資料在降維到10維下,會有很好的表達,但是降維到2維後,無法得到可信對映。

如何解決: 用sight repulsion的方法

對稱sne時間上在高維度下,另一種減輕擁擠問題的方法: 在高維空間下使用高斯分布將距離轉換為概率分布,在低維空間下,使用t 分布將距離轉換為概率分布,使得高維度下中低等的距離在對映後能夠有個較大的距離。

t 分布受異常值影響更小,擬合介個更為合理,較好的捕獲了資料的整體特徵。

t-sne 的梯度更新有兩大優勢:

對於不相似的點,用乙個較小的距離會產生較大的梯度來讓這些點排斥開來。

這種排斥又不會無限大(梯度中分母) ,避免不相似的點距離太遠。

data: x=x1,....xn

計算cost function 的引數

優化引數: 設定迭代次數t,學習速率n,動量

目標結果是低維資料表示,yt=y1,...,yn 

開始優化:

計算給定perp 下的條件概率,pj|i

令pij=(pj|i +pi|j)/2n

用n(0,10-4i) 隨機初始化y

迭代,從t=1 到t,做如下的操作:

計算低維度下的qij ,計算梯度,更新yt

結束1 主要用於視覺化,

2 傾向與儲存區域性特徵

3 沒有唯一最優解

4 訓練很慢

t SNE學習筆記

拜讀了這位大神的筆記,有些一開始不太明白的地方,寫個筆記記下來。1.1基本原理 sne是通過仿射 affinitie 變換將資料點對映到概率分布上,主要包括兩個步驟 sne構建乙個高維物件之間的概率分布,使得相似的物件有更高的概率被選擇,而不相似的物件有較低的概率被選擇。sne在低維空間裡在構建這些...

機器學習 KNN演算法原理

k近鄰 k nearst neighbors,knn 是一種基本的機器學習演算法,所謂k近鄰,就是k個最近的鄰居的意思,說的是每個樣本都可以用它最接近的k個鄰居來代表。比如 判斷乙個人的人品,只需要觀察與他來往最密切的幾個人的人品好壞就可以得出,即 近朱者赤,近墨者黑 knn演算法既可以應用於分類應...

機器學習常用演算法原理梳理

adaboost gbdt xgboost lightgbm原理梳理與辨析 首先,這四個演算法都是整合演算法boosting框架下的。根據boosting策略不同可以分為兩大類,adaboost一類,gbdt xgboost lightgbm一類。3 gbdt 4 xgboost 5 lightgb...