資料降維 — t-SNE 降維與視覺化

littlemilk
數據領航員
Published in
6 min readSep 24, 2022

--

目錄

☉前言
☉歐式距離無法獲得的資訊?
☉降維的種類
☉流型學習
☉t-SNA 演算法步驟
☉困惑度 Perplexity
☉總結
☉實作
☉參考資料

前言

t-SNE 全名是 t-distributed Stochastic Neighbor Embedding,由 Hinton 等人在 2008 年發布的一種非線性降維方法,大多將高維資料降至 2 維或 3 維,用於視覺化檢視資料的內容是否具有區別度,或著讓後續的模型任務(例如:分類)更容易達成。

歐式距離無法獲得的資訊?

先來看看一張圖

瑞士卷(Swiss Roll)來源

若照我們一般想要了解圖中兩個點的相關程度,我們通常會採用歐式距離(虛線)來計算,歐式距離越近的兩個點代表越相關。

但是在圖中我們可以很明顯的看出資料都散佈在一個扭曲的面上,所以我們若是去找到這兩個點在此面上的距離(實線),或許獲得的相關性會比較適用。

降維的種類

  • 線性方法:PCA, LDA
  • 非線性方法:MDS, Isomap, t-SNE….

主流的線性降維方法不多,主要就是 PCA, LDA 的兩種方法,在降維時線性地去轉換向量空間;而非線性方法則種類較多,不同的降維有不同的目的,有些是為了保留全域特徵(Global data structure),有些則是為了保留區域特徵(Local data structure)

Source

流型學習

流型學習就是假設某種低維度的結構,被塞在了高維度的空間中,那我們就是要透過降維的方法,來重新學習或找到這些低維度的特徵。

非線性降維很常被拿來解決流型學習的資料,下圖左方是一個在三維空間中的立體 S 型,他其實可以順著 S 的趨勢,攤平成一個彩虹色階的二維資料。右方就是各種非線性降維方法套用後的效果。

t-SNE 演算法步驟

步驟一、將高維資料間轉換成以高斯分佈為相似度的條件機率。

分子部分可以看成高斯分佈的機率密度函數,代表著以 Xi 為中心的高斯分佈下,Xj 的機率,機率越大,代表兩個距離越近。

分母部份則是作為 Normalization 的用途。

步驟二、將要轉換成的低維資料使用 t 分佈為相似度的條件機率。

分子部分可看成 t 分佈的機率密度函數(自由度為 1 ),代表以 yi 為中心的 t 分佈。

分母部份一樣是 Normalization 的用途。

步驟三、為了將 1. 2. 之間的機率分佈最相近,最小化所有資料點間的 KL 散度

步驟四、以 3. 作為成本函數(Cost Function),並使用隨機梯度下降法(Stochastic Gradient Decent)求最佳解

困惑度 Perplexity

在高維度資料轉換為條件機率時,需要設定以 Xi 為中心分佈的標準差,調整方式就是設定困惑度這個超參數,t-SNE 會找到符合困惑度的 Pi 以及標準差。

困惑度設定越大,此標準差就會越大,一般建議數值設定在 5 至 50 之間。

總結

t-SNE on MNIST dataset

t-SNE 的特性

  1. 非線性的降維方法
  2. 將資料點間關係以條件機率來表示,並進行降維,低維度下儘量保留同樣的條件機率。
  3. 可以找出空間中的局部特徵
  4. 常用於視覺化
  5. 隨機性-每次執行的結果都不同
  6. 比較兩群之間的距離是沒有意義的

實作

使用 scikit-learn 可以直接實作

參考資料

教育部補助大專院校STEM領域及女性研發人才培育計畫目標為建構一個「以智慧物聯技術與實務應用為基礎的教育環境和實作場域」,並規劃出符合此STEM教育領域的創新特色課程,以畢業前進入企業實習的方式,讓學生了解相關產業界所面對的問題,再輔以業界實作場域的教育訓練活動,共同帶領學生發展出動手做、判斷與解決問題的相關技能;本計畫也規劃讓學生以專題實作的組隊方式,跟業界協力領導學生對外參與智慧物聯技術的應用競賽,不僅可以累積學生實務開發的能力,更能激發其潛能來幫助企業解決所面臨的難題。

Data Science Meetup 台灣資料科學社群的使命是「為資料科學人士與企業創建經濟機會」。我們相信大數據蘊藏著巨量的信息和價值,如何處理好大數據並發掘其潛藏的商業價值,就要靠資料科學有效的應用。21世紀是資料科學決勝時代,我們社群將為大家提供與資料科學相關的最新技術和資訊實戰攻略,並透過全球業界人士和學者幫助相關職業規劃與挑戰,社群活動包含

  • 台北實體版聚
  • 線上版聚
  • Mentorship Program

歡迎加入我們社團瞭解更多資訊:https://www.facebook.com/groups/datasciencemeetup/

--

--

littlemilk
數據領航員

東吳大學資料科學系|Machine Learning & Full Stack|數據領航員🖊深度學習|喜歡學習所有對生活有幫助的科技知識,追求用科技感動人心的時刻| Github : littlemilkwu & ✉️ : leowu0819@gmail.com