차원 축소가 머신러닝 워크플로우를 최적화하는 방법을 알아보세요. PCA 및 t-SNE와 같은 기법을 활용하여 Ultralytics 성능과 데이터 시각화를 개선하는 방법을 탐구하세요.
차원 축소는 기계 학습(ML) 및 데이터 과학에서 데이터 세트 내 입력 변수(특징 또는 차원이라 함)의 수를 가장 중요한 정보를 유지한 채 줄이는 변환 기법입니다. 빅데이터 시대에 데이터셋은 종종 수천 개의 변수를 포함하여 차원의 저주라는 현상을 초래합니다. 이 현상은 모델 훈련을 계산적으로 비싸게 만들고, 과적합에 취약하게 하며, 해석을 어렵게 할 수 있습니다. 고차원 데이터를 저차원 공간으로 투영함으로써 실무자들은 효율성, 시각화, 예측 성능을 향상시킬 수 있습니다.
데이터의 복잡성을 줄이는 것은 데이터 전처리 파이프라인에서 근본적인 단계입니다. 이는 견고한 인공지능(AI) 시스템을 구축하는 데 여러 가지 실질적인 이점을 제공합니다:
차원 축소 방법은 일반적으로 데이터의 전역 선형 구조를 보존하는지 또는 국소 비선형 매니폴드를 보존하는지에 따라 분류된다.
가장 확립된 선형 기법은 주성분 분석(PCA)입니다. PCA는 데이터의 최대 분산을 포착하는 직교 축인 "주성분"을 식별함으로써 작동합니다. 원본 데이터를 이 새로운 축들에 투영하여, 정보 기여도가 낮은 차원들을 효과적으로 제거합니다. 이는 비지도 학습 워크플로우의 핵심 기법입니다.
이미지나 텍스트 임베딩과 같은 복잡한 데이터 구조의 경우 비선형 방법이 종종 필요합니다. t-분포 확률적 근접 임베딩(t-SNE)이나 균일 매니폴드 근사 및 투영(UMAP) 과 같은 기법은 지역 근접성을 보존하는 데 탁월하여 고차원 클러스터 시각화에 이상적입니다. 또한 자동 인코더는 입력을 잠재 공간 표현으로 압축하고 이를 재구성하도록 훈련된 신경망으로, 데이터의 간결한 인코딩을 효과적으로 학습합니다.
차원 축소는 딥 러닝(DL)의 다양한 영역에서 핵심적입니다:
이 개념을 특징 선택과 구분하는 것이 중요합니다. 둘은 서로 다른 메커니즘을 통해 유사한 목표를 달성하기 때문입니다:
다음 예시는 고차원 출력(이미지 임베딩 벡터를 시뮬레이션)을 가져와 PCA를 사용하여 축소하는 방법을 보여줍니다. 이는 YOLO26과 같은 모델이 유사한 클래스를 어떻게 그룹화하는지 시각화할 때 흔히 사용되는 워크플로우입니다.
import numpy as np
from sklearn.decomposition import PCA
# Simulate high-dimensional embeddings (e.g., 10 images, 512 features each)
# In a real workflow, these would come from a model like YOLO26n
embeddings = np.random.rand(10, 512)
# Initialize PCA to reduce from 512 dimensions to 2
pca = PCA(n_components=2)
reduced_data = pca.fit_transform(embeddings)
# Output shape is now (10, 2), ready for 2D plotting
print(f"Original shape: {embeddings.shape}") # (10, 512)
print(f"Reduced shape: {reduced_data.shape}") # (10, 2)