본문 바로가기
머신러닝딥러닝/딥러닝

t-SNE vs UMAP 차원 축소 알고리즘 알아보기

by orangecode 2022. 6. 27.
728x90
차원 축소 알고리즘

차원 축소 알고리즘은 matrix factorization과 neightbor graph 2가지로 나눌 수 있는데,

t-SNE와 UMAP은 neighbor graph에 해당합니다.

 

 PCA
  • matrix factorization 을 base 로 함 (공분산 행렬에 대해서 svd 등)
    • 분산이 최대인 축을 찾고, 이 축과 직교이면서 분산이 최대인 두번째 축을 찾아 투영시키는 방식(공분산 행렬의 고유값과 고유벡터를 구하여 산출)
  • 단점 : 선형 방식으로 정사영하면서 차원의 축소 -> 군집된 데이터들이 뭉게지는 단점

 

t-SNE : t-distributed Stochastic Neighbor Embedding

 

t-SNE는 데이터의 manifold를 잘 학습하여 데이터의 차원을 축소하거나 의미있는 특징 추출 혹은 데이터를 가시화하기 위한 manifold learning의 일종

  • neighboring graph 를 base 로 함
    • Local neighbor structure를 보존(고차원의 벡터의 유사성이 저차원에서도 유사도록 보존
  • t 분포를 이용해 하나의 기준점을 정하고 모든 다른 데이터와 거리를 구한 후 그 값에 해당하는 t 분포 값을 선택, 값이 유사한 데이터끼리 묶어줌
  • t 분포(t-distribution)는 스튜던트 t 분포(Student's t-distribution)와 동일한 용어

 

t-SNE 장점

t-SNE는 특징을 추출하거나, 데이터의 특징을 가시화하기에 아주 robust한 알고리즘

  1. 기존 PCA (주성분 분석)과 같은 선형 변환은 데이터를 저차원으로 임베딩하여 가시화할 때 겹쳐서 뭉게지는 부분 발생 -> unsupervised learning의 일종인 t-SNE를 사용한다면 뭉개지는 문제점 해소

  2. 또한 저차원 임베딩을 t 분포 기반으로하기 때문에 기존 SNE 방법과 같이 저차원 임베딩에서 정규분포(가우스 분포)를 사용했을 때 나타나는 crowding 문제점이 해결됩니다(특정 거리 이상부터는 학습에 반영이 되지 않는 문제점).

  3. 또한 다른 차원 축소 알고리즘에 비해 hyperparameter의 영향이 적고 이상치(outlier)에 둔감하다는 장점

t-SNE 단점

   1. 차원 축소의 시간이 너무 오래걸림

     1)  데이터 개수에 따른 연산량 증가

데이터의 개수가 n개라면 연산량은 n의 제곱만큼 늘어남 -> 시간이 너무 오래 걸림 -> UMAP으로 해결

 

     2) 높은 차원의 데이터를 순차적으로 차원 축소

너무 높은 차원을 가진 데이터를 바로 2, 3차원으로 축소하는 것이 불가능

→ 보통 128차원 raw 데이터  autoencoder(reduce 32 demention) 줄어든 잠재 변수(latent variable) 구하기

32차원을 2, 3차원으로 축소하기 위해 t-SNE를 사용

→ 보통 50차원 이내로 raw data 압축 이후 t-SNE 이용한다고 함

 

   2. 매번 돌릴 때마다 다른 시각화 결과가 나옴(training 과 prediction 을 동시에 수행)

       → 학습에 활용할 수 없게 됨 혹은 seed 고정으로 결과값 통일

 

   3. 저차원 임베딩 시 정보손실 발생 -> 데이터 왜곡의 가능성

 

 

UMAP - Uiform Manifold Approximation and Projection
  • neighboring graph 를 base로 함
  • 가장 좋은 성능을 내는 알고리즘이라고 알려짐
  • (UMAP is arguably the best performing as it keeps a significant portion of the high-dimensional local structure in lower dimensionality (https://towardsdatascience.com/topic-modeling-with-bert-779f7db187e6))
  • 방법
    • high dimension space 에서의 데이터를 graph로 만들고, low dimension 으로 graph projection한다 (이 전 과정이 유효하다고 수학적으로 증명돼있다고 함)

 

https://pair-code.github.io/understanding-umap/

UMAP 장점

  • 빠르다
  • embedding 차원 크기에 대한 제한이 없어서 일반적인 차원 축소 알고리즘으로 적용 가능함
  • global structure 를 더 잘 보존(시각화도 더 예쁘게 잘 된다)
  • 탄탄한 이론적 배경 - 리만 기하학 & 위상수학에 기반

UMAP 단점

  • Hyperparameter(머신러닝/딥러닝의 변수 - 모델의 성능에 영향)의 영향을 크게 받는다. 
  • 저차원으로 임베딩되어 가시화 된 결과에서 각 데이터간 거리 ≠ 실제 데이터 간 거리
  • 저차원 임베딩 시 정보손실에 의한 데이터 왜곡

 

참고 및 출처

https://ljm565.github.io/contents/ManifoldLearning2.html

https://data-newbie.tistory.com/295

https://pair-code.github.io/understanding-umap/

 

반응형

댓글