eamid/trimap

TriMap: Large-scale Dimensionality Reduction Using Triplets

해결하는 문제

TriMap은 고차원 데이터를 저차원 임베딩(일반적으로 2D 또는 3D)으로 변환하는 차원 축소 문제를 해결합니다. t-SNE나 UMAP와 달리, TriMap은 국소적 클러스터를 우선시하지 않고, 클러스터 간 상대 거리, 데이터의 다중 스케일, 이상치의 존재를 더 잘 반영하려고 합니다.

작동 방식

TriMap은 삼중 제약을 사용하여 임베딩을 생성합니다. 삼중 제약의 형태는 "점 i 는 점 k 보다 점 j 에 더 가깝다"입니다. 이러한 삼중 제약은 데이터의 고차원 표현에서 샘플링되며, 각 삼중 제약의 중요도를 결정하기 위한 가중치 방식이 적용됩니다. 시스템은 경사 하강법을 사용하여 이러한 제약을 만족하도록 임베딩을 최적화합니다.

대상 사용자

CNN 특징 또는 유전체 데이터와 같은 고차원 데이터셋을 시각화해야 하며, 기존 방법보다 더 정확한 데이터 구조의 전반적 시각을 필요로 하는 데이터 과학자 및 연구자에게 적합합니다.

주요 특징

  • 전반적 구조 유지: 클러스터 간 상대 거리 유지 및 이상치 식별을 특별히 설계하였습니다.
  • 다양한 구현: 전통적인 NumPy/Numba 버전과 GPU 병렬 처리를 지원하는 PyTorch 버전(TorchTRIMAP)이 있으며, CUDA, MPS, CPU에서 빠른 처리가 가능합니다.
  • 유연한 백엔드: PyTorch 버전은 정확한 PyTorch 검색, Faiss(플랫 및 IVF), NVIDIA cuVS CAGRA 등 다양한 k-NN 백엔드를 지원하여 매우 큰 데이터셋에도 대응 가능합니다.
  • scikit-learn 호환: 표준 sklearn 라이브러리와 유사한 트랜스포머 API(fit_transform)를 사용하여 통합이 용이합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트