← Back to Blog

[데이터분석] PCA와 t-SNE

artificial intelligence > data analysis

2026-07-014 min read

#Data Analysis

PCA (Principal Component Analysis)

PCA 목적

고차원 데이터 정보 최대한 유지하면서 저차원 공간으로 투영.

핵심 아이디어.

데이터 분산(Variance) 최대 방향 탐색

분산 크다는 의미.

따라서 분산 최대 방향만 남기면 정보 손실 최소화 가능.


데이터 표현

데이터 개수 NN, Feature 개수 dd라고 가정.

데이터 행렬

XRN×dX \in \mathbb{R}^{N \times d}

각 행 하나 데이터, 각 열 하나 Feature 의미.

먼저 평균 제거(Centering) 수행.

XXμX \leftarrow X - \mu

평균 제거 목적.

모든 데이터 중심 원점으로 이동.

공분산 계산 기준 통일 가능.


차원 축소 문제

100차원 데이터를 1차원으로 줄인다고 가정.

새로운 축

ww

선택.

모든 데이터 해당 방향으로 투영.

z=Xwz = Xw

문제 하나 존재.

어떤 방향 선택해야 정보 가장 많이 유지 가능할까?


분산 최대화

PCA 기준 정보량 = 분산.

따라서 목표.

maxwVar(Xw)\max_w \operatorname{Var}(Xw)

평균 제거 완료 상태라면

E[X]=0E[X]=0

분산 전개.

Var(Xw)=E[(Xw)T(Xw)]\operatorname{Var}(Xw) = E[(Xw)^T(Xw)] =E[wTXTXw]= E[w^TX^TXw] =wTE[XTX]w= w^TE[X^TX]w

여기서

C=1NXTXC=\frac{1}{N}X^TX

공분산 행렬 의미.

따라서

Var(Xw)=wTCw\operatorname{Var}(Xw) = w^TCw

결국 목적 함수.

maxwwTCw\max_w w^TCw

제약조건

문제 하나 존재.

ww

크기 계속 키우면

wTCww^TCw

무한히 증가.

의미 없는 해 발생.

따라서

wTw=1w^Tw=1

제약 추가.

최종 문제.

maxwwTCw\max_w w^TCw

subject to

wTw=1w^Tw=1

라그랑주 승수법

라그랑주 함수.

L=wTCwλ(wTw1)L = w^TCw - \lambda(w^Tw-1)

미분.

Lw=2Cw2λw=0\frac{\partial L}{\partial w} = 2Cw - 2\lambda w = 0

정리.

Cw=λwCw=\lambda w

바로 고유값 문제(Eigenvalue Problem).


왜 고유벡터 선택?

양변에

wTw^T

곱하면

wTCw=λwTww^TCw = \lambda w^Tw

제약조건

wTw=1w^Tw=1

대입.

wTCw=λw^TCw=\lambda

좌변.

투영 후 분산

우변.

고유값

즉,

고유값 = 해당 방향 분산

의미.

가장 큰 고유값 대응 고유벡터 선택.

첫 번째 Principal Component.

두 번째로 큰 고유값 대응 고유벡터.

두 번째 Principal Component.


최종 차원 축소

상위 kk개 고유벡터 선택.

W=[w1,w2,,wk]W= [w_1,w_2,\cdots,w_k]

차원 축소 결과.

Y=XWY=XW

즉,

원래 좌표계

XX

새로운 좌표계

YY

변환.

PCA 본질.

분산 최대 직교기저(Orthogonal Basis) 탐색

또는

데이터 분산 최대 방향으로 좌표계 회전(Rotation)


SVD 관계

실제 구현 대부분 Eigen Decomposition 대신 SVD 사용.

X=UΣVTX=U\Sigma V^T

여기서

VV

열벡터.

Principal Component 동일.

이유.

XTX=VΣ2VTX^TX = V\Sigma^2V^T

공분산 행렬 고유분해 결과와 동일하기 때문.


t-SNE (t-distributed Stochastic Neighbor Embedding)

t-SNE 목적

PCA와 목적 다름.

PCA.

전체 데이터 구조 유지

t-SNE.

고차원 공간 이웃 관계 최대한 유지

즉,

절대적인 거리보다 가까운 데이터끼리 가까운 위치 유지 목적.


거리 대신 확률 사용

고차원 데이터

xi,  xjx_i,\;x_j

사이 거리 계산.

xixj2\|x_i-x_j\|^2

거리 그대로 사용하지 않음.

가우시안 분포 이용.

pji=exp(xixj22σi2)kiexp(xixk22σi2)p_{j|i} = \frac{ \exp\left( -\frac{\|x_i-x_j\|^2}{2\sigma_i^2} \right) }{ \sum_{k\neq i} \exp\left( -\frac{\|x_i-x_k\|^2}{2\sigma_i^2} \right) }

의미.

ii 기준 jj가 이웃일 확률

거리 가까울수록 확률 증가.

거리 멀수록 확률 감소.


대칭 확률

조건부 확률 그대로 사용하지 않음.

대칭화 수행.

Pij=pij+pji2NP_{ij} = \frac{p_{i|j}+p_{j|i}}{2N}

고차원 공간 이웃 관계 완성.


저차원 공간 생성

2차원 좌표

yiy_i

랜덤 초기화.

이번에는 Gaussian 사용하지 않음.

Student-t 분포 사용.

Qij=(1+yiyj2)1kl(1+ykyl2)1Q_{ij} = \frac{ (1+\|y_i-y_j\|^2)^{-1} }{ \sum_{k\neq l} (1+\|y_k-y_l\|^2)^{-1} }

Student-t 사용하는 이유

Gaussian 사용 시 Crowding Problem 발생.

고차원 공간.

멀리 떨어질 공간 충분.

2차원 공간.

모든 점 중심으로 몰림.

Student-t 분포.

꼬리(Heavy Tail) 길다.

멀리 있는 데이터 간 반발력(Repulsive Force) 유지 가능.

클러스터 분리 효과 향상.


목적 함수

고차원 확률

PP

저차원 확률

QQ

최대한 비슷하게 만드는 문제.

KL Divergence 사용.

KL(PQ)=ijPijlogPijQijKL(P\|Q) = \sum_{i\neq j} P_{ij} \log \frac{P_{ij}}{Q_{ij}}

최종 목적.

minYKL(PQ)\min_Y KL(P\|Q)

Gradient Descent

닫힌 해(Closed-form Solution) 존재하지 않음.

Gradient 계산.

Lyi=4j(PijQij)yiyj1+yiyj2\frac{\partial L}{\partial y_i} = 4 \sum_j (P_{ij}-Q_{ij}) \frac{y_i-y_j} {1+\|y_i-y_j\|^2}

반복 업데이트.

yiyiηLyiy_i \leftarrow y_i - \eta \frac{\partial L}{\partial y_i}

수렴 시까지 반복.


PCA와 차이

PCA.

선형 변환 기반 차원 축소.

공분산 행렬 고유값 문제 해결.

t-SNE.

비선형 최적화 기반 차원 축소.

고차원과 저차원의 이웃 관계를 확률분포로 표현.

두 확률분포 차이인

KL(PQ)KL(P\|Q)

최소화하여 최종 임베딩 생성.