t 분산 확률 이웃 임베딩(t-SNE)은 차원 축소에 사용되는 강력한 기법으로, 주로 고차원 데이터 집합을 저차원 공간(일반적으로 2차원 또는 3차원)에서 시각화하기 위해 설계되었습니다. 로렌스 반 데어 마텐과 제프리 힌튼이 개발한 t-SNE는 클러스터나 다양체와 같은 데이터의 기본 로컬 구조를 드러내는 데 탁월합니다. 이를 통해 인공지능(AI) 및 머신러닝(ML) 모델에 의해 생성되거나 처리된 복잡한 데이터 세트를 시각적 검사를 통해 쉽게 해석할 수 있습니다. 컴퓨터 비전(CV), 자연어 처리(NLP) 등 다양한 분야에서 널리 사용되고 있습니다.
t-SNE 작동 방식
t-SNE의 핵심 아이디어는 포인트 간의 유사성을 보존하는 방식으로 고차원 데이터 포인트를 저차원 공간(예: 2D 플롯)에 매핑하는 것입니다. 고차원 포인트 쌍 사이의 유사성을 조건부 확률로 모델링한 다음 매핑된 포인트 사이의 조건부 확률이 유사한 저차원 임베딩을 찾으려고 시도합니다. 이 프로세스는 로컬 구조를 유지하는 데 중점을 둡니다. 고차원 공간에서 서로 가까운 점은 저차원 맵에서도 서로 가깝게 유지되어야 합니다.
주성분 분석(PCA)과 같은 선형적 방법과 달리 t-SNE는 비선형적이고 확률적입니다. 따라서 PCA가 놓칠 수 있는 곡면 다양체와 같은 복잡하고 비선형적인 관계를 포착할 수 있습니다. 이 알고리즘은 고차원 공간에서는 가우스 분포를, 저차원 공간에서는 학생의 t 분포(자유도 1)를 사용하여 유사성을 계산합니다. t 분포를 사용하면 저차원 맵에서 서로 다른 점을 더 멀리 분리하여 점이 서로 뭉치는 '밀집 문제'를 완화하는 데 도움이 됩니다. 최적의 임베딩은 경사 하강과 같은 최적화 기술을 사용하여 두 확률 분포 사이의 차이(특히, 쿨백-라이블러 차이)를 최소화하여 찾을 수 있습니다. 자세한 기술적 이해는 t-SNE 백서 원본을 참조하세요.
t-SNE 대 PCA
t-SNE와 PCA는 모두 일반적인 차원 축소 기법이지만, 크게 다른 점이 있습니다:
- 선형성: PCA는 선형 기법인 반면, t-SNE는 비선형 기법입니다. PCA는 기본적으로 데이터를 회전시켜 분산을 최대화하는 주성분을 찾습니다. t-SNE는 쌍별 유사성을 모델링합니다.
- 초점: PCA는 데이터의 전체 구조와 최대 분산을 보존하는 것을 목표로 합니다. t-SNE는 로컬 구조(점의 이웃)를 보존하는 것을 우선시합니다.
- 사용 사례: PCA는 데이터 압축, 노이즈 감소 및 다른 ML 알고리즘을 적용하기 전 데이터 전처리 단계로 자주 사용됩니다. t-SNE는 클러스터를 드러내는 기능으로 인해 주로 데이터 시각화 및 탐색에 사용됩니다.
- 해석 가능성: PCA 플롯의 축은 주성분을 나타내며 분산과 관련된 명확한 수학적 해석이 있습니다. t-SNE 플롯의 축과 클러스터 사이의 거리는 이러한 직접적인 글로벌 해석이 없으며, 포인트의 상대적 그룹화에 중점을 둡니다.
AI 및 ML 분야의 애플리케이션
t-SNE는 딥러닝 모델에서 학습한 임베딩을 탐색하는 등 AI 및 ML 파이프라인에서 자주 접하는 복잡한 고차원 데이터를 이해하는 데 유용한 시각화 도구 역할을 합니다.
- 이미지 특징 시각화: 컴퓨터 비전에서 t-SNE는 다음과 같이 컨볼루션 신경망(CNN)에서 생성된 고차원 피처 맵 또는 임베딩을 시각화할 수 있습니다. Ultralytics YOLO 모델과 같이 물체 감지 또는 이미지 분류에 사용되는 고차원 피처 맵이나 임베딩을 시각화할 수 있습니다. 연구자들은 이미지넷이나 COCO와 같은 데이터 세트에서 추출한 피처에 t-SNE를 적용함으로써 모델이 피처 공간에서 유사한 이미지나 객체 클래스를 함께 그룹화하는 방법을 학습하는지 확인하여 모델의 이해도에 대한 인사이트를 얻을 수 있습니다. 이는 표준 정확도 메트릭을 넘어 모델 성능을 분석하는 데 도움이 됩니다( YOLO 성능 메트릭 참조).
- 단어 임베딩 살펴보기: NLP에서 t-SNE는 단어 임베딩(예: Word2Vec, GloVe 또는 BERT)을 2D로 시각화하는 데 사용됩니다. 이를 통해 의미 관계를 검사할 수 있습니다. 예를 들어 '왕', '여왕', '왕자', '공주'와 같은 단어는 뚜렷한 클러스터를 형성하거나 의미 있는 상대적 위치를 나타내어 언어 모델링의 품질을 보여줄 수 있습니다. TensorFlow 프로젝터와 같은 도구는 시각화를 임베드하기 위해 종종 t-SNE를 활용합니다.
- 학습 데이터 이해하기: 모델 학습 전 또는 학습 중에 t-SNE는 학습 데이터 자체의 구조를 시각화하여 잠재적으로 Ultralytics HUB와 같은 플랫폼을 통해 관리되는 데이터 세트 내에서 뚜렷한 클러스터, 이상값 또는 라벨링 문제를 파악할 수 있습니다.
고려 사항
시각화에는 강력하지만 t-SNE에는 몇 가지 고려해야 할 사항이 있습니다:
- 계산 비용: 쌍 단위로 계산하기 때문에 매우 큰 데이터 세트의 경우 계산 비용이 많이 들고 속도가 느릴 수 있습니다. t-SNE를 근사화하거나 PCA를 먼저 적용하는 등의 기법이 도움이 될 수 있습니다.
- 하이퍼파라미터: 하이퍼파라미터: 결과는 '난해성'(고려되는 가장 가까운 이웃의 수와 관련) 및 경사 하강을 위한 반복 횟수와 같은 하이퍼파라미터에 민감하게 반응할 수 있습니다.
- 글로벌 구조: t-SNE는 로컬 구조에 초점을 맞추기 때문에 최종 플롯의 클러스터 간 상대 거리는 원래의 고차원 공간에서의 분리를 정확하게 반영하지 못할 수 있습니다. 클러스터 크기 또한 오해의 소지가 있을 수 있습니다. Scikit-learn과 같은 라이브러리와 다음과 같은 프레임워크에서 구현을 사용할 수 있습니다. PyTorch.