30.34 고유값 분해와 주성분 분석(PCA)의 수학적 연결
1. 주성분 분석의 수학적 목표
**주성분 분석(Principal Component Analysis, PCA)**은 고차원 데이터를 저차원으로 사영(projection)할 때, 데이터의 **분산(variance)**을 최대한 보존하는 최적의 선형 사영 방향을 찾는 기법이다.
n차원 공간의 데이터 x_1, x_2, \ldots, x_m \in \mathbb{R}^n (m개의 관측)이 주어졌을 때, 중심화(centering) \tilde{x}_i = x_i - \bar{x} (\bar{x} = \frac{1}{m}\sum x_i) 후, 단위 벡터 u \in \mathbb{R}^n (\lVert u \rVert = 1) 방향으로의 사영의 분산은
\operatorname{Var}(u) = \frac{1}{m-1} \sum_{i=1}^{m} (u^T \tilde{x}_i)^2 = u^T \left(\frac{1}{m-1} \sum_{i=1}^{m} \tilde{x}_i \tilde{x}_i^T \right) u = u^T S u
여기서 S = \frac{1}{m-1} \sum_{i=1}^{m} \tilde{x}_i \tilde{x}_i^T는 **표본 공분산 행렬(sample covariance matrix)**이다. PCA의 핵심 최적화 문제는
\max_{\lVert u \rVert = 1} u^T S u
이다. 이 문제의 해가 공분산 행렬의 고유값 분해와 직접 연결된다.
2. 최대 분산 방향과 고유값 문제의 연결
정리. 표본 공분산 행렬 S = S^T \succeq 0에 대하여, \max_{\lVert u \rVert = 1} u^T S u의 최댓값은 S의 최대 고유값 \lambda_1이고, 최적해는 \lambda_1에 대응하는 고유벡터 q_1이다.
증명. 라그랑주 승수법을 적용한다. 제약 조건 \lVert u \rVert^2 - 1 = 0 하에서 L(u, \mu) = u^T S u - \mu (u^T u - 1)의 정상점(stationary point)을 구하면
\nabla_u L = 2 S u - 2 \mu u = 0 \implies S u = \mu u
이는 S의 고유값 문제이다. 정상점에서 u^T S u = \mu u^T u = \mu이므로, 목적 함수의 값은 고유값 \mu 자체이다. 따라서 최댓값은 최대 고유값 \lambda_1이고, 이를 달성하는 u는 \lambda_1에 대응하는 고유벡터 q_1이다. \blacksquare
이 결과는 레일리 몫의 극값 특성화의 직접적 적용이다.
3. 순차적 주성분의 도출
제1주성분. q_1 = \arg\max_{\lVert u \rVert = 1} u^T S u이고, 보존되는 분산은 \lambda_1이다.
제2주성분. q_1에 직교하는 방향 중 분산을 최대화하는 방향:
q_2 = \arg\max_{\lVert u \rVert = 1, \, u \perp q_1} u^T S u
q_1에 직교하는 부분 공간에서의 레일리 몫의 극값은 쿠랑-피셔 정리(Courant-Fischer theorem)에 의하여 두 번째로 큰 고유값 \lambda_2이고, 최적해는 \lambda_2에 대응하는 고유벡터 q_2이다.
제k주성분. 일반적으로, q_k는 q_1, \ldots, q_{k-1}에 직교하는 방향 중 분산을 최대화하는 방향이며, S의 k번째로 큰 고유값 \lambda_k에 대응하는 고유벡터이다.
따라서 PCA의 주성분은 정확히 공분산 행렬의 고유벡터이며, 각 주성분 방향의 분산은 대응하는 고유값이다.
4. 공분산 행렬의 직교 대각화와 PCA
공분산 행렬 S는 대칭 양의 반정부호이므로 직교 대각화가 가능하다:
S = Q \Lambda Q^T, \quad Q = (q_1 \mid q_2 \mid \cdots \mid q_n), \quad \Lambda = \operatorname{diag}(\lambda_1, \lambda_2, \ldots, \lambda_n)
여기서 \lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_n \geq 0이다.
데이터를 주성분 좌표계로 변환하면 y_i = Q^T \tilde{x}_i이고, 변환된 데이터의 공분산 행렬은
\frac{1}{m-1} \sum y_i y_i^T = Q^T S Q = \Lambda
으로 대각화된다. 즉, 주성분 좌표계에서 변수 간의 공분산은 모두 0이 되고, 각 변수의 분산은 고유값이 된다. 이것이 PCA의 핵심적 기하학이다: PCA는 데이터의 공분산 구조를 대각화하는 직교 좌표 변환이다.
5. 차원 축소와 설명 분산 비율
n차원 데이터를 k차원 (k < n)으로 사영할 때, 처음 k개의 주성분을 선택한다. 사영 행렬은 P_k = (q_1 \mid q_2 \mid \cdots \mid q_k) \in M_{n \times k}(\mathbb{R})이고, 사영된 데이터는 y_i = P_k^T \tilde{x}_i \in \mathbb{R}^k이다.
보존되는 분산의 비율:
\frac{\sum_{j=1}^{k} \lambda_j}{\sum_{j=1}^{n} \lambda_j} = \frac{\sum_{j=1}^{k} \lambda_j}{\operatorname{tr}(S)}
이 비율이 클수록 (예: 95% 이상) k개의 주성분이 원 데이터의 분산을 충분히 설명한다. k의 선택은 이 비율을 기준으로 결정하는 것이 일반적이다.
재구성 오차의 최소화. PCA에 의한 k차원 사영은 모든 k차원 선형 사영 중에서 **평균 재구성 오차(mean reconstruction error)**를 최소화한다:
\min_{\text{rank-}k \text{ projection}} \frac{1}{m} \sum_{i=1}^{m} \lVert \tilde{x}_i - \hat{x}_i \rVert^2 = \sum_{j=k+1}^{n} \lambda_j
여기서 \hat{x}_i = P_k P_k^T \tilde{x}_i는 재구성된 데이터이다. 이 결과는 Eckart-Young-Mirsky 정리의 특수 경우이다.
6. PCA의 알고리즘적 구현
PCA의 계산은 다음과 같이 수행된다:
방법 1: 공분산 행렬의 고유값 분해.
- 데이터를 중심화한다.
- 표본 공분산 행렬 S = \frac{1}{m-1} \tilde{X}^T \tilde{X}를 구성한다 (\tilde{X} \in M_{m \times n}은 중심화된 데이터 행렬).
- S의 고유값 분해 S = Q \Lambda Q^T를 수행한다.
- Q의 열벡터 중 큰 고유값에 대응하는 k개를 선택한다.
이 방법의 비용은 S 구성에 O(mn^2), 고유값 분해에 O(n^3)이다.
방법 2: 데이터 행렬의 특이값 분해(SVD).
- 중심화된 데이터 행렬 \tilde{X}의 SVD를 수행한다: \tilde{X} = U \Sigma V^T.
- 주성분 방향은 V의 열벡터이고, 고유값은 \sigma_i^2 / (m-1)이다.
SVD 기반 방법은 공분산 행렬의 명시적 구성을 회피하므로 수치적으로 더 안정하며, m < n인 경우에도 효율적이다.
7. 고유값의 감소 속도와 데이터의 내재적 차원
고유값의 감소 속도는 데이터의 **내재적 차원(intrinsic dimensionality)**을 반영한다.
- 급속 감소: 처음 소수의 고유값이 전체 분산의 대부분을 설명한다. 데이터가 저차원 부분 공간에 집중되어 있으며, 효과적인 차원 축소가 가능하다.
- 완만한 감소: 많은 주성분이 유의미한 분산을 갖는다. 데이터의 내재적 차원이 높으며, 차원 축소에 의한 정보 손실이 크다.
고유값의 감소 패턴은 스크리 도표(scree plot) (고유값을 내림차순으로 도시한 그래프)에서 시각적으로 확인할 수 있다.
8. 수치 예시
3차원 데이터 n = 3, 관측 수 m = 4:
X = \begin{pmatrix} 2 & 1 & 0 \\ 4 & 3 & 1 \\ 6 & 5 & 1 \\ 8 & 7 & 2 \end{pmatrix}
중심화: \bar{x} = (5, 4, 1)이고 \tilde{X} = X - \mathbf{1}\bar{x}^T.
\tilde{X} = \begin{pmatrix} -3 & -3 & -1 \\ -1 & -1 & 0 \\ 1 & 1 & 0 \\ 3 & 3 & 1 \end{pmatrix}
S = \frac{1}{3} \tilde{X}^T \tilde{X} = \frac{1}{3} \begin{pmatrix} 20 & 20 & 6 \\ 20 & 20 & 6 \\ 6 & 6 & 2 \end{pmatrix} = \begin{pmatrix} 20/3 & 20/3 & 2 \\ 20/3 & 20/3 & 2 \\ 2 & 2 & 2/3 \end{pmatrix}
S의 고유값을 구하면 \lambda_1 \approx 14.19, \lambda_2 \approx 0.47, \lambda_3 = 0이다. \lambda_3 = 0은 데이터가 2차원 부분 공간에 놓여 있음을 뜻한다.
설명 분산 비율: \lambda_1 / (\lambda_1 + \lambda_2) \approx 96.8\%. 제1주성분만으로 분산의 약 97%를 설명한다.
9. 고유값 분해와 PCA의 관계 요약
| PCA 개념 | 고유값 분해 대응물 |
|---|---|
| 주성분 방향 | 공분산 행렬의 고유벡터 |
| 주성분의 분산 | 공분산 행렬의 고유값 |
| 좌표 변환 행렬 | 직교 고유벡터 행렬 Q |
| 공분산의 대각화 | Q^T S Q = \Lambda |
| 차원 축소 | 큰 고유값에 대응하는 고유벡터 선택 |
| 재구성 오차 | 폐기된 고유값의 합 |
| 설명 분산 비율 | 선택된 고유값의 합 / 전체 고유값의 합 |
PCA는 본질적으로 공분산 행렬의 직교 대각화이며, 고유값 분해가 PCA의 수학적 기초를 완전히 제공한다. 고유값의 크기는 각 주성분의 중요도를 정량화하고, 고유벡터는 최적 사영 방향을 결정한다.