이 강의의 목표는 데이터가 가장 많이 퍼진 방향을 찾아 차원을 줄이는 법을 아주 기초부터 이해하는 것입니다.
먼저 오늘의 핵심 식을 봅니다.
Cv=λv
이 식을 외우기 전에, 식 안의 말과 기호를 먼저 하나씩 풀어야 합니다.
| 말 |
뜻 |
| PCA |
분산이 큰 방향을 찾는 차원축소 방법 |
| 공분산행렬 |
특징들이 함께 움직이는 정도를 담은 행렬 |
| 주성분 |
데이터가 많이 퍼진 방향 |
| 고유벡터 |
방향이 유지되는 벡터 |
| 고유값 |
그 방향의 분산 크기 |
| 잠재공간 |
압축된 내부 표현 공간 |
수학에서 어려운 부분은 계산보다 읽기입니다. 뜻을 모르고 계산하면 공식이 암호처럼 보입니다.
길쭉하게 흩어진 점들이 있으면 가로세로 좌표 둘 다보다 긴 방향 하나가 더 중요할 수 있습니다. PCA는 이런 중요한 방향을 찾습니다.
핵심 식을 다시 봅니다.
Cv=λv
기호를 하나씩 말로 바꿉니다.
- C는 공분산행렬입니다. 특징이 두 개면 2×2 크기이고, 대각선은 각 특징의 분산, 나머지는 두 특징이 함께 변하는 정도(공분산)입니다.
- v는 방향을 나타내는 벡터입니다. 우리가 찾는 주성분 방향입니다.
- Cv는 공분산행렬을 방향 v에 곱한 결과 벡터입니다.
- λ는 하나의 숫자(고유값)입니다.
- Cv=λv는 "C를 곱해도 방향 v가 바뀌지 않고 길이만 λ배로 늘어난다"는 뜻입니다.
즉 이 식은 "공분산행렬을 곱해도 방향이 유지되는 특별한 방향 v와 그 배율 λ를 찾아라"는 문장입니다. 왜 이 방향이 데이터가 가장 많이 퍼진 방향인지는 다음 절에서 유도합니다.
PCA의 목표는 데이터가 가장 많이 퍼진 방향을 찾는 것입니다. 방향 v(길이 1) 위로 데이터를 투영했을 때의 분산은 다음과 같이 씁니다.
분산=vTCv
우리는 이 값을 가장 크게 만드는 v를 원합니다. 다만 v를 무한정 길게 하면 값도 무한정 커지므로, 길이를 1로 고정해야 합니다. 즉 제약이 붙은 최대화 문제입니다.
vmax vTCv조건∥v∥2=vTv=1
이런 제약 최대화는 라그랑주 승수법으로 풉니다. 라그랑지안을 세웁니다.
L(v,λ)=vTCv−λ(vTv−1)
v로 미분해 0으로 둡니다.
∂v∂L=2Cv−2λv=0
정리하면 바로 핵심 식이 나옵니다.
Cv=λv
그래서 최대분산 방향은 공분산행렬의 고유벡터여야 합니다. 게다가 이 방향에서의 분산은 다음과 같습니다.
vTCv=vT(λv)=λvTv=λ
즉 고유값 λ가 곧 그 방향의 분산입니다. 그래서 고유값이 가장 큰 고유벡터가 첫 번째 주성분이 됩니다.
- 데이터에서 평균을 뺀다.
- 공분산행렬 C를 만든다.
- Cv=λv를 풀어 고유값과 고유벡터를 구한다.
- 고유값이 큰 순서로 주성분을 고른다.
- 데이터를 그 방향으로 투영해 차원을 줄인다.
문제: 평균을 뺀 데이터의 공분산행렬이 다음과 같다. 주성분 방향과 분산비율을 구하라.
C=[5445]
풀이: 고유값은 det(C−λI)=0에서 구합니다.
det[5−λ445−λ]=(5−λ)2−16=0
전개하면 다음과 같습니다.
(5−λ)2=16⇒5−λ=±4
따라서 고유값은 λ1=9, λ2=1입니다.
λ1=9에 대한 고유벡터는 (C−9I)v=0에서 구합니다.
[−444−4][v1v2]=0⇒v1=v2
그래서 첫 주성분 방향은 v=21[11], 즉 대각선 방향입니다.
전체 분산은 고유값의 합 9+1=10입니다. 첫 주성분이 설명하는 분산비율은 다음과 같습니다.
λ1+λ2λ1=9+19=109=0.9
첫 주성분 하나가 전체 분산의 90%를 설명합니다. 그래서 2차원 데이터를 대각선 방향 1차원으로 줄여도 정보의 90%가 남습니다. 버리는 방향(고유값 1, 분산비율 10%)은 상대적으로 덜 중요한 흩어짐입니다.
이렇게 얻은 낮은 차원 표현이 잠재공간입니다. 오토인코더나 임베딩처럼 큰 모델의 내부 표현도 "중요한 방향만 남기고 압축한다"는 같은 생각을 씁니다.
- 오늘 배운 핵심은 데이터가 가장 많이 퍼진 방향을 찾아 차원을 줄이는 법입니다.
- 방향 v의 분산은 vTCv이고, ∥v∥=1 제약 아래 이를 최대화합니다.
- 라그랑주 승수법으로 풀면 Cv=λv가 나오고, 그 방향의 분산은 곧 고유값 λ입니다.
- 고유값이 큰 고유벡터가 주성분이고, 분산비율로 정보 보존 정도를 잽니다.
Cv=λv
- 방향 v 위로 투영한 데이터의 분산을 어떤 식으로 쓰는가?
- 왜 ∥v∥=1 제약이 필요한가?
- 라그랑주 승수법으로 Cv=λv를 유도할 수 있는가?
- 고유값이 9와 1이면 첫 주성분의 분산비율은 얼마인가?