8.78 주성분 분석(PCA)의 원리

1. PCA의 개요

주성분 분석(Principal Component Analysis, PCA)은 고차원 데이터를 저차원으로 축소하는 대표적인 비지도 학습 방법이다. 데이터의 분산을 최대한 보존하는 직교 방향(주성분)을 찾아, 데이터를 이들 방향으로 투영함으로써 차원을 축소한다. 피어슨(Pearson, 1901)과 호텔링(Hotelling, 1933)에 의해 개발되었다.

2. PCA의 수학적 정식화

2.1 문제 정의

n개의 d차원 데이터 \{\mathbf{x}_1, \ldots, \mathbf{x}_n\}이 주어졌을 때, 분산을 최대화하는 방향 \mathbf{w} \in \mathbb{R}^d (\lVert\mathbf{w}\rVert = 1)를 구한다.

데이터의 중심화: \mathbf{x}_i \leftarrow \mathbf{x}_i - \bar{\mathbf{x}}.

투영된 데이터 z_i = \mathbf{w}^T\mathbf{x}_i의 분산:

\text{Var}(z) = \mathbf{w}^T\boldsymbol{\Sigma}\mathbf{w}

여기서 \boldsymbol{\Sigma} = \frac{1}{n-1}\sum_i\mathbf{x}_i\mathbf{x}_i^T는 표본 공분산 행렬이다.

2.2 제1 주성분

\mathbf{w}_1 = \arg\max_{\lVert\mathbf{w}\rVert = 1}\mathbf{w}^T\boldsymbol{\Sigma}\mathbf{w}

라그랑주 승수법에 의해 이 해는 \boldsymbol{\Sigma}의 최대 고유값에 대응하는 고유벡터이다.

\boldsymbol{\Sigma}\mathbf{w}_1 = \lambda_1\mathbf{w}_1, \quad \lambda_1 = \lambda_{\max}

2.3 후속 주성분

제2 주성분 \mathbf{w}_2\mathbf{w}_1과 직교하는 조건하에서 분산을 최대화한다. 이는 두 번째로 큰 고유값에 대응하는 고유벡터이다.

일반적으로 k개의 주성분은 \boldsymbol{\Sigma}의 상위 k개 고유값 \lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_k에 대응하는 고유벡터 \mathbf{w}_1, \ldots, \mathbf{w}_k이다.

3. 특이값 분해와의 관계

데이터 행렬 \mathbf{X} \in \mathbb{R}^{n \times d} (행이 샘플)의 특이값 분해(SVD):

\mathbf{X} = \mathbf{U}\mathbf{S}\mathbf{V}^T

여기서:

  • \mathbf{U} \in \mathbb{R}^{n \times n}: 좌측 특이 벡터
  • \mathbf{S} \in \mathbb{R}^{n \times d}: 특이값
  • \mathbf{V} \in \mathbb{R}^{d \times d}: 우측 특이 벡터

\mathbf{V}의 열이 주성분 방향이며, 특이값 s_i와 고유값이 \lambda_i = s_i^2/(n-1)로 관련된다.

SVD 기반 계산은 공분산 행렬을 명시적으로 형성하지 않으므로 수치적으로 안정적이다.

4. 차원 축소

상위 k개의 주성분으로 데이터를 투영한다.

\mathbf{z}_i = \mathbf{W}_k^T\mathbf{x}_i, \quad \mathbf{W}_k = [\mathbf{w}_1, \ldots, \mathbf{w}_k]

원본 데이터의 근사 재구성:

\hat{\mathbf{x}}_i = \mathbf{W}_k\mathbf{z}_i = \mathbf{W}_k\mathbf{W}_k^T\mathbf{x}_i

5. 분산 설명 비율

k개 주성분이 설명하는 분산의 비율:

\text{Explained Variance Ratio} = \frac{\sum_{i=1}^{k}\lambda_i}{\sum_{i=1}^{d}\lambda_i}

통상 95% 또는 99%의 분산을 설명하는 최소 k를 선택한다.

6. 기하학적 해석

PCA는 데이터의 공분산 행렬의 타원체 주축을 찾는 것이다. 고유벡터가 주축 방향, 고유값이 각 축의 길이 제곱에 비례한다. 주성분은 데이터의 “자연스러운 좌표계“를 제공한다.

7. 전처리 사항

7.1 중심화

PCA 전에 데이터를 중심화하는 것이 필수이다(평균 제거). 그렇지 않으면 제1 주성분이 평균 방향으로 편향된다.

7.2 스케일링

차원들의 단위가 다르면 분산의 의미가 왜곡된다. 각 차원을 표준편차로 나누어 정규화(standardization)한 후 PCA를 수행하는 것이 권장된다.

8. PCA의 확장

8.1 커널 PCA

커널 트릭을 이용하여 비선형 주성분을 추출한다.

8.2 희소 PCA

\ell_1 정규화로 희소한 주성분을 유도한다.

8.3 확률적 PCA

PCA를 잠재 변수 모델로 해석하고 최대 가능도로 학습한다. 결측 데이터 처리가 가능하다.

9. 로봇 공학에서의 PCA 응용

고차원 센서 데이터 축소: 카메라 영상, 라이다 점군 등 고차원 데이터를 PCA로 저차원 특징으로 변환하여 학습 효율을 향상시킨다.

관절 궤적의 분석: 다관절 로봇의 궤적 데이터로부터 주요 운동 패턴을 추출한다. 인간 시범 데이터의 분석에 활용된다.

원격 조작에서의 차원 축소: 원격 조작 사용자의 입력 공간을 축소하여 제어 복잡도를 감소시킨다.

SLAM의 공분산 근사: 큰 공분산 행렬을 PCA로 근사하여 계산 효율을 향상시킨다.

10. 참고 문헌

  • Jolliffe, I. T. (2002). Principal Component Analysis (2nd ed.). Springer.
  • Hotelling, H. (1933). “Analysis of a Complex of Statistical Variables into Principal Components.” Journal of Educational Psychology, 24, 417–441.
  • Bishop, C. M. (2006). Pattern Recognition and Machine Learning. Springer.
  • Hastie, T., Tibshirani, R., & Friedman, J. (2009). The Elements of Statistical Learning (2nd ed.). Springer.

version: 1.0