引言
本期由來自哈工大的同樣熱愛科普的潮汐之子為我們帶來t-SNE的全方位普及师坎,作者的研究方向?yàn)樽匀徽Z言處理恕酸。
說明
本文目的是做成一個(gè)60分鐘t-SNE閃電入門簡介,可能無法詳細(xì)講解原理胯陋,學(xué)術(shù)帝還請閱讀原論文蕊温,或請移步我的另一篇博文,里面多了一些論文筆記遏乔,相關(guān)鏈接:
https://psubnwell.github.io/2017/12/01/paper-note-t-sne/
基礎(chǔ)篇
認(rèn)識高維空間:維數(shù)災(zāi)難
維數(shù)災(zāi)難(curse of dimensionality):描述的是高維空間中若干迥異于低維空間义矛、甚至反直覺的現(xiàn)象。該現(xiàn)象的詳細(xì)論述可以閱讀參考文獻(xiàn)[1] 按灶,其中通過超立方體和其內(nèi)切球的推導(dǎo)十分精彩症革,這里不再贅述。
★高維空間中數(shù)據(jù)樣本極其稀疏鸯旁。需要維度幾何級數(shù)的數(shù)據(jù)才能滿足在高維空間密采樣(dense sample)噪矛。反過來,高維數(shù)據(jù)降維到低維空間也將發(fā)生“擁擠問題(Crowding Problem)[2]”
★高維單位空間中數(shù)據(jù)幾乎全部位于超立方體的邊緣铺罢。
幾何學(xué)能給出高維空間中超幾何體的體積艇挨,單位超立方體的體積為:
而其內(nèi)切超球體的體積公式如下:
對兩者商做極限可得:
因此可以說一個(gè)高維單元空間只有邊角,而沒有中心韭赘。數(shù)據(jù)也只能處于邊緣上缩滨,而遠(yuǎn)離中心。這樣就直接導(dǎo)致了下一個(gè)性質(zhì):
★歐氏距離失效(因此任何基于歐氏距離的算法也失效)泉瞻。
上圖描述的是高維空間中大距離和小距離的差異越來越不明顯:
這是由上一性質(zhì)自然推導(dǎo)出的結(jié)論脉漏。
降維
降維(dimension reduction)的基本作用:
★緩解維數(shù)災(zāi)難。即提高樣本密度袖牙,以及使基于歐氏距離的算法重新生效侧巨。
★數(shù)據(jù)預(yù)處理。對數(shù)據(jù)去冗余鞭达、降低信噪比司忱。
★方便可視化皇忿。
降維的概念中有兩對直覺性的概念會(huì)反復(fù)出現(xiàn):高維/低維空間、高維/低維數(shù)據(jù)坦仍。在文獻(xiàn)中他們有若干別稱[3]:
★高維空間(high-dimensional space)鳍烁,又叫原空間(original space)
★高維數(shù)據(jù)(low-dimensional data),也直接叫數(shù)據(jù)點(diǎn)(data points)繁扎,用于和下述的映射點(diǎn)對應(yīng)幔荒。
★低維空間(low-dimensional space),又叫嵌入空間(embedded space)锻离、低維映射(low-dimensional map铺峭,map在此做名詞用)等。
★低維數(shù)據(jù)(low-dimensional data)汽纠,又叫低維嵌入(low-dimensional embeddings)、低維表示(low-dimensional representations)傀履、映射點(diǎn)(map points)等虱朵。
嵌入(embedding):數(shù)學(xué)上,嵌入是指一個(gè)數(shù)學(xué)結(jié)構(gòu)經(jīng)映射包含在另一個(gè)結(jié)構(gòu)中钓账。
★NLP目前所使用的詞嵌入(word embedding)一詞的本意可能就是這個(gè)意思碴犬。最初所使用的詞向量是one-hot向量,維度等于詞表大邪鹉骸(約幾十萬)服协。后來采用分布式表示的詞向量侵佃,維度一般取幾百維蛉腌。因此我們認(rèn)為分布式表示的詞向量是更高維度語義空間的低維嵌入(embedding)。
★"Embed Everything况芒!" 嵌入的思想不僅可以用在詞(word)上唠椭,還能用于許多其他技術(shù)上跳纳。如知識圖譜中可以把原先的網(wǎng)絡(luò)結(jié)構(gòu)也做嵌入,有實(shí)體嵌入贪嫂、關(guān)系嵌入等寺庄。
降維技術(shù)可以分為線性和非線性兩大類:
★線性降維技術(shù)。側(cè)重讓不相似的點(diǎn)在低維表示中分開力崇。
①PCA(Principle Components Analysis斗塘,主成分分析)
②MDS(Multiple Dimensional Scaling,多維縮放)等
★非線性降維技術(shù)(廣義上“非線性降維技術(shù)”≈“流形學(xué)習(xí)”亮靴,狹義上后者是前者子集)馍盟。這類技術(shù)假設(shè)高維數(shù)據(jù)實(shí)際上處于一個(gè)比所處空間維度低的非線性流形上,因此側(cè)重讓相似的近鄰點(diǎn)在低維表示中靠近台猴。
①Sammon mapping
②SNE(Stochastic Neighbor Embedding朽合,隨機(jī)近鄰嵌入)俱两,t-SNE是基于SNE的。
③Isomap(Isometric Mapping曹步,等度量映射)
④MVU(Maximum Variance Unfolding)
⑤LLE(Locally Linear Embedding宪彩,局部線性嵌入)等
流形學(xué)習(xí)
流形(manifold):
★機(jī)器學(xué)習(xí)中指的流形指本征維度較低但嵌入在高維空間中的空間(a manifold haslow intrinsic dimensions, and is embedded within a space of much higher dimensionality[4] )。比如上圖中的S-curve數(shù)據(jù)集讲婚,本征維度=2(攤開來是一個(gè)二維空間)尿孔,但被嵌在三維空間中。
★數(shù)學(xué)中提到流形筹麸,強(qiáng)調(diào)其具有局部歐式空間的性質(zhì)活合,可以在局部應(yīng)用歐幾里得距離。但是在機(jī)器學(xué)習(xí)(流形學(xué)習(xí))中物赶,這個(gè)假設(shè)基本不成立白指。原因是高維空間由于維數(shù)災(zāi)難的存在,沒有足夠稠密的數(shù)據(jù)能在足夠小的局部去近似該流形[5] 酵紫。
★但是流形概念中局部的思想仍可以借鑒告嘲。它為降維提供了另一個(gè)視角:從微觀角度去探索高維數(shù)據(jù)結(jié)構(gòu)。
距離[6] :想象你是一只螞蟻奖地,在圖中的二維曲面流形上行走橄唬。
★高維直線距離:左圖黑線。這個(gè)距離沒有意義参歹!
★測地線距離:左圖紅線仰楚,右圖紅虛線。這個(gè)距離才有意義犬庇!
★近鄰距離:右圖黑折線僧界。用近鄰距離可以擬合測地線距離。
學(xué)習(xí):流形學(xué)習(xí)之所以叫學(xué)習(xí)械筛,因?yàn)樗幌馪CA一類的純線性代數(shù)降維方法捎泻,而是更像一個(gè)類似神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法。
★神經(jīng)網(wǎng)絡(luò)大部分是有監(jiān)督學(xué)習(xí)埋哟;流形學(xué)習(xí)大部分是無監(jiān)督學(xué)習(xí)笆豁。
★神經(jīng)網(wǎng)絡(luò)擬合一個(gè)分類函數(shù);流形學(xué)習(xí)(以t-SNE為例)擬合高維數(shù)據(jù)的分布赤赊。
★神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)參數(shù)闯狱;流形學(xué)習(xí)(以t-SNE為例)直接學(xué)習(xí)低維數(shù)據(jù)的表達(dá)。
★兩者均有損失函數(shù)抛计、梯度下降哄孤、迭代輪數(shù)等學(xué)習(xí)算法的特點(diǎn)。
學(xué)術(shù)篇
SNE
SNE(Stochastic Neighbor Embedding吹截,隨機(jī)近鄰嵌入)[7]
SNE兩個(gè)主要思路/步驟:
★將歐氏距離轉(zhuǎn)化為條件概率來表征點(diǎn)間相似度(pairwise similarity)瘦陈。
★使用梯度下降算法來使低維分布學(xué)習(xí)/擬合高維分布凝危。
給定高維空間的數(shù)據(jù)點(diǎn):
是以x_i自己為中心,以高斯分布選擇x_j作為近鄰點(diǎn)的條件概率:
注意:
1)對除i外其他所有j都計(jì)算一個(gè)條件概率后晨逝,形成一個(gè)概率分布列蛾默,所以分母需要?dú)w一化;
2)默認(rèn)p_(i|i)=0捉貌;
3)每不同數(shù)據(jù)點(diǎn)x_i有不同的σ_i支鸡,在此不展開。
同理趁窃,有低維空間的映射點(diǎn):
分別對應(yīng):
q_(j|i)是y_i以自己為中心牧挣,以高斯分布選擇y_j作為近鄰點(diǎn)的條件概率:
注意:這里方差統(tǒng)一取σ_i=1/√2,若方差取其他值醒陆,對結(jié)果影響僅僅是縮放而已瀑构。
SNE的目標(biāo)是讓低維分布去擬合高維分布,則目標(biāo)是令兩個(gè)分布一致统求。兩個(gè)分布的一致程度可以使用相對熵(Mutual entropy检碗,也叫做KL散度,Kullback-Leibler divergences码邻,KLD)來衡量,可以以此定義代價(jià)函數(shù)(cost function):
其中P_i (k=j)=p_(j|i) 和Q_i (k=j)=q_(j|i)是兩個(gè)分布列另假。
注意:KLD是不對稱的像屋!因?yàn)?KLD=plog(p/q),p>q時(shí)為正边篮,p<q時(shí)為負(fù)己莺。則如果高維數(shù)據(jù)相鄰而低維數(shù)據(jù)分開(即p大q小)戈轿,則cost很大凌受;相反,如果高維數(shù)據(jù)分開而低維數(shù)據(jù)相鄰(即p小q大)思杯,則cost很小胜蛉。所以SNE傾向于保留高維數(shù)據(jù)的局部結(jié)構(gòu)。
對C進(jìn)行梯度下降即可以學(xué)習(xí)到合適的y_i色乾。
梯度公式:
帶動(dòng)量的梯度更新公式:(這里給出單個(gè)y_i點(diǎn)的梯度下降公式誊册,顯然需要對所有:Y^(T)={y_1,y_2,...,y_n}進(jìn)行統(tǒng)一迭代。)
t-SNE
t-Distributed Stochastic Neighbor Embedding[8]
事實(shí)上SNE并沒有解決維度災(zāi)難帶來的若干問題:
★擁擠問題(Crowding Problem):在二維映射空間中暖璧,能容納(高維空間中的)中等距離間隔點(diǎn)的空間案怯,不會(huì)比能容納(高維空間中的)相近點(diǎn)的空間大太多[9]。
★換言之澎办,哪怕高維空間中離得較遠(yuǎn)的點(diǎn)嘲碱,在低維空間中留不出這么多空間來映射金砍。于是到最后高維空間中的點(diǎn),尤其是遠(yuǎn)距離和中等距離的點(diǎn)麦锯,在低維空間中統(tǒng)統(tǒng)被塞在了一起恕稠,這就叫做“擁擠問題(Crowding Problem)”。
★擁擠問題帶來的一個(gè)直接后果离咐,就是高維空間中分離的簇谱俭,在低維中被分的不明顯(但是可以分成一個(gè)個(gè)區(qū)塊)。比如用SNE去可視化MNIST數(shù)據(jù)集的結(jié)果如下:
如何解決宵蛀?高維空間保持高斯分布不變昆著,將低維空間的分布做調(diào)整,使得兩邊尾巴比高維空間的高斯分布更高术陶,即可緩解擁擠問題凑懂。想一想為什么?(在下面t-分布中解釋)
★UNI-SNE[10]:給低維空間的點(diǎn)給予一個(gè)均勻分布(uniform dist)梧宫,使得對于高維空間中距離較遠(yuǎn)的點(diǎn)(p_ij較薪咏鳌),強(qiáng)制保證在低維空間中q_ij>p_ij (因?yàn)榫鶆蚍植嫉膬蛇叡雀咚狗植嫉膬蛇吀叱鎏嗔耍?/p>
t-分布(Student's t-distribution)
★t-分布的概率密度函數(shù)(probability density function塘匣,PDF)形式為:
其中 ν 是自由度脓豪。
figure of probability density function
★當(dāng) ν=1:
叫做柯西分布(Cauchy distribution),我們用到是這個(gè)簡單形式忌卤。
★當(dāng) ν=∞:
叫做高斯/正態(tài)分布(Guassian/Normal distribution)扫夜。
我們在低維空間的分布中,把原先用的高斯分布改成自由度為1的分布(把尾巴抬高)驰徊。下圖可以很好地說明為什么“把尾巴抬高”可以很好地緩解擁擠問題笤闯。繪圖代碼參考 [11]
假設(shè)我們的低維數(shù)據(jù)分布對高維數(shù)據(jù)分布已經(jīng)擬合完畢,則可以認(rèn)為對于高維數(shù)據(jù)點(diǎn)x_i棍厂、x_j和低維映射點(diǎn)y_i颗味、y_j,有p_ij=q_ij牺弹。我們用圖中兩條紅線表示兩種情況:
①上面的紅線表示:當(dāng)兩個(gè)點(diǎn)相距相對近的時(shí)候浦马,低維空間中比高維空間中相對更近。
②下面的紅線表示:當(dāng)兩個(gè)點(diǎn)相距相對遠(yuǎn)的時(shí)候例驹,低維空間中比高維空間中相對更遠(yuǎn)捐韩。
可以對比一下采用t-SNE對MNIST數(shù)據(jù)集的降維可視化效果:
以上是t-SNE的主要思想,其余還有若干知識點(diǎn)(如對稱SNE鹃锈、優(yōu)化的技巧等)荤胁,請參考論文[12]或者我的另一篇博文:論文筆記:Visualizing data using t-SNE,相關(guān)鏈接:
https://psubnwell.github.io/2017/12/01/paper-note-t-sne/
工程篇
Python庫:sklearn.manifold
推薦閱讀Python下著名的機(jī)器學(xué)習(xí)庫scikit-learn的相應(yīng)文檔:sklearn.manifold.TSNE - scikit-learn屎债,相關(guān)鏈接:
困惑度
使用t-SNE時(shí)仅政,除了指定你想要降維的維度(參數(shù)n_components)垢油,另一個(gè)重要的參數(shù)是困惑度(Perplexity,參數(shù)perplexity)圆丹。
困惑度大致表示如何在局部或者全局位面上平衡關(guān)注點(diǎn)滩愁,再說的具體一點(diǎn)就是關(guān)于對每個(gè)點(diǎn)周圍鄰居數(shù)量猜測。困惑度對最終成圖有著復(fù)雜的影響辫封。
前面提到高維空間中每一個(gè)數(shù)據(jù)點(diǎn)x_i的高斯分布中的方差σ_i都必須設(shè)為不同硝枉。該方差σ_i須具有如下性質(zhì):在數(shù)據(jù)密集的地方要小,數(shù)據(jù)稀疏的地方要大倦微。顯然σ_i和困惑度有著相關(guān)關(guān)系妻味。
如何給每個(gè)x_i分配σ_i值呢?
★可以手動(dòng)分配[13]
★使用算法分配:Binary search[14]或者 Root-finding method[15]
使用算法來確定σ_i則要求用戶預(yù)設(shè)困惑度欣福。然后算法找到合適的σ_i值讓條件分布P_i的困惑度等于用戶預(yù)定義的困惑度即可责球。
注意:困惑度設(shè)的大,則顯然σ_i也大拓劝。兩者是單調(diào)關(guān)系雏逾,因此可以使用二分查找。
論文[16]建議困惑度設(shè)為5-50比較好郑临。這還是一個(gè)很大的范圍栖博,事實(shí)上在這個(gè)范圍內(nèi),調(diào)節(jié)困惑度可以展示從微觀到宏觀的一系列視角厢洞,見下一節(jié)笛匙。
可視化
日常使用t-SNE可調(diào)的參數(shù)基本只有困惑度,非常簡單犀变。針對困惑度如何影響可視化結(jié)果,文獻(xiàn)[17]做了非常詳細(xì)的展示秋柄,還包含一個(gè)在線程序可以輔助認(rèn)識获枝。
文獻(xiàn)[18]給出的基本結(jié)論如下:
★簇(cluster)的大小無關(guān)緊要。
★簇之間的距離無關(guān)緊要骇笔。
★密集的區(qū)域會(huì)被擴(kuò)大省店,稀疏的區(qū)域會(huì)被縮小等。
根據(jù)文獻(xiàn)[19]給的圖笨触,說一點(diǎn)自己的理解:
★低困惑度對應(yīng)的是局部視角懦傍,要把自己想象成一只螞蟻,在數(shù)據(jù)所在的流形上一個(gè)點(diǎn)一個(gè)點(diǎn)地探索芦劣。
★高困惑度對應(yīng)的是全局視角粗俱,要把自己想象成上帝。
t-SNE優(yōu)點(diǎn)
流形學(xué)習(xí)中其他方法如Isomap虚吟、LLE等寸认,主要用于展開單個(gè)連續(xù)的低維流形(比如“瑞士卷”數(shù)據(jù)集)签财,而t-SNE主要用于數(shù)據(jù)的局部結(jié)構(gòu),并且會(huì)傾向于提取出局部的簇偏塞,這種能力對于可視化同時(shí)包含多個(gè)流形的高維數(shù)據(jù)(比如MNIST數(shù)據(jù)集)很有效唱蒸。
t-SNE缺點(diǎn)
?時(shí)間、空間復(fù)雜度為O(n^2)灸叼,計(jì)算代價(jià)昂貴神汹。百萬量級的數(shù)據(jù)需要幾小時(shí),對于PCA可能只需要幾分鐘古今。
?升級版Barnes-Hut t-SNE可以讓復(fù)雜度降為O(nlogn)屁魏,但只限于獲得二維和三維的嵌入。(sklearn中可以直接使用參數(shù)method='barnes_hut')
?由于代價(jià)函數(shù)非凸沧卢,多次執(zhí)行算法的結(jié)果是隨機(jī)的(名字中“Stochatsic”的由來蚁堤?),需要多次運(yùn)行選取最好的結(jié)果但狭。
?全局結(jié)構(gòu)不能很清楚的保留披诗。這個(gè)問題可以通過先用PCA降維到一個(gè)合理的維度(如50)后再用t-SNE來緩解,前置的PCA步驟也可以起到去除噪聲等功能立磁。(sklearn中可以直接使用參數(shù)init='pca')
尾聲
作為一個(gè)三維生物呈队,如何感知高維空間的形狀,這個(gè)是歷史難題唱歧。在讀《三體》的時(shí)候宪摧,褐蟻的故事曾經(jīng)讓我若有所思,我將其摘錄于此颅崩。它的方案和t-SNE是否有某種神似呢几于?
這次褐蟻來到故地,只是覓食途中偶然路過而已沿后。它來到孤峰腳下沿彭,用觸須摸了摸這頂天立地的存在,發(fā)現(xiàn)孤峰的表面堅(jiān)硬光滑尖滚,但能爬上去喉刘,于是它向上爬去。沒有什么且的漆弄,只是那小小的簡陋神經(jīng)網(wǎng)絡(luò)中的一次隨機(jī)擾動(dòng)所致睦裳。這擾動(dòng)隨處可見,在地面的每一株小草和草葉上的每一粒露珠中撼唾,在天空中的每一片云和云后的每一顆星辰上……擾動(dòng)都是無目的的廉邑,但巨量的無目的擾動(dòng)匯集在一起,目的就出現(xiàn)了。...
與此同時(shí)鬓催,在前方的峭壁上肺素,它遇到了一道長長的溝槽,與峭壁表面相比宇驾,溝槽的凹面粗糙一些倍靡,顏色也不同,呈灰白色课舍,它沿著溝槽爬塌西,粗糙的表面使攀登容易了許多。溝槽的兩端都有短小的細(xì)槽筝尾。下端的細(xì)槽與主槽垂直捡需,上端的細(xì)槽則與主槽成一個(gè)角度相交。當(dāng)褐蟻重新踏上峭壁光滑的黑色表面后筹淫,它對槽的整體形狀有了一個(gè)印象:“1”站辉。...
很快,它遇到了另一道溝槽损姜,它很留戀溝槽那粗糙的凹面饰剥,在上面爬行感覺很好,同時(shí)槽面的顏色也讓它想起了蟻后周圍的蟻卵摧阅。它不惜向下走回頭路汰蓉,沿著槽爬了一趟。這道槽的形狀要復(fù)雜些棒卷,很彎曲顾孽,轉(zhuǎn)了一個(gè)完整的圈后再向下延伸一段,讓它想起在對氣味信息的搜尋后終于找到了回家的路的過程比规,它在自己的神經(jīng)網(wǎng)絡(luò)中建立起了它的形狀:“9”若厚。...
褐蟻繼續(xù)沿著與地面平行的方向爬,進(jìn)入了第三道溝槽蜒什,它是一個(gè)近似于直角的轉(zhuǎn)彎盹沈,是這樣的:“7”。它不喜歡這形狀吃谣,平時(shí),這種不平滑的做裙、突然的轉(zhuǎn)向,往往意味著危險(xiǎn)和戰(zhàn)斗锚贱。...
孤峰上的褐蟻本來想轉(zhuǎn)向向上攀登仔戈,但發(fā)現(xiàn)前面還有一道凹槽,同在“7”之前爬過的那個(gè)它喜歡的形狀“9”一模一樣,它就再橫行過去监徘,爬了一遍這個(gè)“9”晋修。它覺得這個(gè)形狀比“7”和“1”好,好在哪里當(dāng)然說不清凰盔,這是美感的原始單細(xì)胞態(tài)墓卦;剛才爬過“9”時(shí)的那種模糊的愉悅感再次加強(qiáng)了,這是幸福的原始單細(xì)胞態(tài)户敬。但這兩種精神的單細(xì)胞沒有進(jìn)化的機(jī)會(huì)落剪,現(xiàn)在同一億年前一樣,同一億年后也一樣尿庐。
參考文獻(xiàn)
[1] The Curse of Dimensionality in classification(鏈接:http://www.visiondummy.com/2014/04/curse-dimensionality-affect-classification/), 中文翻譯:維度災(zāi)難(鏈接:https://zhuanlan.zhihu.com/p/27488363)
[2] Maaten, L. V. D., & Hinton, G. (2008). Visualizing data using t-SNE. Journal of Machine Learning Research, 9(Nov), 2579-2605.
[3] Maaten, L. V. D., & Hinton, G. (2008). Visualizing data using t-SNE. Journal of Machine Learning Research, 9(Nov), 2579-2605.
[4] Maaten, L. V. D., & Hinton, G. (2008). Visualizing data using t-SNE. Journal of Machine Learning Research, 9(Nov), 2579-2605.
[5] 有哪些關(guān)于流形學(xué)習(xí)(manifold learning)的好的資料或者課程忠怖? - 知乎(鏈接:https://www.zhihu.com/question/41106133/answer/154709827)
[6] 周志華. 機(jī)器學(xué)習(xí)第十章[M]. Qing hua da xue chu ban she, 2016.
[7] Hinton, G. E., & Roweis, S. T. (2003). Stochastic neighbor embedding. In Advances in neural information processing systems (pp. 857-864).
[8] Maaten, L. V. D., & Hinton, G. (2008). Visualizing data using t-SNE. Journal of Machine Learning Research, 9(Nov), 2579-2605.
[9] Maaten, L. V. D., & Hinton, G. (2008). Visualizing data using t-SNE. Journal of Machine Learning Research, 9(Nov), 2579-2605.
[10] Cook, J., Sutskever, I., Mnih, A., & Hinton, G. (2007, March). Visualizing similarity data with a mixture of maps. In Artificial Intelligence and Statistics (pp. 67-74).
[11] t-SNE完整筆記。(鏈接:http://www.datakit.cn/blog/2017/02/05/t_sne_full.html)
[12] Maaten, L. V. D., & Hinton, G. (2008). Visualizing data using t-SNE. Journal of Machine Learning Research, 9(Nov), 2579-2605.
[13] Hinton, G. E., & Roweis, S. T. (2003). Stochastic neighbor embedding. In Advances in neural information processing systems (pp. 857-864).
[14] Hinton, G. E., & Roweis, S. T. (2003). Stochastic neighbor embedding. In Advances in neural information processing systems (pp. 857-864).
[15] Van Der Maaten, L. (2014). Accelerating t-SNE using tree-based algorithms. Journal of machine learning research, 15(1), 3221-3245.
[16] Maaten, L. V. D., & Hinton, G. (2008). Visualizing data using t-SNE. Journal of Machine Learning Research, 9(Nov), 2579-2605.
[17] Wattenberg, M., Viégas, F., & Johnson, I. (2016). How to Use t-SNE Effectively. Distill, 1(10), e2.(鏈接:https://distill.pub/2016/misread-tsne/)
[18] Wattenberg, M., Viégas, F., & Johnson, I. (2016). How to Use t-SNE Effectively. Distill, 1(10), e2.(鏈接:https://distill.pub/2016/misread-tsne/)
[19] Wattenberg, M., Viégas, F., & Johnson, I. (2016). How to Use t-SNE Effectively. Distill, 1(10), e2.(鏈接:https://distill.pub/2016/misread-tsne/)
@純真學(xué)者出神入化
版權(quán)聲明
本文版權(quán)歸《純真學(xué)者出神入化》抄瑟,轉(zhuǎn)載請自行聯(lián)系凡泣。
實(shí)戰(zhàn)
t-SNE VS PCA
https://blog.csdn.net/abin_203/article/details/106342797