t-SNE降維原理

前言

PCA是一種線性降維算法,不能解釋特征之間的復(fù)雜多項(xiàng)式關(guān)系。如果特征與特征之間的關(guān)系是非線性的話,用PCA可能會(huì)導(dǎo)致欠擬合的情形發(fā)生。

線性降維算法的一個(gè)主要問(wèn)題是它們集中將不相似的數(shù)據(jù)點(diǎn)放置在較低維度區(qū)域時(shí),數(shù)據(jù)點(diǎn)相距較遠(yuǎn)。但是為了在低維、非線性曲面的流型上表示高維數(shù)據(jù),我們也需要把相似的數(shù)據(jù)點(diǎn)放在一起展示,這不是線性降維算法所能做的。

t-SNE是一種比PCA更有效的非線性降維方法,它是基于在鄰域圖上隨機(jī)游走的概率分布,可以在數(shù)據(jù)中找到其結(jié)構(gòu)關(guān)系。t-SNE在高維空間中采用的高斯核心函數(shù)定義了數(shù)據(jù)的局部和全局結(jié)構(gòu)之間的軟邊界,可以同時(shí)保留數(shù)據(jù)的局部和全局結(jié)構(gòu)。局部方法尋求將流型上的附近點(diǎn)映射到低維表示中的附近點(diǎn)。 另一方面,全局方法試圖保留所有尺度的幾何形狀,即將附近的點(diǎn)映射到附近的點(diǎn),將遠(yuǎn)處的點(diǎn)映射到遠(yuǎn)處的點(diǎn)。

對(duì)同樣的一組數(shù)據(jù)降維,t-SNE的結(jié)果明顯優(yōu)于PCA——

PCA結(jié)果圖

image

t-SNE結(jié)果圖

image

t-SNE降維原理

簡(jiǎn)易原理

假設(shè)我們現(xiàn)在需要將二維平面上分布的點(diǎn)降到一維直線上,

image

如果我們直接將這些點(diǎn)投放在x軸或者y軸,不同顏色/cluster的點(diǎn)會(huì)會(huì)混合在一起。

t-SNE首先會(huì)將這些點(diǎn)隨機(jī)擺放在直線上,然后t-SNE會(huì)逐漸將這些點(diǎn)移動(dòng),直到它們聚在一起(保留二維空間上的分布特征)。

image

這些點(diǎn)是如何移動(dòng)的呢?

黃色點(diǎn)來(lái)自于同一cluster,因此最左邊上的這個(gè)黃色點(diǎn)希望朝其余的黃點(diǎn)靠近,而紅色點(diǎn)由于和黃色的點(diǎn)不屬于同一cluster,因此會(huì)被排斥。

image

如同上述所講,低維空間上的點(diǎn)會(huì)被其在高維空間的臨近點(diǎn)所吸引,相對(duì)的,會(huì)排斥那些遠(yuǎn)距離的點(diǎn)。然后就這樣一步一步的,原本高維空間上距離較近的點(diǎn)會(huì)逐漸聚攏在一起。

image

詳細(xì)原理

上面大致描述了一下t-SNE如何將近距離的點(diǎn)聚攏在一起。

但是如何判斷誰(shuí)和誰(shuí)相互吸引?誰(shuí)和誰(shuí)相互排斥呢?

Step 1

計(jì)算二維平面上所有點(diǎn)的相似性(similarity)。

首先計(jì)算黑色點(diǎn)和其周?chē)c(diǎn)的距離(此處暫時(shí)以兩個(gè)點(diǎn)為例,黑色和藍(lán)色),然后將這兩個(gè)點(diǎn)排放在以黑色點(diǎn)為中心的正態(tài)曲線下,接下來(lái)計(jì)算藍(lán)色點(diǎn)到正態(tài)曲線的長(zhǎng)度(unscaled similarity distance,也成為similarity score)。

image

進(jìn)而,我們獲得了黑色點(diǎn)同其余所有點(diǎn)的similarity scores。

image

similarity score大,表明兩個(gè)點(diǎn)在二維平面上的距離近;相對(duì)的,表明兩個(gè)點(diǎn)在二維平面上的距離遠(yuǎn)。

Step 2

獲得黑色點(diǎn)同其余所有點(diǎn)的similarity score后,我們需要對(duì)這些scores進(jìn)行標(biāo)準(zhǔn)化,使得它們加和為1。

為什么要進(jìn)行標(biāo)準(zhǔn)化處理呢?

scaled similarity scores代表cluster的相對(duì)緊密度。

假設(shè)平面上有一個(gè)新紫色的cluster(我們暫且認(rèn)為紫色cluster的分布和藍(lán)色cluster完全一樣,只是密度(density)是藍(lán)色cluster的兩倍,那么紫色cluster正態(tài)曲線的寬度也會(huì)是藍(lán)色cluster的兩倍(正態(tài)曲線的高度和寬度由方差決定)),

image

進(jìn)行標(biāo)準(zhǔn)化處理后,這兩個(gè)cluster的similarity score就是一樣的了(上面提到過(guò),t-SNE可以同時(shí)保留數(shù)據(jù)的局部和全局結(jié)構(gòu))。

image

當(dāng)然了,t-SNE還有一個(gè)混亂度(perplexity)的參數(shù)來(lái)表示預(yù)期的密度(這個(gè)我還沒(méi)搞明白,暫時(shí)步說(shuō)了)。這個(gè)其實(shí)影響不大,實(shí)際上,這兩個(gè)cluster的相似性遠(yuǎn)比我們自己預(yù)期的要大的多。

接下來(lái)我們會(huì)獲得每一個(gè)點(diǎn)同其余所有點(diǎn)的scaled similarity scores。

Step 3

問(wèn)題來(lái)了,由于每一個(gè)點(diǎn)所對(duì)應(yīng)正態(tài)曲線的寬度是由其周?chē)c(diǎn)分布的緊密度來(lái)決定的。那么兩個(gè)點(diǎn)之間,前后兩次計(jì)算的similarity scores可能會(huì)不同。所以t-SNE會(huì)將這兩個(gè)點(diǎn)的similarity score求均值。

image

最終,我們可以獲得一個(gè)矩陣,每一行/列表示這個(gè)點(diǎn)同其他點(diǎn)的similarity score。

image

Step 4

計(jì)算一維直線上所有點(diǎn)的similarity scores。

同之前計(jì)算二維平面上點(diǎn)的計(jì)算過(guò)程一般,選擇一個(gè)指定的點(diǎn),然后計(jì)算其同周?chē)c(diǎn)的距離,進(jìn)而獲得similarity scores。只是這次使用的曲線從正態(tài)分布變?yōu)閠分布。

image

這就是為什么t-SNE為什么有一個(gè)t的原因了。

此時(shí)獲得的矩陣比上面那個(gè)矩陣顯得混亂一些。

image

t-SNE每次移動(dòng)一下直線上的點(diǎn),移動(dòng)的目的是為了讓上圖左邊的矩陣變得像右邊一樣。

image

Reference

https://juejin.im/entry/5a65b689f265da3e2b1689eb

https://medium.com/d-d-mag/%E6%B7%BA%E8%AB%87%E5%85%A9%E7%A8%AE%E9%99%8D%E7%B6%AD%E6%96%B9%E6%B3%95-pca-%E8%88%87-t-sne-d4254916925b

申明

本文是根據(jù)StatQuest系列視頻整理而來(lái)
已獲得Josh Starmer授權(quán)說(shuō)明
感謝久久瓊殷不辭辛苦將視頻轉(zhuǎn)載至B站

Permmsion

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容