久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

使用t-SNE算法進(jìn)行可視化

 生信修煉手冊 2021-04-12
t-SNE全稱如下

t-Distributed Stochastic Neighbor Emdedding

是一種非線性的降維算法,常用于將數(shù)據(jù)降維到二維或者三維空間進(jìn)行可視化,,來觀察數(shù)據(jù)的結(jié)構(gòu),。

在MDS算法中,降維的基本思想是保持高維和低維空間樣本點(diǎn)的距離不變,,而t-SNE由SNE算法延伸而來,,基本思想是保持降維前后概率分布不變?;诟呔S分布來構(gòu)建概率

首先看下SNE算法,,初始高維空間下兩個(gè)樣本點(diǎn)的條件概率如下

這個(gè)公式是用某個(gè)事件的概率除以所有事件的概率得出的,類似下圖

降維到低維空間之后,,兩個(gè)樣本點(diǎn)的條件概率如下

和高維空間相比,,直接將低維空間高斯分布的方差指定為高維空間方差的1/√2。構(gòu)建好兩個(gè)概率分布之后,,通過引入KL散度來衡量兩個(gè)分布之間的差異,。

KL散度又叫做相對(duì)熵,通過真實(shí)分布和理論分布之間熵的差異來衡量兩個(gè)分布之間的差異,,公式如下

其中p(x)表示真實(shí)的概率分布,,q(x)表示理論的概率分布,在SNE算法中,,對(duì)應(yīng)的目標(biāo)函數(shù)如下

對(duì)于該目標(biāo)函數(shù)而言,,由于KL函數(shù)是非對(duì)稱函數(shù),,低維空間的不同距離會(huì)導(dǎo)致不同的權(quán)重,比如p為0.8,q為0.2, 對(duì)應(yīng)的損失為

而當(dāng)p為0.2,,q為0.8時(shí),,cost為-0.277, 差別很大。 在求解的過程中,,首先需要解決的問題就是每個(gè)樣本對(duì)應(yīng)的方差的設(shè)值問題,,在SNE中,通過困惑度這個(gè)超參數(shù)來幫助尋找最佳的方差,,困惑度的公式如下

其中H指的是樣本對(duì)應(yīng)的熵

通過給定一個(gè)具體的困惑度數(shù)值,,通過二分查找的方式來尋找一個(gè)最佳的方差值,通常困惑度的范圍為5-50,。

另外,,在尋找目標(biāo)函數(shù)最小值的過程中,通過梯度下降法來解決問題,,目標(biāo)函數(shù)的梯度如下

在梯度下降的過程中,,為了加速優(yōu)化和避免陷入局部最優(yōu)解,在梯度更新的公式中,,需要引入之前梯度累加的指數(shù)衰減項(xiàng),,具體的公式如下

綜合來看,SNE的目標(biāo)函數(shù)本身存在權(quán)重問題,,而且求解過程中,,超參數(shù)很多,,需要多次優(yōu)化,,比較復(fù)雜。為了克服SNE的這些問題,,t-SNE被提出,,其區(qū)別于SNE的地方主要是以下兩點(diǎn)

1.使用對(duì)稱的SNE

2.低維空間下使用t分布替代高斯分布

t-SNE中目標(biāo)函數(shù)如下

用聯(lián)合概率來替代了條件概率,從而將目標(biāo)函數(shù)轉(zhuǎn)換為一個(gè)對(duì)稱函數(shù),。另外,,低維空間的概率基于t分布來計(jì)算,公式如下

對(duì)于t-SNE算法而言,,其梯度公式如下

使用t-SNE之后,,解決了目標(biāo)函數(shù)的非對(duì)稱問題,而且t分布的處理相比高斯分布更具實(shí)際意義,,如下圖所示

橫軸為距離,,縱軸為相似度,對(duì)于較大相似度的點(diǎn),,在t分布中對(duì)應(yīng)的距離更小,,對(duì)于相似度較小的點(diǎn),,在t分布中對(duì)應(yīng)的距離更長。對(duì)應(yīng)到低維之后的樣本點(diǎn),,就是同一簇內(nèi)的點(diǎn)更緊密,,不同簇之間的點(diǎn)更疏遠(yuǎn),非常符合我們的需求,。

在scikit-learn中,,使用t-SNE算法的代碼如下

>>> import numpy as np
>>> from sklearn.manifold import TSNE
>>> X = np.array([[0, 0, 0], [0, 1, 1], [1, 0, 1], [1, 1, 1]])
>>> X_embedded = TSNE(n_components=2).fit_transform(X)
>>> X_embedded.shape
(4, 2)
t-SNE算法由于沒有顯示的預(yù)估部分,不能用于集合數(shù)據(jù)的直接降維,,所以主要用于可視化,,將數(shù)據(jù)降維到2維或者3維空間進(jìn)行可視化。而且由于算法是隨機(jī)的,,需要多次試驗(yàn)選擇合適的超參數(shù),,同時(shí)算法的復(fù)雜度較高,計(jì)算時(shí)間更久,。
·end·

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請遵守用戶 評(píng)論公約

    類似文章 更多