AI VIDEO BRIEFING

PCA 주성분분석: 분산·공분산행렬·고유벡터로 차원을 줄이는 원리

1901년 피어슨이 제안한 주성분분석(PCA)이 왜 분산을 최대한 보존하는 축을 찾는 일인지, 공분산행렬의 고유벡터·고윳값, 그리고 실제 계산에 쓰이는 SVD까지 직관과 함께 정리한다.

PCA 주성분분석 완전정복: 분산을 지키며 차원을 줄이는 원리 영상 대표 이미지

핵심 메시지

  • PCA는 서로 상관 없는 '주성분' 축을 찾아, 그중 정보량이 큰 것만 남겨 차원을 줄이는 기법이다.
  • 여기서 정보는 분산으로 측정한다. 데이터가 넓게 퍼진 축일수록 점들을 구별하기 쉬워 더 많은 정보를 담는다.
  • 제곱 거리의 최소화와 분산의 최대화는 피타고라스 정리로 인해 같은 해에 도달하므로, 어느 관점을 택하든 결과가 같다.
  • 닫힌 형태의 해는 공분산행렬에서 나온다. 대칭행렬인 공분산행렬의 고유벡터가 주성분이고, 고윳값이 각 성분이 설명하는 분산이다.
  • 실무 라이브러리는 대개 고유분해 대신 SVD를 쓴다. 공분산행렬을 만들 필요가 없고 계산 복잡도가 더 낮기 때문이다.

쉽게 이해하기

영상은 차원 축소 시리즈의 두 번째 편으로, 1901년 칼 피어슨이 처음 제안한 주성분분석(PCA)을 다룬다. 직관에서 출발해 알고리즘 세부와 실제 데이터 적용·시각화까지 이어진다. 핵심 아이디어는 서로 상관 없는 주성분을 찾아 그중 가장 정보량이 큰 것만 남겨 차원을 줄이는 것이다.

직관을 위해 도시 규모(X1)와 생활비(X2)라는 2차원 예시를 든다. 큰 도시일수록 생활비가 높은 경향이 있어 두 값은 사실상 중복된다. 이 데이터를 하나의 차원으로 압축하려면 어떤 축을 새 축으로 삼아야 정보를 가장 많이 남길까? 여기서 정보란 데이터 점들 사이의 관계이며, 그것은 분산으로 측정된다. 데이터가 넓게 퍼진 축일수록 분산이 크고, 로마와 뉴욕 같은 점들의 관계를 더 잘 보존한다.

이렇게 찾은 두 축이 주성분이다. 둘 다 도시 규모와 생활비 정보를 함께 담지만, 개별 원래 특성보다 더 많은 정보를 포착하기에 '주된' 성분이라 부른다. 스크리 플롯으로 각 성분이 설명하는 분산을 보고, 분산을 가장 많이 담은 성분만 남긴다. 예시에서는 첫 주성분 하나만 남겨도 원래 정보의 약 90%를 유지한다. 같은 원리를 얼굴 이미지 같은 고차원에도 확장하면 '아이겐페이스'가 되며, 소수의 주성분으로 얼굴을 근사 복원할 수 있다(단, 성분 수가 원래보다 적으면 정보 손실이 따른다).

주성분을 찾는 방법에는 기하학적으로 점들과의 거리가 최소인 직선을 찾는 관점, 선형대수를 쓰는 관점, 최대 분산 방향을 찾는 관점이 있는데, 제곱 거리의 최소화와 분산의 최대화는 피타고라스 정리에 의해 같은 지점에서 이뤄지므로 모두 같은 해에 도달한다. 효율적인 닫힌 형태의 해는 공분산행렬에서 시작한다. 공분산행렬은 대각에 각 변수의 분산을, 비대각에 변수 간 공분산을 담아 데이터가 어느 방향으로 함께 변하는지 알려준다.

선형변환은 고유벡터, 즉 변환에도 방향이 바뀌지 않는 벡터로 특징지어지고, 그 늘어난 정도가 고윳값이다. 스펙트럴 정리에 따라 공분산행렬 같은 대칭행렬은 항상 실수 고유벡터·고윳값을 가지며 대각화된다. 놀랍게도 공분산행렬의 고유벡터가 곧 주성분(가장 분산이 큰 방향)이고 고윳값이 각 성분의 설명 분산이다. 알고리즘은 ①데이터 중심화 ②공분산행렬 계산 ③고유값 분해 ④고윳값이 큰 고유벡터로 사영의 네 단계를 거친다. 다만 실무에서는 복잡도가 더 낮고 공분산행렬을 따로 만들 필요가 없는 SVD를 주로 쓰며, 결과는 고유분해와 동일하다. 비선형이 필요하면 커널 PCA로 확장한다.

주요 인사이트

  • '분산을 최대한 보존한다'는 추상적인 말은, 점들이 넓게 퍼질수록 서로 구별하기 쉬워 정보가 많다는 뜻으로 읽으면 구체화된다. 분산이 0이면 모든 점이 한 값에 겹쳐 구별이 불가능하다.
  • 거리 최소화·분산 최대화·선형대수 세 관점이 모두 같은 답에 이르는 이유는 피타고라스 정리 때문이다. 사영 거리와 축 방향 분산이 직각삼각형의 두 변처럼 맞물려 있다.
  • 주성분이 서로 직교하는 것은 우연이 아니라, 대칭행렬의 고유벡터가 항상 직교하기 때문이다. 그래서 PCA는 데이터를 상관 없는(비상관) 기저로 옮긴다.
  • 고유분해는 정사각행렬에만, 세제곱 복잡도로 동작한다. 반면 SVD는 직사각행렬에도 적용되고 공분산행렬 없이 데이터에 바로 쓸 수 있어 실무 라이브러리의 기본 선택이 된다.

자주 묻는 질문

PCA에서 '정보를 보존한다'는 것을 왜 분산으로 측정하는가?

영상에 따르면 정보는 주로 데이터 점들 사이의 관계이며, 점들이 중심에서 멀리 퍼져 있을수록 분산이 크고 서로 구별하기 쉬워 더 많은 정보를 담는다. 극단적으로 분산이 0이면 모든 점이 한 값에 겹쳐 서로 구별할 수 없으므로, 분산을 정보의 척도로 삼는다.

공분산행렬의 고유벡터와 고윳값은 PCA에서 각각 무엇을 뜻하는가?

스펙트럴 정리에 따라 대칭행렬인 공분산행렬은 항상 대각화되며, 그 고유벡터가 주성분(분산이 가장 큰 방향)에 해당하고 고윳값이 각 주성분이 설명하는 분산에 해당한다.

실제 라이브러리는 왜 고유분해 대신 SVD를 쓰는가?

고유분해는 세제곱 복잡도를 갖고 정사각행렬에만 적용되는 반면, SVD는 복잡도가 더 낮고 직사각행렬도 다룰 수 있으며 공분산행렬을 따로 만들지 않고 데이터에 바로 적용할 수 있어 대개 더 빠르다. 두 방법의 결과는 동일하다.

원문과 출처

이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.

YouTube 원본 영상 보기 ↗

관련 AI 소식

#PCA#주성분분석#차원축소#공분산행렬#고유벡터