교재 범위: Deisenroth, Faisal, Ong, Mathematics for Machine Learning(MML), pp. 317–347.
선후수 연결 및 의존성: 이 장은 비지도 학습(Unsupervised Learning)의 대표 기법인 차원 축소(Dimensionality Reduction)를 다룹니다. 3장의 직교 사영(Orthogonal Projection), 4장의 고유값 분해(Eigendecomposition) 및 특이값 분해(SVD), 7장의 등식 제약 조건 최적화(라그랑주 승수법, Lagrange Multipliers), 6장의 가우시안 확률 모델이 정확히 결합된 장입니다. 여기서 다루는 데이터 압축과 잠재 표현(Latent Representation)의 개념은 현대 오토인코더(Autoencoder), 확산 모델(Diffusion Model), 고차원 임베딩 분석의 기초를 이룹니다.


0. 이 장 지도 (Roadmap)

주성분 분석(PCA, Principal Component Analysis)은 고차원(DD차원) 공간에 흩어져 있는 데이터의 핵심 정보를 손실을 최소화하면서 저차원(MM차원, M≪DM \ll D) 공간으로 압축하는 선형 차원 축소 알고리즘입니다. MML 교재 10장은 PCA를 세 가지 서로 다른 심오한 관점에서 유도하고 이들이 왜 수학적으로 정확히 일치하는지를 증명합니다:

  1. 분산 최대화 관점 (Maximum Variance): 사영된 데이터의 분산(정보량)을 가장 크게 만드는 축을 찾자!
  2. 사영/재구성 오차 최소화 관점 (Minimum Reconstruction Error): 원래 데이터와 사영된 데이터 사이의 유클리드 거리 제곱 오차를 가장 작게 만들자!
  3. 잠재 변수/확률론적 관점 (Latent Variable / Probabilistic PCA): 저차원 가우시안 잠재 변수로부터 고차원 데이터가 노이즈와 함께 생성되었다는 생성 모델을 세우자!

절 목록 및 핵심 요약

절 번호절 제목 (영문)교재 쪽수핵심 한 줄 요약중요도
10.1문제 설정 (Problem Setting)319DD차원 데이터를 정보 손실을 최소화하며 MM차원 잠재 좌표로 선형 변환하는 프레임워크★★☆
10.2분산 최대화 관점 (Maximum Variance Perspective)320데이터가 가장 넓게 퍼지는 방향을 주성분으로 선택하는 라그랑주 승수법 기반 유도★★★
10.2.1최대 분산 방향 (Direction with Maximal Variance)3211차원 사영 분산 b1⊤Sb1b_1^\top S b_1 최대화 →\to 공분산 행렬 SS의 최대 고유벡터 도출★★★
10.2.2최대 분산 MM차원 부분공간 (MM-dim Subspace with Maximal Variance)323직교 제약 조건 하에서 상위 MM개의 고유벡터가 최적의 기저가 됨을 증명★★★
10.3사영 관점 (Projection Perspective)325원본 데이터와 복원 데이터 사이의 거리 제곱(재구성 오차)을 최소화하는 관점★★★
10.3.1설정 및 목적함수 (Setting and Objective)326아핀 부분공간 위의 점 x~n=b+Bzn\tilde{x}_n = b + B z_n과 오차 함수 J=1N∑∥xn−x~n∥2J = \frac{1}{N}\sum \|x_n - \tilde{x}_n\|^2 정의★★☆
10.3.2최적 좌표 탐색 (Finding Optimal Coordinates)327최적 오프셋은 데이터 평균(b=μb = \mu), 최적 좌표는 직교 사영 계수(znm=bm⊤(xn−μ)z_{nm} = b_m^\top(x_n-\mu))★★★
10.3.3주부분공간 기저 탐색 (Finding the Basis of the Principal Subspace)329재구성 오차 최소화가 버려진 D−MD-M개 고유값의 합 ∑j=M+1Dλj\sum_{j=M+1}^D \lambda_j과 같음을 증명 (동치성)★★★
10.4고유벡터 계산과 저계수 근사 (Eigenvector & Low-Rank Approx)332특이값 분해(SVD)와 Eckart-Young 정리를 통한 최적 계수 MM 행렬 근사 증명★★★
10.4.1저계수 근사를 통한 PCA (PCA Using Low-Rank Matrix Approx)333중심화 데이터 행렬 XX의 절단 SVD(Truncated SVD)가 곧 PCA 해임을 증명★★★
10.4.2실무적 계산 고려사항 (Practical Aspects)334고차원에서의 특성방정식 한계(Abel-Ruffini)와 수치적 거듭제곱법(Power Iteration)★★☆
10.5고차원에서의 PCA (PCA in High Dimensions, N<DN < D)335D×DD \times D 공분산 대신 N×NN \times N 그람 행렬 1NX⊤X\frac{1}{N}X^\top X를 풀어 연산량을 획기적으로 절감★★★
10.6실전에서의 PCA 핵심 단계 (Key Steps of PCA in Practice)337중심화(평균 차감), 표준화(정규화), 고유분해, 사영, 복원 6단계 정리★★★
10.7잠재 변수 관점 (Latent Variable Perspective, PPCA)339확률적 PCA: 가우시안 잠재 변수 zz로부터 관측치 x=Bz+μ+ϵx = Bz + \mu + \epsilon을 생성하는 모델★★★
10.7.1생성 과정 및 확률 모델 (Generative Process & Probabilistic Model)340사전분포 p(z)p(z)와 조건부 분포 p(x∣z)p(x \mid z)로 정의되는 그래피컬 모델★★☆
10.7.2가능도 및 결합 분포 (Likelihood and Joint Distribution)342주변 가우시안 분포 p(x)=N(μ,BB⊤+σ2I)p(x) = \mathcal{N}(\mu, BB^\top + \sigma^2 I) 유도★★★
10.7.3사후 분포 (Posterior Distribution)343p(z∣x)p(z \mid x) 계산, Woodbury 항등식 역행렬 변환, σ2→0\sigma^2 \to 0 극한에서의 표준 PCA 복원★★★
10.8더 읽을거리 (Further Reading)345커널 PCA, 오토인코더(Autoencoder), GP-LVM과의 개념적 계보★☆☆

중요도 선정 근거:

  • 10.2, 10.3, 10.4, 10.5, 10.7 (★★★): 라그랑주 승수법 유도, 두 관점의 동치성 증명, SVD 및 Eckart-Young 연결, N<DN < D 차원 축소 트릭, PPCA의 잠재변수 사후분포는 선형대수와 확률을 함께 쓰는 유도라 손으로 한 번씩 써 볼 만합니다.
graph TD
    A["10.1 차원 축소 문제 설정<br>(D차원 → M차원 압축)"] --> B["10.2 분산 최대화 관점<br>(Var = b₁ᵀ S b₁ 최대화)"]
    A --> C["10.3 사영/재구성오차 관점<br>(J = Σ ||xₙ - x̃ₙ||² 최소화)"]
    
    B --> D["고유값 문제 도출<br>S b₁ = λ₁ b₁"]
    C --> D
    
    D --> E["10.4 SVD 및 저계수 근사<br>(Eckart-Young 정리: X̃_M = U_M Σ_M V_Mᵀ)"]
    D --> F["10.5 고차원 PCA (N < D)<br>(N×N 그람 행렬 풀이: b_m ∝ X c_m)"]
    
    A --> G["10.7 확률적 PCA (PPCA)<br>(x = Bz + μ + ε, z ~ N(0,I))"]
    G --> H["잠재 사후분포 p(z|x)<br>(σ² → 0 극한 시 직교 사영 Bᵀ(x-μ)로 수렴)"]

10.1 문제 설정 (Problem Setting, 318쪽)

왜 필요한가 (직관과 개념)

현대 머신러닝 데이터는 차원이 매우 높습니다. 예를 들어 28×2828 \times 28 크기의 작은 흑백 이미지 하나만 해도 784차원 벡터(D=784D = 784)입니다. 하지만 고차원 데이터의 모든 축이 다 중요한 정보를 담고 있는 것은 아닙니다.

  • 다중공선성과 중복성: 픽셀 값들끼리는 서로 강한 상관관계를 가집니다.
  • 차원의 저주(Curse of Dimensionality): 차원이 높아질수록 데이터가 존재하는 공간의 부피가 기하급수적으로 팽창하여, 데이터를 채우기 위해 필요한 표본 수가 폭증하고 거리 개념이 무의미해집니다.
  • 시각화의 한계: 인간은 3차원을 초과하는 공간을 직접 볼 수 없습니다.

따라서 데이터의 중요한 정보(본질적인 변동/분산)는 고스란히 보존하면서, 덜 중요한 정보(잡음/상관된 중복 축)를 쳐내어 MM차원(M≪DM \ll D)으로 데이터를 압축해야 합니다.

정의와 성질

1. 인코더(Encoder)와 디코더(Decoder)의 쌍

  • 원본 고차원 데이터: xn∈RDx_n \in \mathbb{R}^D (n=1,…,Nn = 1, \dots, N)
  • 압축된 저차원 잠재 좌표 (코드): zn∈RMz_n \in \mathbb{R}^M (M<DM < D)
  • 인코더 (Encoder, 사영/압축 매핑): zn=g(xn)=B⊤(xn−μ)z_n = g(x_n) = B^\top (x_n - \mu)
  • 디코더 (Decoder, 복원/재구성 매핑): x~n=h(zn)=Bzn+μ\tilde{x}_n = h(z_n) = B z_n + \mu

여기서:

  • B=[b1,b2,…,bM]∈RD×MB = [b_1, b_2, \dots, b_M] \in \mathbb{R}^{D \times M}: MM개의 정규직교(orthonormal) 기저 벡터로 이루어진 변환 행렬 (B⊤B=IMB^\top B = I_M)
  • μ∈RD\mu \in \mathbb{R}^D: 데이터의 중심(오프셋 벡터, 보통 데이터 표본 평균)
  • x~n∈RD\tilde{x}_n \in \mathbb{R}^D: 저차원 코드 znz_n으로부터 다시 DD차원 공간으로 복원한 재구성 벡터(Reconstruction Vector)

10.2 분산 최대화 관점 (Maximum Variance Perspective, 320쪽)

왜 필요한가 (직관과 개념)

데이터를 1차원 직선 위로 사영(그림자 드리우기)한다고 상상해 보십시오.

  • 만약 데이터가 길쭉하게 늘어선 방향으로 선을 긋고 사영하면, 데이터 포인트들이 서로 겹치지 않고 넓게 퍼져 원래의 위치 관계를 잘 유지합니다 (분산 최대화 →\to 정보 보존).
  • 반대로 데이터가 좁게 모인 수직 방향으로 사영하면, 모든 점들이 한 덩어리로 뭉개져 버려 원래 어떤 점이 어디 있었는지 구별할 수 없게 됩니다 (정보 소실).

따라서 “사영된 데이터들의 분산(Variance)이 가장 커지도록 사영 축을 정하는 것”이 PCA의 첫 번째 핵심 철학입니다.

       [2차원 원본 데이터]           [최적 사영 방향 b₁ (최대 분산)]
              y                            y
              │    ●                       │    ● ╱
              │   ● ●                      │   ● ╱●   (점들이 길게 퍼짐:
              │  ● ● ●                     │  ● ╱● ●   정보 보존 우수!)
              │ ● ●                        │ ● ╱●
              └──────── x                  └───╱──── x
                                              b₁
                                     [나쁜 사영 방향 b₂ (최소 분산)]
                                           점들이 한 점으로 뭉개짐!

10.2.1 최대 분산 방향 유도 (Direction with Maximal Variance, 321쪽)

정의와 성질

1. 중심화 데이터 및 표본 공분산 행렬

데이터셋의 표본 평균을 μ=1N∑n=1Nxn\mu = \frac{1}{N} \sum_{n=1}^N x_n이라 할 때, 평균을 0으로 맞춘 중심화 데이터(Centered Data)를 가정합니다:

∑n=1Nxn=0  ⟺  μ=0\sum_{n=1}^N x_n = 0 \iff \mu = 0

표본 공분산 행렬(Data Covariance Matrix) S∈RD×DS \in \mathbb{R}^{D \times D}는 다음과 같이 정의됩니다:

S=1N∑n=1Nxnxn⊤=1NXX⊤S = \frac{1}{N} \sum_{n=1}^N x_n x_n^\top = \frac{1}{N} X X^\top
  • X=[x1,x2,…,xN]∈RD×NX = [x_1, x_2, \dots, x_N] \in \mathbb{R}^{D \times N}은 데이터 행렬입니다. 주의: 9장(회귀)은 데이터 점을 행으로 쌓아 N×DN\times D로 쓰지만, 10장(교재 10.3절 식 (10.17)부터, 10.4절 SVD)은 점을 열로 세워 D×ND\times N으로 쓴다. 그래서 9장의 X⊤XX^\top X에 해당하는 것이 10장에서는 XX⊤XX^\top이다. 두 장의 식을 섞어 쓸 때 전치를 확인한다. 주의: 9장(회귀)은 데이터 점을 행으로 쌓아 N×DN\times D로 쓰지만, 10장(교재 10.3절 식 (10.17)부터, 10.4절 SVD)은 점을 열로 세워 D×ND\times N으로 쓴다. 그래서 9장의 X⊤XX^\top X에 해당하는 것이 10장에서는 XX⊤XX^\top이다. 두 장의 식을 섞어 쓸 때 전치를 확인한다.
  • SS는 대칭(Symmetric) 행렬이며, 양의 준정부호(Positive Semi-Definite) 행렬입니다 (x⊤Sx≥0x^\top S x \ge 0).

교재 표기법 주의 (MML 관례): 통계학의 비편향 공분산은 자유도 분모로 1N−1\frac{1}{N-1}을 사용하지만, MML 교재와 머신러닝 교과서(Bishop 등)에서는 최대가능도 표본 공분산 관례인 1N\frac{1}{N}을 일관되게 사용합니다. 본 해설서도 교재 관례인 1N\frac{1}{N}을 엄격히 따릅니다.

2. 1차원 사영 분산의 수식화

길이가 1인 단위 방향 벡터 b1∈RDb_1 \in \mathbb{R}^D (b1⊤b1=1b_1^\top b_1 = 1) 위로 데이터 xnx_n을 사영한 스칼라 좌표는 zn1=b1⊤xnz_{n1} = b_1^\top x_n 입니다.

  • 사영된 데이터의 평균: 1N∑n=1Nzn1=1N∑n=1Nb1⊤xn=b1⊤(1N∑n=1Nxn)=b1⊤0=0\frac{1}{N} \sum_{n=1}^N z_{n1} = \frac{1}{N} \sum_{n=1}^N b_1^\top x_n = b_1^\top \left( \frac{1}{N} \sum_{n=1}^N x_n \right) = b_1^\top 0 = 0
  • 사영된 데이터의 분산 V1V_1: V1=1N∑n=1N(zn1−0)2=1N∑n=1N(b1⊤xn)2=1N∑n=1N(b1⊤xn)(xn⊤b1)V_1 = \frac{1}{N} \sum_{n=1}^N (z_{n1} - 0)^2 = \frac{1}{N} \sum_{n=1}^N (b_1^\top x_n)^2 = \frac{1}{N} \sum_{n=1}^N (b_1^\top x_n)(x_n^\top b_1) =b1⊤(1N∑n=1Nxnxn⊤)b1=b1⊤Sb1= b_1^\top \left( \frac{1}{N} \sum_{n=1}^N x_n x_n^\top \right) b_1 = b_1^\top S b_1
3. 라그랑주 승수법을 통한 최적화

목표는 단위 길이 제약 조건 ∥b1∥2=b1⊤b1=1\|b_1\|^2 = b_1^\top b_1 = 1 하에서 분산 b1⊤Sb1b_1^\top S b_1을 최대화하는 것입니다:

max⁡b1b1⊤Sb1subject to b1⊤b1=1\max_{b_1} b_1^\top S b_1 \quad \text{subject to } b_1^\top b_1 = 1

7장의 라그랑주 승수법(Lagrange Multipliers)에 따라 라그랑지안 함수를 세웁니다:

L(b1,λ1)=b1⊤Sb1−λ1(b1⊤b1−1)\mathfrak{L}(b_1, \lambda_1) = b_1^\top S b_1 - \lambda_1 (b_1^\top b_1 - 1)

b1b_1에 대해 편미분하고 0으로 둡니다:

∇b1L=2Sb1−2λ1b1=0  ⟺  Sb1=λ1b1\begin{gathered} \nabla_{b_1} \mathfrak{L} = 2 S b_1 - 2 \lambda_1 b_1 = 0 \\ \iff S b_1 = \lambda_1 b_1 \end{gathered}

이것은 정확히 공분산 행렬 SS의 고유값 방정식(Eigenvalue Equation)입니다!

  • b1b_1은 공분산 행렬 SS의 고유벡터(Eigenvector)이어야 합니다.
  • λ1\lambda_1은 이에 대응하는 고유값(Eigenvalue)입니다.

이때 사영된 데이터의 분산 값을 계산해 보면:

V1=b1⊤Sb1=b1⊤(λ1b1)=λ1(b1⊤b1)=λ1\begin{aligned} V_1 &= b_1^\top S b_1 = b_1^\top (\lambda_1 b_1) \\ &= \lambda_1 (b_1^\top b_1) = \lambda_1 \end{aligned}

분산 V1V_1이 다름 아닌 고유값 λ1\lambda_1 그 자체가 됩니다! 따라서 분산 V1V_1을 최대로 만들려면, 수많은 고유값들 중에서 가장 큰 고유값(최대 고유값) λ1\lambda_1에 대응하는 고유벡터 b1b_1을 선택해야 합니다. 이것이 바로 제1 주성분(First Principal Component)입니다.


10.2.2 최대 분산을 갖는 MM차원 부분공간 (322쪽)

제2 주성분 b2b_2의 유도

제1 주성분 b1b_1과 겹치지 않는 새로운 정보를 포착하기 위해, b2b_2는 b1b_1과 서로 직교(b2⊤b1=0b_2^\top b_1 = 0)하면서 단위 길이(b2⊤b2=1b_2^\top b_2 = 1)를 만족해야 합니다:

max⁡b2b2⊤Sb2subject to b2⊤b2=1,  b2⊤b1=0\begin{gathered} \max_{b_2} b_2^\top S b_2 \\ \text{subject to } b_2^\top b_2 = 1, \; b_2^\top b_1 = 0 \end{gathered}

두 개의 제약 조건을 라그랑지안에 넣습니다:

L(b2,λ2,η)=b2⊤Sb2−λ2(b2⊤b2−1)−η(b2⊤b1)\begin{aligned} \mathfrak{L}(b_2, \lambda_2, \eta) &= b_2^\top S b_2 - \lambda_2 (b_2^\top b_2 - 1) \\ &\quad - \eta (b_2^\top b_1) \end{aligned}

b2b_2로 미분:

∇b2L=2Sb2−2λ2b2−ηb1=0\nabla_{b_2} \mathfrak{L} = 2 S b_2 - 2 \lambda_2 b_2 - \eta b_1 = 0

양변 왼쪽에 b1⊤b_1^\top을 곱합니다:

2b1⊤Sb2−2λ2(b1⊤b2)−η(b1⊤b1)=02 b_1^\top S b_2 - 2 \lambda_2 (b_1^\top b_2) - \eta (b_1^\top b_1) = 0
  • SS의 대칭성과 Sb1=λ1b1S b_1 = \lambda_1 b_1에 의해: b1⊤Sb2=(Sb1)⊤b2=λ1b1⊤b2=0b_1^\top S b_2 = (S b_1)^\top b_2 = \lambda_1 b_1^\top b_2 = 0
  • 직교 조건에 의해 b1⊤b2=0b_1^\top b_2 = 0
  • 단위 길이에 의해 b1⊤b1=1b_1^\top b_1 = 1 따라서 0−0−η(1)=0  ⟹  η=00 - 0 - \eta (1) = 0 \implies \eta = 0이 됩니다!

결국 남는 방정식은 다시 단순한 고유값 방정식이 됩니다:

Sb2=λ2b2S b_2 = \lambda_2 b_2

따라서 b2b_2 역시 SS의 고유벡터이며, b1b_1을 제외한 남은 고유값들 중 두 번째로 큰 고유값 λ2\lambda_2에 대응하는 고유벡터를 선택해야 분산이 극대화됩니다.

일반화: MM차원 주부분공간 (Principal Subspace)

귀납법(Mathematical Induction)에 의해, MM차원 부분공간으로 분산을 최대화하며 사영할 때 최적의 정규직교 기저 b1,…,bMb_1, \dots, b_M은 공분산 행렬 SS의 가장 큰 고유값 MM개(λ1≥λ2≥⋯≥λM\lambda_1 \ge \lambda_2 \ge \dots \ge \lambda_M)에 대응하는 고유벡터들입니다. 이때 MM개 축으로 사영된 데이터의 총 분산의 합은 고유값들의 합과 같습니다:

∑m=1MV[zm]=∑m=1Mλm\sum_{m=1}^{M} \mathbb{V}[z_m] = \sum_{m=1}^M \lambda_m

10.3 사영 관점 / 재구성 오차 최소화 (Projection Perspective, 325쪽)

왜 필요한가 (직관과 개념)

10.2절에서는 “데이터를 사영했을 때 분산을 가장 크게 만들자"는 관점으로 출발했습니다. 10.3절에서는 완전히 다른, 그러나 매우 직관적인 공학적 관점에서 출발합니다: “원래 고차원 데이터 xnx_n과 저차원으로 압축했다가 다시 복원한 데이터 x~n\tilde{x}_n 사이의 차이(재구성 오차, Reconstruction Error)를 가장 작게 만들자!”

데이터를 압축해서 전송하거나 저장할 때 발생하는 왜곡을 최소화하겠다는 목표입니다. 이 최소 재구성 오차 문제는 분산 최대화 문제와 수학적으로 완전히 동일한 고유값 분해 해로 귀결됩니다.

                  xₙ (원래 고차원 데이터)
                  │ ╲
                  │   ╲  재구성 오차 벡터: xₙ - x̃ₙ
                  │     ╲ (길이 ||xₙ - x̃ₙ||를 최소화해야 함!)
                  ▼       ▼
                  x̃ₙ = b + B zₙ  ─── [아핀 부분공간 U]
                 (복원된 근사 벡터)

10.3.1 설정 및 목적함수 (Setting and Objective, 326쪽)

정의

DD차원 벡터 공간 내에서 원점을 지나지 않을 수도 있는 MM차원 아핀 부분공간(Affine Subspace) U⊂RDU \subset \mathbb{R}^D를 생각합니다.

  • 아핀 부분공간의 정의: U={x~∈RD∣x~=b+Bz,  z∈RM}U = \{ \tilde{x} \in \mathbb{R}^D \mid \tilde{x} = b + B z, \; z \in \mathbb{R}^M \}
  • b∈RDb \in \mathbb{R}^D: 부분공간의 원점을 지정하는 오프셋 벡터(Offset Vector)
  • B=[b1,…,bM]∈RD×MB = [b_1, \dots, b_M] \in \mathbb{R}^{D \times M}: UU의 방향을 결정하는 정규직교 기저 행렬 (B⊤B=IMB^\top B = I_M)
  • zn=[zn1,…,znM]⊤∈RMz_n = [z_{n1}, \dots, z_{nM}]^\top \in \mathbb{R}^M: 데이터 xnx_n이 부분공간 UU 상에서 갖는 저차원 좌표 벡터 (코드)

복원된 벡터 x~n\tilde{x}_n은 다음과 같이 기저 벡터들의 선형 결합에 오프셋을 더한 형태입니다:

x~n=b+∑m=1Mznmbm=b+Bzn\tilde{x}_n = b + \sum_{m=1}^M z_{nm} b_m = b + B z_n

목적함수: 평균 제곱 재구성 오차 (Average Squared Reconstruction Error)

우리의 목표는 원본 데이터와 복원 벡터 간의 유클리드 거리 제곱의 평균 JJ를 최소화하는 b,B,{zn}n=1Nb, B, \{z_n\}_{n=1}^N을 찾는 것입니다:

J(b,B,z1,…,zN)=1N∑n=1N∥xn−x~n∥2=1N∑n=1N∥xn−(b+Bzn)∥2\begin{aligned} &J(b, B, z_1, \dots, z_N) \\ &= \frac{1}{N} \sum_{n=1}^N \|x_n - \tilde{x}_n\|^2 \\ &= \frac{1}{N} \sum_{n=1}^N \left\| x_n - \left( b + B z_n \right) \right\|^2 \end{aligned}

10.3.2 최적 좌표 및 최적 오프셋 탐색 (327쪽)

1. 최적 잠재 좌표 znmz_{nm} 도출

기저 행렬 BB와 오프셋 bb가 고정되어 있다고 가정하고, JJ를 특정 데이터의 mm번째 좌표 znmz_{nm}에 대해 편미분합니다:

∂J∂znm=−2Nbm⊤(xn−b−∑j=1Mznjbj)\frac{\partial J}{\partial z_{nm}} = -\frac{2}{N} b_m^\top \left( x_n - b - \sum_{j=1}^M z_{nj} b_j \right)

정규직교 기저의 성질 bm⊤bj=δmjb_m^\top b_j = \delta_{mj} (기저끼리 내적하면 m=jm=j일 때만 1, 다르면 0)을 적용하면:

bm⊤(∑j=1Mznjbj)=znmb_m^\top \left( \sum_{j=1}^M z_{nj} b_j \right) = z_{nm}

따라서 편도함수는 다음과 같이 극도로 단순해집니다:

∂J∂znm=−2N(bm⊤(xn−b)−znm)=0\frac{\partial J}{\partial z_{nm}} = -\frac{2}{N} \left( b_m^\top (x_n - b) - z_{nm} \right) = 0

znm=bm⊤(xn−b)z_{nm} = b_m^\top (x_n - b)

이를 벡터 형태로 묶으면:

zn=B⊤(xn−b)z_n = B^\top (x_n - b)

기하학적 의미: 최적의 저차원 좌표 znz_n은 중심을 bb로 이동시킨 데이터 벡터 (xn−b)(x_n - b)를 기저 벡터 bmb_m 위로 직교 사영(내적)한 그림자의 길이입니다!

2. 최적 오프셋 벡터 bb 도출

최적 좌표 zn=B⊤(xn−b)z_n = B^\top (x_n - b)를 목적함수에 대입하기 전, JJ를 오프셋 bb에 대해 직접 편미분합니다:

∂J∂b=−2N∑n=1N(xn−b−Bzn)=0\frac{\partial J}{\partial b} = -\frac{2}{N} \sum_{n=1}^N \left( x_n - b - B z_n \right) = 0

양변을 2로 나누고 합 기호를 분배합니다:

1N∑n=1Nxn−b−B(1N∑n=1Nzn)=0\frac{1}{N} \sum_{n=1}^N x_n - b - B \left( \frac{1}{N} \sum_{n=1}^N z_n \right) = 0

표본 평균을 μ=xˉ=1N∑n=1Nxn\mu = \bar{x} = \frac{1}{N} \sum_{n=1}^N x_n, 잠재 좌표 평균을 zˉ=1N∑n=1Nzn\bar{z} = \frac{1}{N} \sum_{n=1}^N z_n이라 두면:

μ−b−Bzˉ=0\mu - b - B \bar{z} = 0

앞서 구한 최적 좌표 공식의 평균을 취하면 zˉ=B⊤(μ−b)\bar{z} = B^\top (\mu - b)이므로 대입합니다:

μ−b−BB⊤(μ−b)=0  ⟺  (I−BB⊤)(μ−b)=0\begin{gathered} \mu - b - B B^\top (\mu - b) = 0 \\ \iff (I - B B^\top)(\mu - b) = 0 \end{gathered}

이 식은 μ−b\mu - b가 부분공간 방향(BB의 열공간) 안에 있기만 하면 성립한다. 즉 b=μ+Bwb = \mu + Bw 꼴이면 모두 최적인데, 어느 것을 골라도 같은 아핀 부분공간이 되므로 가장 간단한 것을 고른다:

b=μ=1N∑n=1Nxnb = \mu = \frac{1}{N} \sum_{n=1}^N x_n

즉, 아핀 부분공간의 최적 원점(오프셋)은 데이터 전체의 표본 평균(중심)이어야 합니다!

따라서 최적 좌표와 복원 벡터는 다음과 같이 확정됩니다:

zn=B⊤(xn−μ)z_n = B^\top (x_n - \mu)

x~n=μ+BB⊤(xn−μ)\tilde{x}_n = \mu + B B^\top (x_n - \mu)

10.3.3 주부분공간 기저 탐색 및 동치성 증명 (329쪽)

이제 최적의 정규직교 기저 행렬 B=[b1,…,bM]B = [b_1, \dots, b_M]를 결정해야 합니다. DD차원 전체 공간 RD\mathbb{R}^D를 포괄하는 완전한 정규직교 기저 (b1,…,bM,bM+1,…,bD)(b_1, \dots, b_M, b_{M+1}, \dots, b_D)를 생각합니다.

  • 앞쪽 MM개: 우리가 보존할 주부분공간 기저 (BB)
  • 뒤쪽 D−MD-M개: 우리가 차원을 축소하면서 버릴 직교 여공간 기저

중심화된 데이터 벡터 (xn−μ)(x_n - \mu)를 완전 정규직교 기저로 전개하면:

xn−μ=∑d=1Dβndbd,여기서 βnd=bd⊤(xn−μ)\begin{gathered} x_n - \mu = \sum_{d=1}^D \beta_{nd} b_d, \\ \text{여기서 } \beta_{nd} = b_d^\top (x_n - \mu) \end{gathered}

복원된 벡터 x~n−μ\tilde{x}_n - \mu는 앞쪽 MM개의 기저 성분만 취한 것입니다:

x~n−μ=∑m=1Mβnmbm\tilde{x}_n - \mu = \sum_{m=1}^M \beta_{nm} b_m

따라서 원본 벡터와 복원 벡터의 차이(오차 벡터)는 정확히 버려진 뒤쪽 D−MD-M개의 기저 성분의 합입니다:

xn−x~n=(xn−μ)−(x~n−μ)=∑j=M+1Dβnjbj\begin{aligned} x_n - \tilde{x}_n &= (x_n - \mu) - (\tilde{x}_n - \mu) \\ &= \sum_{j=M+1}^D \beta_{nj} b_j \end{aligned}

기저들이 정규직교이므로 오차 벡터의 노름 제곱은 계수 제곱의 합과 같습니다:

∥xn−x~n∥2=∑j=M+1Dβnj2=∑j=M+1D(bj⊤(xn−μ))2\begin{aligned} \|x_n - \tilde{x}_n\|^2 &= \sum_{j=M+1}^D \beta_{nj}^2 \\ &= \sum_{j=M+1}^D \left( b_j^\top (x_n - \mu) \right)^2 \end{aligned}

이제 전체 데이터에 대해 평균 재구성 오차 JMJ_M을 계산합니다:

JM=1N∑n=1N∑j=M+1Dbj⊤(xn−μ)(xn−μ)⊤bj=∑j=M+1Dbj⊤(1N∑n=1N(xn−μ)(xn−μ)⊤)bj\begin{aligned} J_M &= \frac{1}{N} \sum_{n=1}^N \sum_{j=M+1}^D b_j^\top \\ &\quad (x_n - \mu)(x_n - \mu)^\top b_j \\ &= \sum_{j=M+1}^D b_j^\top \\ &\quad \left( \frac{1}{N} \sum_{n=1}^N (x_n - \mu)(x_n - \mu)^\top \right) b_j \end{aligned}

괄호 안이 정확히 표본 공분산 행렬 SS입니다!

JM=∑j=M+1Dbj⊤SbjJ_M = \sum_{j=M+1}^D b_j^\top S b_j

정규직교 제약 조건 bj⊤bj=1b_j^\top b_j = 1 하에서 이 오차합 JMJ_M을 최소화하려면, 10.2절의 라그랑주 승수법 결과에 의해 bjb_j는 SS의 고유벡터여야 하며, 그 값은 고유값 λj\lambda_j가 됩니다:

JM=∑j=M+1DλjJ_M = \sum_{j=M+1}^D \lambda_j

결정적 결론 (두 관점의 일치):

  • 재구성 오차 JM=∑j=M+1DλjJ_M = \sum_{j=M+1}^D \lambda_j를 최소화하려면, 버려지는 D−MD-M개의 고유값을 가장 작은 고유값들로 골라야 합니다!
  • 버려지는 고유값이 가장 작다는 것은, 거꾸로 우리가 보존하는 앞쪽 MM개의 고유값 λ1,…,λM\lambda_1, \dots, \lambda_M이 가장 큰 고유값들이어야 함을 뜻합니다.
  • 따라서 “재구성 오차 최소화"와 “사영 분산 최대화"는 완전히 동일한 고유값 분해 문제입니다!

[필수 손계산] 작은 2차원 데이터셋으로 PCA 처음부터 끝까지 손계산하기

작은 2차원 데이터셋(N=4,D=2,M=1N=4, D=2, M=1)을 이용해 중심화부터 공분산, 고유값/고유벡터, 1차원 좌표 사영, 2차원 공간 복원, 재구성 오차 검산까지 모든 계산 단계를 한 줄도 생략하지 않고 손으로 풀어봅시다.

문제 설정

4개의 2차원 데이터 포인트가 주어졌습니다:

x1=[11],x2=[23],x3=[32],x4=[44]\begin{gathered} x_1 = \begin{bmatrix} 1 \\ 1 \end{bmatrix}, \quad x_2 = \begin{bmatrix} 2 \\ 3 \end{bmatrix}, \\ x_3 = \begin{bmatrix} 3 \\ 2 \end{bmatrix}, \quad x_4 = \begin{bmatrix} 4 \\ 4 \end{bmatrix} \end{gathered}

이 데이터를 PCA를 통해 1차원(M=1M=1)으로 차원 축소하시오.


[1단계] 표본 평균 μ\mu 및 중심화 데이터 XcX_c 계산

μ=14([11]+[23]+[32]+[44])=14[1+2+3+41+3+2+4]=14[1010]=[2.52.5]\begin{aligned} \mu &= \frac{1}{4} \biggl( \begin{bmatrix} 1 \\ 1 \end{bmatrix} + \begin{bmatrix} 2 \\ 3 \end{bmatrix} \\ &\quad + \begin{bmatrix} 3 \\ 2 \end{bmatrix} + \begin{bmatrix} 4 \\ 4 \end{bmatrix} \biggr) \\ &= \frac{1}{4} \begin{bmatrix} 1+2+3+4 \\ 1+3+2+4 \end{bmatrix} \\ &= \frac{1}{4} \begin{bmatrix} 10 \\ 10 \end{bmatrix} \\ &= \begin{bmatrix} 2.5 \\ 2.5 \end{bmatrix} \end{aligned}

각 데이터에서 평균 μ\mu를 뺍니다:

  • x1−μ=[1−2.51−2.5]=[−1.5−1.5]=[−3/2−3/2]x_1 - \mu = \begin{bmatrix} 1 - 2.5 \\ 1 - 2.5 \end{bmatrix} = \begin{bmatrix} -1.5 \\ -1.5 \end{bmatrix} = \begin{bmatrix} -3/2 \\ -3/2 \end{bmatrix}
  • x2−μ=[2−2.53−2.5]=[−0.50.5]=[−1/21/2]x_2 - \mu = \begin{bmatrix} 2 - 2.5 \\ 3 - 2.5 \end{bmatrix} = \begin{bmatrix} -0.5 \\ 0.5 \end{bmatrix} = \begin{bmatrix} -1/2 \\ 1/2 \end{bmatrix}
  • x3−μ=[3−2.52−2.5]=[0.5−0.5]=[1/2−1/2]x_3 - \mu = \begin{bmatrix} 3 - 2.5 \\ 2 - 2.5 \end{bmatrix} = \begin{bmatrix} 0.5 \\ -0.5 \end{bmatrix} = \begin{bmatrix} 1/2 \\ -1/2 \end{bmatrix}
  • x4−μ=[4−2.54−2.5]=[1.51.5]=[3/23/2]x_4 - \mu = \begin{bmatrix} 4 - 2.5 \\ 4 - 2.5 \end{bmatrix} = \begin{bmatrix} 1.5 \\ 1.5 \end{bmatrix} = \begin{bmatrix} 3/2 \\ 3/2 \end{bmatrix}

중심화 데이터 행렬 Xc∈R2×4X_c \in \mathbb{R}^{2 \times 4}:

Xc=[−1.5−0.50.51.5−1.50.5−0.51.5]X_c = \begin{bmatrix} -1.5 & -0.5 & 0.5 & 1.5 \\ -1.5 & 0.5 & -0.5 & 1.5 \end{bmatrix}

[2단계] 표본 공분산 행렬 S=1NXcXc⊤S = \frac{1}{N} X_c X_c^\top 계산

  • (1,1) 원소 (첫 번째 좌표의 분산): S11=14((−1.5)2+(−0.5)2+0.52+1.52)=14(2.25+0.25+0.25+2.25)=14(5.0)=1.25=54S_{11} = \frac{1}{4} \left( (-1.5)^2 + (-0.5)^2 + 0.5^2 + 1.5^2 \right) = \frac{1}{4} (2.25 + 0.25 + 0.25 + 2.25) = \frac{1}{4}(5.0) = 1.25 = \frac{5}{4}
  • (2,2) 원소 (두 번째 좌표의 분산): S22=14((−1.5)2+0.52+(−0.5)2+1.52)=14(2.25+0.25+0.25+2.25)=1.25=54S_{22} = \frac{1}{4} \left( (-1.5)^2 + 0.5^2 + (-0.5)^2 + 1.5^2 \right) = \frac{1}{4} (2.25 + 0.25 + 0.25 + 2.25) = 1.25 = \frac{5}{4}
  • (1,2) 및 (2,1) 원소 (공분산): S12=S21=14((−1.5)(−1.5)+(−0.5)(0.5)+(0.5)(−0.5)+(1.5)(1.5))\begin{aligned} S_{12} &= S_{21} \\ &= \frac{1}{4} \bigl( (-1.5)(-1.5) + (-0.5)(0.5) \\ &\quad + (0.5)(-0.5) + (1.5)(1.5) \bigr) \end{aligned} =14(2.25−0.25−0.25+2.25)=14(4.0)=1.0=1= \frac{1}{4} (2.25 - 0.25 - 0.25 + 2.25) = \frac{1}{4}(4.0) = 1.0 = 1

따라서 공분산 행렬은 다음과 같습니다:

S=[5/4115/4]=[1.251.01.01.25]S = \begin{bmatrix} 5/4 & 1 \\ 1 & 5/4 \end{bmatrix} = \begin{bmatrix} 1.25 & 1.0 \\ 1.0 & 1.25 \end{bmatrix}

[3단계] 고유값 및 고유벡터 계산

특성방정식(Characteristic Equation): det⁡(S−λI)=0\det(S - \lambda I) = 0

det⁡[54−λ1154−λ]=(54−λ)2−(1)(1)=0\begin{aligned} &\det \begin{bmatrix} \frac{5}{4} - \lambda & 1 \\ 1 & \frac{5}{4} - \lambda \end{bmatrix} \\ &= \left( \frac{5}{4} - \lambda \right)^2 - (1)(1) \\ &= 0 \end{aligned}

(54−λ)2=1  ⟺  54−λ=±1\left( \frac{5}{4} - \lambda \right)^2 = 1 \iff \frac{5}{4} - \lambda = \pm 1
  • λ1=54+1=94=2.25\lambda_1 = \frac{5}{4} + 1 = \frac{9}{4} = 2.25 (최대 고유값)
  • λ2=54−1=14=0.25\lambda_2 = \frac{5}{4} - 1 = \frac{1}{4} = 0.25 (최소 고유값)

총 분산 확인:

Tr(S)=54+54=104=2.50=λ1+λ2=2.25+0.25(일치!)\begin{aligned} \text{Tr}(S) &= \frac{5}{4} + \frac{5}{4} \\ &= \frac{10}{4} = 2.50 \\ &= \lambda_1 + \lambda_2 \\ &= 2.25 + 0.25 \quad (\text{일치!}) \end{aligned}

제1 주성분이 설명하는 분산 비율(Explained Variance Ratio):

λ1λ1+λ2=2.252.50=910=90%\frac{\lambda_1}{\lambda_1 + \lambda_2} = \frac{2.25}{2.50} = \frac{9}{10} = 90\%

고유벡터 b1b_1 구하기 (λ1=9/4\lambda_1 = 9/4):

(S−λ1I)v=[5/4−9/4115/4−9/4][v1v2]=[−111−1][v1v2]=[00]\begin{aligned} &(S - \lambda_1 I) v \\ &= \begin{bmatrix} 5/4 - 9/4 & 1 \\ 1 & 5/4 - 9/4 \end{bmatrix} \begin{bmatrix} v_1 \\ v_2 \end{bmatrix} \\ &= \begin{bmatrix} -1 & 1 \\ 1 & -1 \end{bmatrix} \begin{bmatrix} v_1 \\ v_2 \end{bmatrix} \\ &= \begin{bmatrix} 0 \\ 0 \end{bmatrix} \end{aligned}

−v1+v2=0  ⟹  v1=v2-v_1 + v_2 = 0 \implies v_1 = v_2

단위 벡터로 정규화: ∥b1∥2=v12+v22=2v12=1  ⟹  v1=12\|b_1\|^2 = v_1^2 + v_2^2 = 2 v_1^2 = 1 \implies v_1 = \frac{1}{\sqrt{2}}

b1=12[11]b_1 = \frac{1}{\sqrt{2}} \begin{bmatrix} 1 \\ 1 \end{bmatrix}

고유벡터 b2b_2 구하기 (λ2=1/4\lambda_2 = 1/4):

(S−λ2I)v=[5/4−1/4115/4−1/4][v1v2]=[1111][v1v2]=[00]\begin{aligned} (S - \lambda_2 I) v &= \begin{bmatrix} 5/4 - 1/4 & 1 \\ 1 & 5/4 - 1/4 \end{bmatrix} \begin{bmatrix} v_1 \\ v_2 \end{bmatrix} \\ &= \begin{bmatrix} 1 & 1 \\ 1 & 1 \end{bmatrix} \begin{bmatrix} v_1 \\ v_2 \end{bmatrix} \\ &= \begin{bmatrix} 0 \\ 0 \end{bmatrix} \end{aligned}

v1+v2=0  ⟹  v2=−v1v_1 + v_2 = 0 \implies v_2 = -v_1

단위 벡터로 정규화:

b2=12[−11]b_2 = \frac{1}{\sqrt{2}} \begin{bmatrix} -1 \\ 1 \end{bmatrix}

[4단계] 1차원 잠재 좌표 znz_n 계산 (사영/인코딩)

M=1M=1이므로 기저 행렬은 B=b1=12[11]B = b_1 = \frac{1}{\sqrt{2}} \begin{bmatrix} 1 \\ 1 \end{bmatrix} 입니다. 공식: zn=b1⊤(xn−μ)z_n = b_1^\top (x_n - \mu)

  • n=1n=1: z1=12[1,1][−1.5−1.5]=−1.5−1.52=−32=−322≈−2.121z_1 = \frac{1}{\sqrt{2}} [1, 1] \begin{bmatrix} -1.5 \\ -1.5 \end{bmatrix} = \frac{-1.5 - 1.5}{\sqrt{2}} = \frac{-3}{\sqrt{2}} = -\frac{3\sqrt{2}}{2} \approx -2.121
  • n=2n=2: z2=12[1,1][−0.50.5]=−0.5+0.52=0z_2 = \frac{1}{\sqrt{2}} [1, 1] \begin{bmatrix} -0.5 \\ 0.5 \end{bmatrix} = \frac{-0.5 + 0.5}{\sqrt{2}} = 0
  • n=3n=3: z3=12[1,1][0.5−0.5]=0.5−0.52=0z_3 = \frac{1}{\sqrt{2}} [1, 1] \begin{bmatrix} 0.5 \\ -0.5 \end{bmatrix} = \frac{0.5 - 0.5}{\sqrt{2}} = 0
  • n=4n=4: z4=12[1,1][1.51.5]=1.5+1.52=32=322≈2.121z_4 = \frac{1}{\sqrt{2}} [1, 1] \begin{bmatrix} 1.5 \\ 1.5 \end{bmatrix} = \frac{1.5 + 1.5}{\sqrt{2}} = \frac{3}{\sqrt{2}} = \frac{3\sqrt{2}}{2} \approx 2.121

사영된 데이터의 표본 분산 검산:

14∑n=14zn2=14((−32)2+02+02+(32)2)=14(92+0+0+92)=14(9)=94=2.25\begin{aligned} \frac{1}{4} \sum_{n=1}^4 z_n^2 &= \frac{1}{4} \Bigl( \left(-\frac{3}{\sqrt{2}}\right)^2 + 0^2 \\ &\quad + 0^2 + \left(\frac{3}{\sqrt{2}}\right)^2 \Bigr) \\ &= \frac{1}{4} \left( \frac{9}{2} + 0 + 0 + \frac{9}{2} \right) \\ &= \frac{1}{4} (9) = \frac{9}{4} = 2.25 \end{aligned}

사영된 좌표의 분산이 정확히 최대 고유값 λ1=2.25\lambda_1 = 2.25와 정확히 일치합니다.


[5단계] 2차원 공간으로 복원 x~n\tilde{x}_n 계산 (디코딩)

공식: x~n=μ+b1zn\tilde{x}_n = \mu + b_1 z_n

  • n=1n=1: x~1=[2.52.5]+12[11](−32)=[2.52.5]+[−1.5−1.5]=[11]\tilde{x}_1 = \begin{bmatrix} 2.5 \\ 2.5 \end{bmatrix} + \frac{1}{\sqrt{2}} \begin{bmatrix} 1 \\ 1 \end{bmatrix} \left(-\frac{3}{\sqrt{2}}\right) = \begin{bmatrix} 2.5 \\ 2.5 \end{bmatrix} + \begin{bmatrix} -1.5 \\ -1.5 \end{bmatrix} = \begin{bmatrix} 1 \\ 1 \end{bmatrix} (원래 점 x1=[1,1]⊤x_1 = [1, 1]^\top과 오차 없이 정확히 복원!)
  • n=2n=2: x~2=[2.52.5]+12[11](0)=[2.52.5]\tilde{x}_2 = \begin{bmatrix} 2.5 \\ 2.5 \end{bmatrix} + \frac{1}{\sqrt{2}} \begin{bmatrix} 1 \\ 1 \end{bmatrix} (0) = \begin{bmatrix} 2.5 \\ 2.5 \end{bmatrix}
  • n=3n=3: x~3=[2.52.5]+12[11](0)=[2.52.5]\tilde{x}_3 = \begin{bmatrix} 2.5 \\ 2.5 \end{bmatrix} + \frac{1}{\sqrt{2}} \begin{bmatrix} 1 \\ 1 \end{bmatrix} (0) = \begin{bmatrix} 2.5 \\ 2.5 \end{bmatrix}
  • n=4n=4: x~4=[2.52.5]+12[11](32)=[2.52.5]+[1.51.5]=[44]\tilde{x}_4 = \begin{bmatrix} 2.5 \\ 2.5 \end{bmatrix} + \frac{1}{\sqrt{2}} \begin{bmatrix} 1 \\ 1 \end{bmatrix} \left(\frac{3}{\sqrt{2}}\right) = \begin{bmatrix} 2.5 \\ 2.5 \end{bmatrix} + \begin{bmatrix} 1.5 \\ 1.5 \end{bmatrix} = \begin{bmatrix} 4 \\ 4 \end{bmatrix} (원래 점 x4=[4,4]⊤x_4 = [4, 4]^\top과 오차 없이 정확히 복원!)

[6단계] 재구성 오차 검산 (J1=λ2J_1 = \lambda_2 확인)

각 데이터별 재구성 오차 제곱:

  • ∥x1−x~1∥2=∥[11]−[11]∥2=0\|x_1 - \tilde{x}_1\|^2 = \left\| \begin{bmatrix} 1 \\ 1 \end{bmatrix} - \begin{bmatrix} 1 \\ 1 \end{bmatrix} \right\|^2 = 0
  • ∥x2−x~2∥2=∥[23]−[2.52.5]∥2=(−0.5)2+(0.5)2=0.25+0.25=0.5\|x_2 - \tilde{x}_2\|^2 = \left\| \begin{bmatrix} 2 \\ 3 \end{bmatrix} - \begin{bmatrix} 2.5 \\ 2.5 \end{bmatrix} \right\|^2 = (-0.5)^2 + (0.5)^2 = 0.25 + 0.25 = 0.5
  • ∥x3−x~3∥2=∥[32]−[2.52.5]∥2=(0.5)2+(−0.5)2=0.25+0.25=0.5\|x_3 - \tilde{x}_3\|^2 = \left\| \begin{bmatrix} 3 \\ 2 \end{bmatrix} - \begin{bmatrix} 2.5 \\ 2.5 \end{bmatrix} \right\|^2 = (0.5)^2 + (-0.5)^2 = 0.25 + 0.25 = 0.5
  • ∥x4−x~4∥2=∥[44]−[44]∥2=0\|x_4 - \tilde{x}_4\|^2 = \left\| \begin{bmatrix} 4 \\ 4 \end{bmatrix} - \begin{bmatrix} 4 \\ 4 \end{bmatrix} \right\|^2 = 0

평균 제곱 재구성 오차:

J1=14∑n=14∥xn−x~n∥2=14(0+0.5+0.5+0)=1.04=0.25\begin{aligned} J_1 &= \frac{1}{4} \sum_{n=1}^4 \|x_n - \tilde{x}_n\|^2 \\ &= \frac{1}{4} (0 + 0.5 + 0.5 + 0) \\ &= \frac{1.0}{4} = 0.25 \end{aligned}

버려진 두 번째 고유값:

λ2=0.25\lambda_2 = 0.25

J1=λ2=0.25(일치)J_1 = \lambda_2 = 0.25 \quad (\text{일치})

이로써 수식의 모든 이론적 성질이 한 치의 오차도 없이 손계산으로 증명되었습니다!


10.4 고유벡터 계산과 저계수 근사 (333쪽)

왜 필요한가 (직관과 개념)

10.2절과 10.3절에서 우리는 PCA의 최적 기저가 공분산 행렬 SS의 고유벡터임을 보였습니다. 그렇다면 컴퓨터는 실제로 이 고유벡터들을 어떻게 계산할까요? 공분산 행렬 S=1NXX⊤S = \frac{1}{N}XX^\top를 먼저 만들고 고유값 분해를 하는 것은 계산 오차(수치적 불안정성)와 불필요한 메모리 낭비를 유발합니다. 10.4절은 4장에서 배운 특이값 분해(SVD, Singular Value Decomposition)를 통해 공분산 행렬을 직접 만들지 않고도 데이터 행렬 XX 자체로부터 PCA를 우아하고 안정적으로 수행하는 수학적 원리를 밝힙니다.


10.4.1 저계수 행렬 근사를 통한 PCA와 Eckart-Young 정리 (334쪽)

1. 중심화 데이터 행렬의 SVD

중심화된 데이터 행렬 X=[x1−μ,…,xN−μ]∈RD×NX = [x_1 - \mu, \dots, x_N - \mu] \in \mathbb{R}^{D \times N}의 특이값 분해는 다음과 같습니다:

X=UΣV⊤X = U \Sigma V^\top
  • U∈RD×DU \in \mathbb{R}^{D \times D}: 좌측 특이벡터(Left Singular Vectors)로 이루어진 직교 행렬 (U⊤U=UU⊤=IDU^\top U = U U^\top = I_D)
  • V∈RN×NV \in \mathbb{R}^{N \times N}: 우측 특이벡터(Right Singular Vectors)로 이루어진 직교 행렬 (V⊤V=VV⊤=INV^\top V = V V^\top = I_N)
  • Σ∈RD×N\Sigma \in \mathbb{R}^{D \times N}: 직사각형 대각 행렬, 대각 원소에 특이값(Singular Values)이 내림차순 정렬됨 (σ1≥σ2≥⋯≥σmin⁡(D,N)≥0\sigma_1 \ge \sigma_2 \ge \dots \ge \sigma_{\min(D, N)} \ge 0)

2. 공분산 행렬 SS와 SVD의 직접 연결

표본 공분산 행렬 SS에 SVD 식을 대입합니다:

S=1NXX⊤=1N(UΣV⊤)(UΣV⊤)⊤=1NUΣV⊤VΣ⊤U⊤\begin{aligned} S &= \frac{1}{N} X X^\top = \frac{1}{N} (U \Sigma V^\top) (U \Sigma V^\top)^\top \\ &= \frac{1}{N} U \Sigma V^\top V \Sigma^\top U^\top \end{aligned}

VV는 직교 행렬이므로 V⊤V=INV^\top V = I_N으로 소거됩니다:

S=1NU(ΣΣ⊤)U⊤=U(1NΣΣ⊤)U⊤S = \frac{1}{N} U (\Sigma \Sigma^\top) U^\top = U \left( \frac{1}{N} \Sigma \Sigma^\top \right) U^\top

여기서 ΣΣ⊤∈RD×D\Sigma \Sigma^\top \in \mathbb{R}^{D \times D}는 대각 행렬입니다:

1NΣΣ⊤=diag(σ12N,  σ22N,  …,  σD2N)\frac{1}{N} \Sigma \Sigma^\top = \text{diag}\left( \frac{\sigma_1^2}{N}, \; \frac{\sigma_2^2}{N}, \; \dots, \; \frac{\sigma_D^2}{N} \right)

이것은 정확히 공분산 행렬 SS의 스펙트럼 분해(고유값 분해) S=UΛU⊤S = U \Lambda U^\top의 형태입니다! 따라서:

  • 공분산 행렬 SS의 고유벡터들은 다름 아닌 데이터 행렬 XX의 좌측 특이벡터(행렬 UU의 열벡터들 udu_d)입니다!
  • 공분산 행렬 SS의 고유값들 λd\lambda_d과 데이터 행렬 XX의 특이값들 σd\sigma_d 사이의 관계: λd=σd2N\lambda_d = \frac{\sigma_d^2}{N}

3. Eckart-Young-Mirsky 정리와의 일치

선형대수학의 유명한 에카르트-영 정리(Eckart-Young Theorem)에 따르면, 임의의 행렬 XX에 대해 계수(rank)가 MM 이하인 행렬들 중 스펙트럼 노름 ∥X−A∥2\|X - A\|_2(교재 식 (10.50), 정리 4.25)를 최소화하는 최적의 계수 MM 근사 행렬 X~M\tilde{X}_M은 상위 MM개의 특이값만 남긴 절단 SVD(Truncated SVD)입니다:

X~M=arg⁡min⁡rank(A)≤M∥X−A∥2=UMΣMVM⊤\begin{aligned} \tilde{X}_M &= \arg\min_{\text{rank}(A) \le M} \|X - A\|_2 \\ &= U_M \Sigma_M V_M^\top \end{aligned}

교재 밖 보충: 같은 결론이 프로베니우스 노름 ∥X−A∥F\|X - A\|_F에서도 성립한다(Eckart–Young–Mirsky). 재구성 오차 JMJ_M은 프로베니우스 노름 쪽과 직접 연결된다: 1N∥X−X~M∥F2=1N∑j>Mσj2=∑j>Mλj\frac{1}{N}\|X - \tilde{X}_M\|_F^2 = \frac{1}{N}\sum_{j>M}\sigma_j^2 = \sum_{j>M}\lambda_j.

한편, PCA에서 데이터를 상위 MM개 주성분으로 사영했다가 복원한 행렬 X~\tilde{X}는:

X~=BB⊤X=UMUM⊤(UΣV⊤)=UM(UM⊤U)ΣV⊤=UMΣMVM⊤\begin{aligned} \tilde{X} &= B B^\top X = U_M U_M^\top (U \Sigma V^\top) \\ &= U_M (U_M^\top U) \Sigma V^\top = U_M \Sigma_M V_M^\top \end{aligned}

정확히 에카르트-영 정리의 최적 저계수 근사 행렬 X~M\tilde{X}_M과 수학적으로 완전히 일치합니다! 즉, PCA는 통계학적으로는 “분산 최대화"이지만, 행렬 대수학적으로는 “데이터 행렬의 최적 저계수 근사(Optimal Low-Rank Approximation)”입니다.


10.4.2 실무적 계산 고려사항 (334쪽)

  1. 아벨-루피니 정리(Abel-Ruffini Theorem)와 고유값 계산:
    • 5차 이상의 다항식은 일반적인 대수적 근의 공식(사칙연산과 거듭제곱근)이 존재하지 않습니다.
    • 따라서 D≥5D \ge 5인 행렬의 특성방정식 det⁡(S−λI)=0\det(S - \lambda I) = 0은 손으로 풀 수 없으며, 컴퓨터는 반드시 반복적인 수치 해석 알고리즘(수치선형대수)을 사용해야 합니다.
  2. 거듭제곱법 (Power Iteration):
    • 최대 고유벡터 하나를 빠르게 찾을 때 임의의 벡터 v0v_0에 행렬 SS를 반복해서 곱하는 방법: vk+1=Svk∥Svk∥v_{k+1} = \frac{S v_k}{\|S v_k\|}
    • k→∞k \to \infty로 갈 때, 최대 고유값에 대응하는 고유벡터로 지수적으로 수렴합니다.
  3. QR 알고리즘 및 Lanczos 알고리즘 (교재 밖 보충, 교재는 “현대 선형대수 패키지의 반복법"이라고만 쓴다):
    • 모든 고유쌍을 구할 때는 직교-상삼각 분해를 반복하는 QR 알고리즘이 표준이며, 희소 행렬이나 거대 행렬에서는 란초스(Lanczos) 알고리즘이 사용됩니다.

10.5 고차원 데이터에서의 PCA (PCA in High Dimensions, N<DN < D, 335쪽)

왜 필요한가 (직관과 연산량 비교)

생체 유전자(DNA 마이크로어레이) 데이터나 고해상도 얼굴 이미지 인식(Eigenfaces) 문제에서는 샘플 수 NN은 100개에 불과한데, 특징 차원 DD는 10,000차원 이상인 경우가 비일비재합니다 (N≪DN \ll D).

  • 공분산 행렬 S=1NXX⊤S = \frac{1}{N}XX^\top의 크기는 10,000×10,00010,000 \times 10,000이 됩니다!
  • 원소 개수만 1억 개이며, 이 거대한 행렬의 고유값을 계산하는 알고리즘(O(D3)\mathcal{O}(D^3))은 약 101210^{12}회의 연산을 필요로 하므로 메모리가 터지거나 연산이 멈춥니다.
  • 하지만 데이터 포인트가 NN개뿐이므로, 이 데이터들이 DD차원 공간에서 펼쳐낼 수 있는 부분공간의 계수(rank)는 기껏해야 NN차원에 불과합니다. 나머지 D−ND-N개의 축 방향으로는 데이터가 전혀 없으므로 분산(고유값)이 정확히 0입니다!

10.5절에서는 이 기하학적 잉여성을 역이용하여, D×DD \times D 행렬 대신 N×NN \times N 크기의 작은 행렬만 풀어서 정확히 동일한 PCA 고유벡터를 구해내는 기적의 연산 단축 기법을 다룹니다.


수학적 유도

중심화 데이터 행렬 X∈RD×NX \in \mathbb{R}^{D \times N}에 대해:

  • 원래 풀어야 하는 D×DD \times D 고유값 문제: Sbm=λmbm  ⟺  1NXX⊤bm=λmbm(m=1,…,M)S b_m = \lambda_m b_m \iff \frac{1}{N} X X^\top b_m = \lambda_m b_m \quad (m = 1, \dots, M)

여기서 순서를 뒤집어 N×NN \times N 그람 행렬(Gram Matrix) K:=1NX⊤X∈RN×NK := \frac{1}{N} X^\top X \in \mathbb{R}^{N \times N}를 정의하고, 이 작은 행렬의 고유값 문제를 풉니다:

1NX⊤Xcm=λmcm(cm∈RN,  ∥cm∥=1)\begin{gathered} \frac{1}{N} X^\top X c_m = \lambda_m c_m \\ (c_m \in \mathbb{R}^N, \; \|c_m\| = 1) \end{gathered}

이제 이 식의 양변 왼쪽에 행렬 XX를 곱해줍니다:

X(1NX⊤Xcm)=X(λmcm)X \left( \frac{1}{N} X^\top X c_m \right) = X (\lambda_m c_m)

결합법칙으로 괄호의 묶음을 바꿉니다:

(1NXX⊤)(Xcm)=λm(Xcm)\left( \frac{1}{N} X X^\top \right) (X c_m) = \lambda_m (X c_m)

∴S(Xcm)=λm(Xcm)\therefore S (X c_m) = \lambda_m (X c_m)

그러면 다음이 성립한다:

  1. N×NN \times N 행렬 1NX⊤X\frac{1}{N}X^\top X의 고유값 λm\lambda_m은 D×DD \times D 행렬 SS의 고유값과 완전히 동일합니다!
  2. SS의 고유벡터 bmb_m은 다름 아닌 XcmX c_m에 비례합니다!

정규화 상수 도출

고유벡터 bm=αmXcmb_m = \alpha_m X c_m이 단위 길이(∥bm∥2=1\|b_m\|^2 = 1)를 갖도록 스케일링 계수 αm\alpha_m을 결정합니다:

bm⊤bm=(αmXcm)⊤(αmXcm)=αm2cm⊤X⊤Xcm=1\begin{aligned} b_m^\top b_m &= (\alpha_m X c_m)^\top (\alpha_m X c_m) \\ &= \alpha_m^2 c_m^\top X^\top X c_m = 1 \end{aligned}

앞서 1NX⊤Xcm=λmcm\frac{1}{N}X^\top X c_m = \lambda_m c_m이므로 X⊤Xcm=NλmcmX^\top X c_m = N \lambda_m c_m입니다. 이를 대입하면:

αm2cm⊤(Nλmcm)=αm2Nλm(cm⊤cm)=αm2Nλm(1)=1\begin{aligned} \alpha_m^2 c_m^\top (N \lambda_m c_m) &= \alpha_m^2 N \lambda_m (c_m^\top c_m) \\ &= \alpha_m^2 N \lambda_m (1) = 1 \end{aligned}

∴αm=1Nλm\therefore \alpha_m = \frac{1}{\sqrt{N \lambda_m}}

따라서 최종 고유벡터는 다음과 같이 계산됩니다:

bm=1NλmXcmb_m = \frac{1}{\sqrt{N \lambda_m}} X c_m

연산량 비교 (Computational Complexity):

  • 기존 방식 (SS 직접 계산 및 고유분해): O(D2N)+O(D3)\mathcal{O}(D^2 N) + \mathcal{O}(D^3)
  • 고차원 트릭 (N×NN \times N 행렬 풀이): O(N2D)+O(N3)+O(NDM)\mathcal{O}(N^2 D) + \mathcal{O}(N^3) + \mathcal{O}(N D M)
    D=10,000,N=100D = 10,000, N = 100일 때, 지배항이 D3=1012D^3 = 10^{12}에서 N2D=108N^2 D = 10^{8} 수준으로, 약 1만 배 줄어듭니다. 이 아이디어는 훗날 비선형 커널 PCA(Kernel PCA)의 이론적 초석이 됩니다.

[손으로 풀어 보는 예제: N < D]

D=3,N=2D=3, N=2인 극단적인 고차원 상황을 손으로 풀어봅시다. 중심화 데이터 행렬 Xc∈R3×2X_c \in \mathbb{R}^{3 \times 2}가 다음과 같이 주어졌습니다:

Xc=[−11−111−1]X_c = \begin{bmatrix} -1 & 1 \\ -1 & 1 \\ 1 & -1 \end{bmatrix}

N=2N=2이므로, 3×33 \times 3 행렬 SS 대신 2×22 \times 2 행렬 K=12Xc⊤XcK = \frac{1}{2}X_c^\top X_c를 이용하여 최대 고유벡터 b1b_1을 구하시오.

[1단계: 2×22 \times 2 그람 행렬 KK 계산]

Xc⊤=[−1−1111−1]X_c^\top = \begin{bmatrix} -1 & -1 & 1 \\ 1 & 1 & -1 \end{bmatrix}

Xc⊤Xc=[−1−1111−1][−11−111−1]=[1+1+1−1−1−1−1−1−11+1+1]=[3−3−33]\begin{aligned} X_c^\top X_c &= \begin{bmatrix} -1 & -1 & 1 \\ 1 & 1 & -1 \end{bmatrix} \begin{bmatrix} -1 & 1 \\ -1 & 1 \\ 1 & -1 \end{bmatrix} \\ &= \begin{bmatrix} 1+1+1 & -1-1-1 \\ -1-1-1 & 1+1+1 \end{bmatrix} \\ &= \begin{bmatrix} 3 & -3 \\ -3 & 3 \end{bmatrix} \end{aligned}

K=12Xc⊤Xc=[1.5−1.5−1.51.5]K = \frac{1}{2} X_c^\top X_c = \begin{bmatrix} 1.5 & -1.5 \\ -1.5 & 1.5 \end{bmatrix}

[2단계: KK의 고유값 및 고유벡터 계산]

det⁡(K−λI)=(1.5−λ)2−(−1.5)2=(1.5−λ)2−2.25=0\begin{aligned} \det(K - \lambda I) &= (1.5 - \lambda)^2 - (-1.5)^2 \\ &= (1.5 - \lambda)^2 - 2.25 = 0 \end{aligned}

λ2−3λ=0  ⟹  λ(λ−3)=0\lambda^2 - 3\lambda = 0 \implies \lambda(\lambda - 3) = 0

따라서 0이 아닌 유일한 최대 고유값은 λ1=3\lambda_1 = 3 입니다.

λ1=3\lambda_1 = 3에 대한 고유벡터 c1c_1:

(K−3I)c1=[1.5−3−1.5−1.51.5−3][c11c12]=[−1.5−1.5−1.5−1.5][c11c12]=[00]\begin{aligned} (K - 3I) c_1 &= \begin{bmatrix} 1.5 - 3 & -1.5 \\ -1.5 & 1.5 - 3 \end{bmatrix} \begin{bmatrix} c_{11} \\ c_{12} \end{bmatrix} \\ &= \begin{bmatrix} -1.5 & -1.5 \\ -1.5 & -1.5 \end{bmatrix} \begin{bmatrix} c_{11} \\ c_{12} \end{bmatrix} \\ &= \begin{bmatrix} 0 \\ 0 \end{bmatrix} \end{aligned}

c11+c12=0  ⟹  c12=−c11c_{11} + c_{12} = 0 \implies c_{12} = -c_{11}

단위 정규화: c1=12[−11]c_1 = \frac{1}{\sqrt{2}} \begin{bmatrix} -1 \\ 1 \end{bmatrix}

[3단계: b1=1Nλ1Xcc1b_1 = \frac{1}{\sqrt{N\lambda_1}} X_c c_1 계산]

  • N=2,λ1=3  ⟹  Nλ1=2×3=6N = 2, \lambda_1 = 3 \implies \sqrt{N\lambda_1} = \sqrt{2 \times 3} = \sqrt{6}
  • Xcc1X_c c_1 계산: Xcc1=[−11−111−1](12[−11])=12[1+11+1−1−1]=12[22−2]=[22−2]X_c c_1 = \begin{bmatrix} -1 & 1 \\ -1 & 1 \\ 1 & -1 \end{bmatrix} \left( \frac{1}{\sqrt{2}} \begin{bmatrix} -1 \\ 1 \end{bmatrix} \right) = \frac{1}{\sqrt{2}} \begin{bmatrix} 1 + 1 \\ 1 + 1 \\ -1 - 1 \end{bmatrix} = \frac{1}{\sqrt{2}} \begin{bmatrix} 2 \\ 2 \\ -2 \end{bmatrix} = \begin{bmatrix} \sqrt{2} \\ \sqrt{2} \\ -\sqrt{2} \end{bmatrix}
  • 정규화 곱셈: b1=16[22−2]=26[11−1]=13[11−1]b_1 = \frac{1}{\sqrt{6}} \begin{bmatrix} \sqrt{2} \\ \sqrt{2} \\ -\sqrt{2} \end{bmatrix} = \frac{\sqrt{2}}{\sqrt{6}} \begin{bmatrix} 1 \\ 1 \\ -1 \end{bmatrix} = \frac{1}{\sqrt{3}} \begin{bmatrix} 1 \\ 1 \\ -1 \end{bmatrix}

[4단계: 원래의 3×33 \times 3 공분산 행렬 SS로 검산]

S=12XcXc⊤=12[−11−111−1][−1−1111−1]=12[22−222−2−2−22]=[11−111−1−1−11]\begin{aligned} S &= \frac{1}{2} X_c X_c^\top \\ &= \frac{1}{2} \begin{bmatrix} -1 & 1 \\ -1 & 1 \\ 1 & -1 \end{bmatrix} \begin{bmatrix} -1 & -1 & 1 \\ 1 & 1 & -1 \end{bmatrix} \\ &= \frac{1}{2} \begin{bmatrix} 2 & 2 & -2 \\ 2 & 2 & -2 \\ -2 & -2 & 2 \end{bmatrix} \\ &= \begin{bmatrix} 1 & 1 & -1 \\ 1 & 1 & -1 \\ -1 & -1 & 1 \end{bmatrix} \end{aligned}

Sb1=[11−111−1−1−11](13[11−1])=13[1+1+11+1+1−1−1−1]=13[33−3]=3(13[11−1])=3b1\begin{aligned} S b_1 &= \begin{bmatrix} 1 & 1 & -1 \\ 1 & 1 & -1 \\ -1 & -1 & 1 \end{bmatrix} \left( \frac{1}{\sqrt{3}} \begin{bmatrix} 1 \\ 1 \\ -1 \end{bmatrix} \right) \\ &= \frac{1}{\sqrt{3}} \begin{bmatrix} 1 + 1 + 1 \\ 1 + 1 + 1 \\ -1 - 1 - 1 \end{bmatrix} = \frac{1}{\sqrt{3}} \begin{bmatrix} 3 \\ 3 \\ -3 \end{bmatrix} \\ &= 3 \left( \frac{1}{\sqrt{3}} \begin{bmatrix} 1 \\ 1 \\ -1 \end{bmatrix} \right) = 3 b_1 \end{aligned}

고유값 3, 고유벡터 b1b_1이 한 치의 오차도 없이 정확히 증명되었습니다!


10.6 실전에서의 PCA 핵심 단계 (Key Steps in Practice, 336쪽)

실제 데이터 분석 및 머신러닝 파이프라인에서 PCA를 적용할 때 거치는 필수 6단계를 정리합니다.

  1. 평균 중심화 (Mean Centering): 각 특징별 표본 평균 μd=1N∑n=1Nxnd\mu_d = \frac{1}{N} \sum_{n=1}^N x_{nd}를 계산하여 모든 데이터에서 차감합니다:

    xnd←xnd−μdx_{nd} \leftarrow x_{nd} - \mu_d

    중심화를 건너뛰면 제1 주성분이 데이터의 분산 방향이 아니라 원점에서 데이터 덩어리 중심을 가리키는 평균 벡터 방향으로 왜곡되어 분석이 완전히 망가집니다!

  2. 표준화 (Standardization / Z-score Normalization) — 필요 시: 각 특징의 단위(스케일)가 다른 경우(예: 키 cm와 몸무게 kg, 연소득 원), 표준편차 σd=1N∑(xnd−μd)2\sigma_d = \sqrt{\frac{1}{N}\sum (x_{nd}-\mu_d)^2}로 나누어 분산을 1로 맞춥니다:

    xnd←xnd−μdσdx_{nd} \leftarrow \frac{x_{nd} - \mu_d}{\sigma_d}

    표준화를 적용한 PCA는 데이터의 공분산 행렬(Covariance Matrix) 대신 상관관계 행렬(Correlation Matrix)의 고유값을 구하는 것과 같습니다. 스케일이 비정상적으로 큰 단 하나의 변수가 주성분을 독식하는 참사를 방지합니다.

  3. 표본 공분산 행렬 SS 계산:

    S=1NXcXc⊤∈RD×DS = \frac{1}{N} X_c X_c^\top \in \mathbb{R}^{D \times D}
  4. 고유값 분해 및 정렬: Sbd=λdbdS b_d = \lambda_d b_d를 풀어 고유값을 내림차순으로 정렬합니다:

    λ1≥λ2≥⋯≥λD≥0\lambda_1 \ge \lambda_2 \ge \dots \ge \lambda_D \ge 0
  5. 압축 차원 MM 결정 (설명된 분산 비율): 누적 설명 분산 비율(Cumulative Explained Variance Ratio)이 목표 임계값(예: 90% 또는 95%)을 넘는 최소 MM을 선택합니다:

    ∑m=1Mλm∑d=1Dλd≥0.90\frac{\sum_{m=1}^M \lambda_m}{\sum_{d=1}^D \lambda_d} \ge 0.90
  6. 사영(인코딩) 및 복원(디코딩):

    • MM차원 잠재 좌표: zn=B⊤(xn−μ)z_n = B^\top (x_n - \mu), 여기서 B=[b1,…,bM]∈RD×MB = [b_1, \dots, b_M] \in \mathbb{R}^{D \times M}
    • DD차원 복원 벡터: x~n=Bzn+μ=BB⊤(xn−μ)+μ\tilde{x}_n = B z_n + \mu = B B^\top (x_n - \mu) + \mu
    • 표준화를 적용했던 경우, 표준편차를 먼저 곱한 뒤 평균을 더해 복원합니다: x~nd←x~nd⋅σd+μd\tilde{x}_{nd} \leftarrow \tilde{x}_{nd} \cdot \sigma_d + \mu_d

10.7 잠재 변수 관점 / 확률적 PCA (Latent Variable Perspective, PPCA, 339쪽)

왜 필요한가 (직관과 확률 모델의 당위성)

지금까지 다룬 표준 PCA는 뛰어난 기하학적·대수적 도구이지만, 다음과 같은 태생적 한계를 갖습니다:

  1. 결측치(Missing Data) 처리 불가: 입력 데이터의 일부 원소가 누락되면 행렬 계산 자체가 불가능합니다.
  2. 생성 모델(Generative Model)의 부재: 데이터의 분포를 학습한 것이 아니므로, 새로운 그럴듯한 가상 데이터를 스스로 샘플링(생성)할 수 없습니다.
  3. 불확실성(Uncertainty) 미반영: 잠재 좌표 zz를 오직 단 하나의 점으로만 사영하므로, 사영 위치에 대한 신뢰도를 알 수 없습니다.
  4. 차원 MM의 확률적 선택 불가: 주변 가능도(Marginal Likelihood) 개념이 없어 베이지안 모델 선택을 적용할 수 없습니다.

Tipping과 Bishop(1999)이 제안한 확률적 주성분 분석(Probabilistic PCA, PPCA)은 표준 PCA를 가우시안 잠재 변수 생성 모델(Gaussian Latent Variable Model)로 재해석함으로써 이 모든 한계를 정확히 해결합니다.

       [PPCA 그래피컬 모델]
           z ~ N(0, I_M)        (저차원 잠재 변수 사전분포)
                 │
                 ▼  (x = Bz + μ + ε)
           x ~ N(Bz+μ, σ²I)     (고차원 관측 데이터)

10.7.1 생성 과정 및 확률 모델 (340쪽)

1. 잠재 변수 사전분포 (Latent Prior)

보이지 않는 MM차원 잠재 변수(Latent Variable) z∈RMz \in \mathbb{R}^M가 표준 정규분포를 따른다고 가정합니다:

z∼N(0,IM)z \sim \mathcal{N}(0, I_M)
  • 각 잠재 차원은 서로 독립이며, 평균 0, 분산 1을 갖습니다.

2. 관측 데이터 생성 메커니즘 (Observation Model)

고차원 데이터 x∈RDx \in \mathbb{R}^D는 잠재 변수 zz의 선형 변환에 중심점 μ\mu와 등방성 가우시안 노이즈 ϵ\epsilon이 더해져 생성됩니다:

x=Bz+μ+ϵ∈RDx = B z + \mu + \epsilon \in \mathbb{R}^D
  • B∈RD×MB \in \mathbb{R}^{D \times M}: 잠재 공간에서 데이터 공간으로 매핑하는 변환 행렬(투사 행렬)
  • μ∈RD\mu \in \mathbb{R}^D: 데이터 공간의 평균(오프셋)
  • ϵ∼N(0,σ2ID)\epsilon \sim \mathcal{N}(0, \sigma^2 I_D): zz와 독립인 관측 노이즈 (σ2\sigma^2: 노이즈 분산)

따라서 zz가 주어졌을 때 xx의 조건부 확률분포(우도)는 다음과 같습니다:

p(x∣z,B,μ,σ2)=N(x∣Bz+μ,σ2ID)\begin{gathered} p(x \mid z, B, \mu, \sigma^2) \\ = \mathcal{N}(x \mid B z + \mu, \sigma^2 I_D) \end{gathered}

10.7.2 우도 및 결합 분포 (342쪽)

1. 데이터의 주변 분포 (Marginal Distribution / Evidence)

잠재 변수 zz를 적분 소거하여 관측 데이터 xx 자체의 주변 확률분포를 구합니다:

p(x∣B,μ,σ2)=∫p(x∣z,B,μ,σ2)p(z) dz\begin{gathered} p(x \mid B, \mu, \sigma^2) \\ = \int p(x \mid z, B, \mu, \sigma^2) p(z) \, dz \end{gathered}

이 적분은 6장의 선형 가우시안 시스템 공식에 의해 적분 기호 없이 즉시 풀립니다:

  • 기댓값: E[x]=E[Bz+μ+ϵ]=BE[z]+μ+E[ϵ]=B(0)+μ+0=μ\mathbb{E}[x] = \mathbb{E}[B z + \mu + \epsilon] = B \mathbb{E}[z] + \mu + \mathbb{E}[\epsilon] = B(0) + \mu + 0 = \mu
  • 공분산 행렬: Cov[x]=Cov[Bz+μ+ϵ]=Cov[Bz]+Cov[ϵ]=BCov[z]B⊤+σ2ID=BB⊤+σ2ID\text{Cov}[x] = \text{Cov}[B z + \mu + \epsilon] = \text{Cov}[B z] + \text{Cov}[\epsilon] = B \text{Cov}[z] B^\top + \sigma^2 I_D = B B^\top + \sigma^2 I_D

따라서 주변 분포는 다음과 같습니다:

p(x∣B,μ,σ2)=N(x∣μ,C),여기서 C=BB⊤+σ2ID∈RD×D\begin{gathered} p(x \mid B, \mu, \sigma^2) = \mathcal{N}(x \mid \mu, C), \\ \text{여기서 } C = B B^\top + \sigma^2 I_D \in \mathbb{R}^{D \times D} \end{gathered}

2. xx와 zz의 결합 분포 (Joint Distribution)

p([xz])=N([μ0],  [BB⊤+σ2IDBB⊤IM])\begin{gathered} p\left( \begin{bmatrix} x \\ z \end{bmatrix} \right) \\ = \mathcal{N}\left( \begin{bmatrix} \mu \\ 0 \end{bmatrix}, \; \begin{bmatrix} B B^\top + \sigma^2 I_D & B \\ B^\top & I_M \end{bmatrix} \right) \end{gathered}
  • 상호 공분산: Cov[x,z]=E[(x−μ)z⊤]=E[(Bz+ϵ)z⊤]=BE[zz⊤]=BIM=B\text{Cov}[x, z] = \mathbb{E}[(x-\mu) z^\top] = \mathbb{E}[(Bz+\epsilon)z^\top] = B \mathbb{E}[zz^\top] = B I_M = B

10.7.3 사후 분포 및 표준 PCA로의 수렴 (342쪽)

1. 잠재 변수 사후분포 p(z∣x)p(z \mid x) 유도

관측된 데이터 xx가 주어졌을 때, 이 데이터를 만들어낸 잠재 좌표 zz의 확률분포는 가우시안 조건부 분포 공식에 의해 계산됩니다:

p(z∣x)=N(z∣m,Cz)p(z \mid x) = \mathcal{N}(z \mid m, C_z)
  • 사후 평균: m=B⊤(BB⊤+σ2ID)−1(x−μ)m = B^\top (B B^\top + \sigma^2 I_D)^{-1} (x - \mu)
  • 사후 공분산: Cz=IM−B⊤(BB⊤+σ2ID)−1BC_z = I_M - B^\top (B B^\top + \sigma^2 I_D)^{-1} B

2. 우드베리(Woodbury) 항등식을 통한 M×MM \times M 역행렬 변환

위 식에서 (BB⊤+σ2ID)−1(B B^\top + \sigma^2 I_D)^{-1}는 거대한 D×DD \times D 행렬의 역행렬을 요구합니다. 행렬 역행렬 보조정리(Woodbury / Push-through Identity)를 적용하면 다음과 같이 아름답게 바뀝니다:

B⊤(BB⊤+σ2ID)−1=(B⊤B+σ2IM)−1B⊤\begin{gathered} B^\top (B B^\top + \sigma^2 I_D)^{-1} \\ = (B^\top B + \sigma^2 I_M)^{-1} B^\top \end{gathered}

이를 대입하면:

m=(B⊤B+σ2IM)−1B⊤(x−μ)m = (B^\top B + \sigma^2 I_M)^{-1} B^\top (x - \mu)

Cz=σ2(B⊤B+σ2IM)−1C_z = \sigma^2 (B^\top B + \sigma^2 I_M)^{-1}

이제 우리는 D×DD \times D가 아니라 훨씬 작은 M×MM \times M 크기의 역행렬만 계산하면 됩니다!

3. 노이즈 0 극한 (σ2→0\sigma^2 \to 0)에서의 표준 PCA 복원

만약 관측 노이즈가 0으로 수렴한다면 (σ2→0\sigma^2 \to 0):

  • 사후 공분산: Cz=lim⁡σ2→0σ2(B⊤B+σ2IM)−1=0C_z = \lim_{\sigma^2 \to 0} \sigma^2 (B^\top B + \sigma^2 I_M)^{-1} = 0 즉, 잠재 좌표의 확률적 불확실성이 사라지고 단 하나의 고정된 점으로 붕괴합니다.
  • 사후 평균: m=lim⁡σ2→0(B⊤B+σ2IM)−1B⊤(x−μ)=(B⊤B)−1B⊤(x−μ)m = \lim_{\sigma^2 \to 0} (B^\top B + \sigma^2 I_M)^{-1} B^\top (x - \mu) = (B^\top B)^{-1} B^\top (x - \mu) (B⊤B)−1B⊤(x−μ)(B^\top B)^{-1} B^\top (x - \mu)는 x−μx-\mu를 BB의 열공간에 직교 사영했을 때의 좌표다(3장 사영 공식 πU(x)=B(B⊤B)−1B⊤x\pi_U(x)=B(B^\top B)^{-1}B^\top x의 좌표 부분). 주의할 점이 있다. PPCA의 BB는 정규직교가 아니다. 최대가능도 해가 B=UM(ΛM−σ2I)1/2RB = U_M(\Lambda_M - \sigma^2 I)^{1/2}R 꼴(아래 4절)이라 열마다 길이가 다르다. 그래서 mm 자체는 PCA 좌표 UM⊤(x−μ)U_M^\top(x-\mu)와 숫자가 다르다(축마다 배율이 다르고 회전 RR이 붙는다). 하지만 복원한 점 Bm=B(B⊤B)−1B⊤(x−μ)Bm = B(B^\top B)^{-1}B^\top(x-\mu)는 같은 부분공간으로의 직교 사영이므로 PCA의 복원 결과와 같다. BB가 정규직교(B⊤B=IMB^\top B = I_M)인 특별한 경우에만 m=B⊤(x−μ)m = B^\top (x - \mu)로 PCA 좌표와 숫자까지 같아진다. 아래 확인 문제 8이 이 차이를 숫자로 보여 준다.

4. PPCA의 최대가능도 모수 해 (교재 10.8절 식 (10.77)~(10.79), 증명은 Tipping & Bishop 1999)

로그 주변 가능도 ∑n=1Nlog⁡p(xn∣B,μ,σ2)\sum_{n=1}^N \log p(x_n \mid B, \mu, \sigma^2)를 최대화하는 모수 해는 닫힌 형태로 정확히 풀립니다:

  • μML=1N∑n=1Nxn\mu_{ML} = \frac{1}{N} \sum_{n=1}^N x_n (표본 평균)
  • σML2=1D−M∑j=M+1Dλj\sigma_{ML}^2 = \frac{1}{D - M} \sum_{j=M+1}^D \lambda_j (버려진 D−MD-M개 고유값의 산술 평균!)
  • BML=UM(ΛM−σML2IM)1/2RB_{ML} = U_M (\Lambda_M - \sigma_{ML}^2 I_M)^{1/2} R
    • UM∈RD×MU_M \in \mathbb{R}^{D \times M}: 공분산 SS의 상위 MM개 고유벡터 행렬
    • ΛM=diag(λ1,…,λM)\Lambda_M = \text{diag}(\lambda_1, \dots, \lambda_M): 상위 MM개 고유값 대각 행렬
    • R∈RM×MR \in \mathbb{R}^{M \times M}: 임의의 직교 회전 행렬 (RR⊤=IMR R^\top = I_M)

의미: 노이즈 분산의 MLE 추정량 σML2\sigma_{ML}^2이 정확히 PCA에서 사영하며 버려진 잔여 고유값들의 평균으로 도출됩니다! 노이즈가 없는 극한(σ→0\sigma \to 0)에서는 BB⊤BB^\top가 데이터 공분산과 같아져 B=UMΛM1/2RB = U_M \Lambda_M^{1/2} R이 됩니다(교재 식 (10.81)). BB의 열은 고유벡터에 λ\sqrt{\lambda}를 곱한 것이라 정규직교는 아니지만, 열공간이 PCA의 주부분공간과 같으므로 PPCA와 PCA가 같은 답을 줍니다.


10.8 더 읽을거리 (Further Reading, 343쪽)

PCA의 선형적 한계를 극복하고 현대 생성 모델로 나아가는 주요 확장 분야들입니다:

  1. 커널 PCA (Kernel PCA):
    • 10.5절의 고차원 PCA 트릭(N×NN \times N 그람 행렬 풀이)에 커널 트릭 k(xi,xj)=⟨ϕ(xi),ϕ(xj)⟩k(x_i, x_j) = \langle \phi(x_i), \phi(x_j) \rangle을 적용하면, 데이터를 비선형 특징 공간으로 보낸 뒤 PCA를 수행할 수 있습니다. 스위스 롤(Swiss roll)처럼 꼬인 비선형 다양체(Manifold)를 성공적으로 펼쳐냅니다.
  2. 오토인코더 (Autoencoders)와의 동치성:
    • 딥러닝의 오토인코더에서 인코더와 디코더의 활성화 함수를 모두 선형(Linear, f(x)=xf(x)=x)으로 설정하고 은닉층 뉴런 수를 MM개로 두면, 복원 오차를 최소화하는 신경망의 최적 가중치 공간은 정확히 PCA가 생성하는 주부분공간과 수학적으로 동치가 됩니다.
  3. 가우스 과정 잠재 변수 모델 (GP-LVM):
    • PPCA의 선형 변환 x=Bz+μx = Bz + \mu를 비선형 가우스 과정(Gaussian Process)으로 대체한 모델입니다.
  4. 인자 분석 (Factor Analysis, FA):
    • PPCA는 모든 센서/특징의 노이즈 분산이 σ2I\sigma^2 I로 동일하다고 가정하지만, 인자 분석은 특징마다 서로 다른 노이즈 분산 Ψ=diag(σ12,…,σD2)\Psi = \text{diag}(\sigma_1^2, \dots, \sigma_D^2)을 허용하는 일반화 모델입니다.

핵심 유도 모음 (시험 대비 백지 유도 연습)

시험장에서 백지에 직접 정확히 유도할 수 있어야 하는 10장의 7대 핵심 유도입니다.


[유도 1] 제1 주성분의 분산 최대화와 라그랑주 승수법

[목표]
중심화 데이터 공분산 행렬 SS에 대해 제약 조건 b1⊤b1=1b_1^\top b_1 = 1 하에서 사영 분산 V1=b1⊤Sb1V_1 = b_1^\top S b_1을 최대화하는 벡터가 Sb1=λ1b1S b_1 = \lambda_1 b_1을 만족함을 유도한다.

번호수식 전개 단계이 단계가 성립하는 이유 (수학적 근거)
1V1=1N∑n=1N(b1⊤xn)2V_1 = \frac{1}{N} \sum_{n=1}^N (b_1^\top x_n)^2단위 벡터 b1b_1 위로 사영된 데이터의 표본 분산 정의 (평균은 0)
2=1N∑n=1Nb1⊤xnxn⊤b1=b1⊤(1N∑n=1Nxnxn⊤)b1= \frac{1}{N} \sum_{n=1}^N b_1^\top x_n x_n^\top b_1 = b_1^\top \left( \frac{1}{N} \sum_{n=1}^N x_n x_n^\top \right) b_1스칼라 내적의 결합법칙 및 행렬 밖으로 b1b_1 인수분해
3V1=b1⊤Sb1V_1 = b_1^\top S b_1표본 공분산 행렬 S=1N∑xnxn⊤S = \frac{1}{N} \sum x_n x_n^\top의 정의
4목적: max⁡b1b1⊤Sb1s.t.b1⊤b1−1=0\max_{b_1} b_1^\top S b_1 \quad \text{s.t.} \quad b_1^\top b_1 - 1 = 0등식 제약 조건 하에서의 2차 형식 최대화 문제 정식화
5L(b1,λ1)=b1⊤Sb1−λ1(b1⊤b1−1)\mathfrak{L}(b_1, \lambda_1) = b_1^\top S b_1 - \lambda_1 (b_1^\top b_1 - 1)라그랑주 승수 λ1\lambda_1을 도입한 라그랑지안 함수 구성
6∇b1(b1⊤Sb1)=2Sb1\nabla_{b_1} (b_1^\top S b_1) = 2 S b_1대칭 행렬 SS에 대한 2차 형식 벡터 미분 공식 (∇xx⊤Ax=2Ax\nabla_x x^\top A x = 2Ax)
7∇b1(λ1b1⊤b1)=2λ1b1\nabla_{b_1} (\lambda_1 b_1^\top b_1) = 2 \lambda_1 b_12차 형식 벡터 미분 공식 (A=IA = I)
8∇b1L=2Sb1−2λ1b1=0\nabla_{b_1} \mathfrak{L} = 2 S b_1 - 2 \lambda_1 b_1 = 0극대점에서의 1계 최적성 조건 (정류점)
9Sb1=λ1b1S b_1 = \lambda_1 b_1양변을 2로 나누어 정리 (고유값 방정식 도출)
10V1=b1⊤Sb1=b1⊤(λ1b1)=λ1(b1⊤b1)=λ1\begin{aligned} V_1 &= b_1^\top S b_1 = b_1^\top (\lambda_1 b_1) \\ &= \lambda_1 (b_1^\top b_1) = \lambda_1 \end{aligned}분산이 고유값과 같으므로 분산 최대화를 위해 최대 고유값 선택 ■\blacksquare

[유도 2] 사영 관점에서 최적 오프셋 b=μb = \mu 및 최적 좌표 유도

[목표]
목적함수 J=1N∑∥xn−(b+Bzn)∥2J = \frac{1}{N}\sum \|x_n - (b + Bz_n)\|^2를 최소화하는 최적 오프셋이 표본 평균 μ\mu이고, 최적 좌표가 zn=B⊤(xn−μ)z_n = B^\top(x_n - \mu)임을 유도한다.

번호수식 전개 단계이 단계가 성립하는 이유 (수학적 근거)
1J=1N∑n=1N∥xn−b−∑m=1Mznmbm∥2J = \frac{1}{N} \sum_{n=1}^N \left\| x_n - b - \sum_{m=1}^M z_{nm} b_m \right\|^2복원 벡터 x~n=b+∑znmbm\tilde{x}_n = b + \sum z_{nm} b_m 대입
2∂J∂znk=−2Nbk⊤(xn−b−∑m=1Mznmbm)\frac{\partial J}{\partial z_{nk}} = -\frac{2}{N} b_k^\top \left( x_n - b - \sum_{m=1}^M z_{nm} b_m \right)벡터 노름 제곱의 합성함수 미분법 (체인 룰)
3bk⊤bm=δkm={1(k=m)0(k≠m)b_k^\top b_m = \delta_{km} = \begin{cases} 1 & (k=m) \\ 0 & (k \neq m) \end{cases}기저 벡터들의 정규직교성 (B⊤B=IMB^\top B = I_M)
4bk⊤(∑m=1Mznmbm)=znkb_k^\top \left( \sum_{m=1}^M z_{nm} b_m \right) = z_{nk}내적의 선형성에 의해 m=km=k인 항만 남고 모두 소거
5∂J∂znk=−2N(bk⊤(xn−b)−znk)=0  ⟹  znk=bk⊤(xn−b)\frac{\partial J}{\partial z_{nk}} = -\frac{2}{N} \left( b_k^\top (x_n - b) - z_{nk} \right) = 0 \implies z_{nk} = b_k^\top (x_n - b)도함수를 0으로 두어 최적 좌표 확정
6∂J∂b=−2N∑n=1N(xn−b−Bzn)=0\frac{\partial J}{\partial b} = -\frac{2}{N} \sum_{n=1}^N (x_n - b - B z_n) = 0목적함수를 오프셋 bb에 대해 편미분
71N∑n=1Nxn−b−B(1N∑n=1Nzn)=0\frac{1}{N}\sum_{n=1}^N x_n - b - B \left( \frac{1}{N}\sum_{n=1}^N z_n \right) = 0합 기호 분배 및 표본 평균 μ=1N∑xn,zˉ=1N∑zn\mu = \frac{1}{N}\sum x_n, \bar{z} = \frac{1}{N}\sum z_n 정의
8zˉ=1N∑n=1NB⊤(xn−b)=B⊤(μ−b)\bar{z} = \frac{1}{N}\sum_{n=1}^N B^\top(x_n - b) = B^\top(\mu - b)최적 좌표 공식의 표본 평균 대입
9μ−b−BB⊤(μ−b)=0  ⟺  (I−BB⊤)(μ−b)=0\begin{gathered} \mu - b - B B^\top (\mu - b) = 0 \\ \iff (I - B B^\top)(\mu - b) = 0 \end{gathered}7단계 식에 zˉ\bar{z} 대입 후 인수분해
10b=μ=1N∑n=1Nxnb = \mu = \frac{1}{N} \sum_{n=1}^N x_n모든 기저 선택에 대해 항상 성립하는 자명한 최적 오프셋 확정 ■\blacksquare

[유도 3] 재구성 오차 최소화와 분산 최대화의 동치성 증명

[목표]
평균 재구성 오차 JM=1N∑∥xn−x~n∥2J_M = \frac{1}{N}\sum \|x_n - \tilde{x}_n\|^2가 버려진 D−MD-M개의 고유값의 합 ∑j=M+1Dλj\sum_{j=M+1}^D \lambda_j과 같음을 증명한다.

번호수식 전개 단계이 단계가 성립하는 이유 (수학적 근거)
1RD\mathbb{R}^D의 완전 정규직교 기저 (b1,…,bM,bM+1,…,bD)(b_1, \dots, b_M, b_{M+1}, \dots, b_D) 설정MM차원 부분공간 기저와 (D−M)(D-M)차원 직교 여공간 기저로 분할
2xn−μ=∑d=1Dβndbd,βnd=bd⊤(xn−μ)x_n - \mu = \sum_{d=1}^D \beta_{nd} b_d, \quad \beta_{nd} = b_d^\top (x_n - \mu)중심화 데이터를 완전 정규직교 기저로 전개
3x~n−μ=∑m=1Mβnmbm\tilde{x}_n - \mu = \sum_{m=1}^M \beta_{nm} b_m복원 벡터는 앞쪽 MM개의 기저 성분만 취함
4xn−x~n=∑j=M+1Dβnjbjx_n - \tilde{x}_n = \sum_{j=M+1}^D \beta_{nj} b_j두 벡터의 차이는 버려진 뒤쪽 D−MD-M개 기저의 선형 결합
5∥xn−x~n∥2=∥∑j=M+1Dβnjbj∥2=∑j=M+1Dβnj2\|x_n - \tilde{x}_n\|^2 = \left\| \sum_{j=M+1}^D \beta_{nj} b_j \right\|^2 = \sum_{j=M+1}^D \beta_{nj}^2피타고라스 정리 및 기저의 정규직교성 (∥bj∥=1,bj⊥bk\|b_j\|=1, b_j \perp b_k)
6JM=1N∑n=1N∑j=M+1D(bj⊤(xn−μ))2J_M = \frac{1}{N} \sum_{n=1}^N \sum_{j=M+1}^D (b_j^\top (x_n - \mu))^2계수 βnj=bj⊤(xn−μ)\beta_{nj} = b_j^\top (x_n - \mu) 대입
7=∑j=M+1Dbj⊤(1N∑n=1N(xn−μ)(xn−μ)⊤)bj= \sum_{j=M+1}^D b_j^\top \left( \frac{1}{N} \sum_{n=1}^N (x_n - \mu)(x_n - \mu)^\top \right) b_j합 순서 교환 및 bjb_j 밖으로 인수분해
8JM=∑j=M+1Dbj⊤SbjJ_M = \sum_{j=M+1}^D b_j^\top S b_j표본 공분산 행렬 SS의 정의 대입
9제약 조건 bj⊤bk=δjkb_j^\top b_k = \delta_{jk} 하에서 최소화   ⟹  Sbj=λjbj\implies S b_j = \lambda_j b_j[유도 1]의 라그랑주 승수법 결과에 의해 bjb_j는 SS의 고유벡터
10JM=∑j=M+1DλjJ_M = \sum_{j=M+1}^D \lambda_j오차 최소화를 위해 가장 작은 D−MD-M개의 고유값을 버려야 하므로, 보존되는 MM개는 가장 큰 고유값이어야 함 ■\blacksquare

[유도 4] SVD를 통한 공분산 분해 및 Eckart-Young 최적 근사 증명

[목표]
중심화 데이터 X=UΣV⊤X = U \Sigma V^\top로부터 S=1NUΣΣ⊤U⊤S = \frac{1}{N} U \Sigma \Sigma^\top U^\top를 보이고, PCA 복원 행렬이 최적 계수 MM 근사 X~M=UMΣMVM⊤\tilde{X}_M = U_M \Sigma_M V_M^\top임을 증명한다.

번호수식 전개 단계이 단계가 성립하는 이유 (수학적 근거)
1X=UΣV⊤X = U \Sigma V^\top중심화 데이터 행렬 X∈RD×NX \in \mathbb{R}^{D \times N}의 특이값 분해 (SVD) 정의
2S=1NXX⊤=1N(UΣV⊤)(UΣV⊤)⊤S = \frac{1}{N} X X^\top = \frac{1}{N} (U \Sigma V^\top)(U \Sigma V^\top)^\top표본 공분산 행렬 SS의 정의
3=1NUΣV⊤VΣ⊤U⊤= \frac{1}{N} U \Sigma V^\top V \Sigma^\top U^\top전치 행렬 곱셈 법칙 ((ABC)⊤=C⊤B⊤A⊤(ABC)^\top = C^\top B^\top A^\top)
4=1NUΣINΣ⊤U⊤=U(1NΣΣ⊤)U⊤= \frac{1}{N} U \Sigma I_N \Sigma^\top U^\top = U \left( \frac{1}{N} \Sigma \Sigma^\top \right) U^\topVV의 직교성 (V⊤V=INV^\top V = I_N) 적용
51NΣΣ⊤=diag(σ12/N,…,σD2/N)\frac{1}{N} \Sigma \Sigma^\top = \text{diag}(\sigma_1^2/N, \dots, \sigma_D^2/N)직사각형 대각행렬 Σ\Sigma의 거듭제곱 대각성
6SU=UΛ  ⟹  Sud=(σd2/N)udS U = U \Lambda \implies S u_d = (\sigma_d^2/N) u_dSS의 고유벡터가 UU의 열벡터 udu_d이고 고유값이 λd=σd2/N\lambda_d = \sigma_d^2/N임이 증명됨
7PCA 기저 행렬 B=UM∈RD×MB = U_M \in \mathbb{R}^{D \times M}상위 MM개의 고유벡터 선택
8사영 및 복원 데이터 행렬: X~=BB⊤X=UMUM⊤(UΣV⊤)\tilde{X} = B B^\top X = U_M U_M^\top (U \Sigma V^\top)PCA 복원 수식 대입
9UM⊤U=[IM    0]∈RM×DU_M^\top U = [I_M \;\; 0] \in \mathbb{R}^{M \times D}UU의 열벡터들의 정규직교성 (ui⊤uj=δiju_i^\top u_j = \delta_{ij})
10X~=UM[IM    0]ΣV⊤=UMΣMVM⊤=X~M\tilde{X} = U_M [I_M \;\; 0] \Sigma V^\top = U_M \Sigma_M V_M^\top = \tilde{X}_M에카르트-영 정리의 최적 계수 MM 절단 SVD 근사와 완전히 일치 ■\blacksquare

[유도 5] 고차원 데이터 (N<DN < D)에서의 그람 행렬 고유값 트릭

[목표]
N×NN \times N 행렬 1NX⊤Xcm=λmcm\frac{1}{N}X^\top X c_m = \lambda_m c_m으로부터 SS의 단위 고유벡터 bm=1NλmXcmb_m = \frac{1}{\sqrt{N\lambda_m}} X c_m을 유도한다.

번호수식 전개 단계이 단계가 성립하는 이유 (수학적 근거)
11NX⊤Xcm=λmcm(cm⊤cm=1)\frac{1}{N} X^\top X c_m = \lambda_m c_m \quad (c_m^\top c_m = 1)N×NN \times N 그람 행렬 K=1NX⊤XK = \frac{1}{N}X^\top X의 고유값 문제 정의
2X(1NX⊤Xcm)=X(λmcm)X \left( \frac{1}{N} X^\top X c_m \right) = X (\lambda_m c_m)양변 왼쪽에 D×ND \times N 데이터 행렬 XX를 곱함
3(1NXX⊤)(Xcm)=λm(Xcm)\left( \frac{1}{N} X X^\top \right) (X c_m) = \lambda_m (X c_m)스칼라 및 행렬 곱셈의 결합법칙 적용
4S(Xcm)=λm(Xcm)S (X c_m) = \lambda_m (X c_m)D×DD \times D 공분산 행렬 S=1NXX⊤S = \frac{1}{N}XX^\top의 정의 대입
5bm∝Xcmb_m \propto X c_mXcmX c_m이 행렬 SS의 고유값 λm\lambda_m에 대응하는 고유벡터임이 증명됨
6bm=αmXcmb_m = \alpha_m X c_m단위 벡터로 만들기 위한 스케일링 상수 αm\alpha_m 설정
7bm⊤bm=(αmXcm)⊤(αmXcm)=αm2cm⊤X⊤Xcm=1\begin{aligned} b_m^\top b_m &= (\alpha_m X c_m)^\top (\alpha_m X c_m) \\ &= \alpha_m^2 c_m^\top X^\top X c_m = 1 \end{aligned}단위 노름 제약 조건 ∥bm∥2=1\|b_m\|^2 = 1 적용
8X⊤Xcm=NλmcmX^\top X c_m = N \lambda_m c_m1단계의 고유값 식에 양변 NN을 곱한 결과
9αm2cm⊤(Nλmcm)=αm2Nλm(cm⊤cm)=αm2Nλm=1\alpha_m^2 c_m^\top (N \lambda_m c_m) = \alpha_m^2 N \lambda_m (c_m^\top c_m) = \alpha_m^2 N \lambda_m = 1cmc_m의 정규직교성 (cm⊤cm=1c_m^\top c_m = 1) 대입
10αm=1Nλm  ⟹  bm=1NλmXcm\alpha_m = \frac{1}{\sqrt{N\lambda_m}} \implies b_m = \frac{1}{\sqrt{N\lambda_m}} X c_m최종 정규화된 고유벡터 공식 확정 ■\blacksquare

[유도 6] PPCA 주변 가능도 p(x)p(x) 및 결합 분포 유도

[목표]
z∼N(0,IM)z \sim \mathcal{N}(0, I_M)과 x=Bz+μ+ϵx = Bz + \mu + \epsilon, ϵ∼N(0,σ2ID)\epsilon \sim \mathcal{N}(0, \sigma^2 I_D)로부터 p(x)=N(μ,BB⊤+σ2ID)p(x) = \mathcal{N}(\mu, BB^\top + \sigma^2 I_D)를 유도한다.

번호수식 전개 단계이 단계가 성립하는 이유 (수학적 근거)
1p(z)=N(z∣0,IM)p(z) = \mathcal{N}(z \mid 0, I_M)가우시안 잠재 변수 사전분포의 정의
2x=Bz+μ+ϵ,ϵ∼N(0,σ2ID),z⊥ϵx = B z + \mu + \epsilon, \quad \epsilon \sim \mathcal{N}(0, \sigma^2 I_D), \quad z \perp \epsilon선형 관측 생성 모델 및 독립 가우시안 잡음 정의
3p(x∣B,μ,σ2)=∫p(x∣z)p(z)dzp(x \mid B, \mu, \sigma^2) = \int p(x \mid z) p(z) dz결합분포로부터 잠재 변수 zz 적분 소거 (Marginalization)
4가우시안 변수 z,ϵz, \epsilon의 아핀 결합이므로 xx의 주변분포 역시 가우시안정규분포의 선형 사상 닫힘성
5E[x]=BE[z]+μ+E[ϵ]=B(0)+μ+0=μ\mathbb{E}[x] = B \mathbb{E}[z] + \mu + \mathbb{E}[\epsilon] = B(0) + \mu + 0 = \mu기댓값 연산자의 선형성 적용
6Cov[x]=Cov[Bz+μ+ϵ]=Cov[Bz]+Cov[ϵ]\text{Cov}[x] = \text{Cov}[B z + \mu + \epsilon] = \text{Cov}[B z] + \text{Cov}[\epsilon]zz와 ϵ\epsilon의 독립성에 의해 교차 공분산이 0
7Cov[Bz]=BCov[z]B⊤=BIMB⊤=BB⊤\text{Cov}[Bz] = B \text{Cov}[z] B^\top = B I_M B^\top = B B^\top다변량 공분산 선형 사상 공식 (Cov[AX]=ACov[X]A⊤\text{Cov}[A X] = A \text{Cov}[X] A^\top)
8Cov[ϵ]=σ2ID\text{Cov}[\epsilon] = \sigma^2 I_D등방성 가우시안 노이즈 공분산 대입
9C:=Cov[x]=BB⊤+σ2IDC := \text{Cov}[x] = B B^\top + \sigma^2 I_D두 공분산 합산
10p(x∣B,μ,σ2)=N(x∣μ,  BB⊤+σ2ID)p(x \mid B, \mu, \sigma^2) = \mathcal{N}(x \mid \mu, \; B B^\top + \sigma^2 I_D)기댓값과 공분산을 가우시안 밀도함수에 결합 ■\blacksquare

[유도 7] PPCA 사후분포 p(z∣x)p(z \mid x)의 Woodbury 역행렬 변환 및 극한

[목표]
m=B⊤(BB⊤+σ2I)−1(x−μ)m = B^\top(BB^\top + \sigma^2 I)^{-1}(x-\mu)가 (B⊤B+σ2I)−1B⊤(x−μ)(B^\top B + \sigma^2 I)^{-1}B^\top(x-\mu)와 같음을 증명하고, σ2→0\sigma^2 \to 0일 때 (B⊤B)−1B⊤(x−μ)(B^\top B)^{-1}B^\top(x-\mu)(직교 사영의 좌표)로 수렴함을 보인다.

번호수식 전개 단계이 단계가 성립하는 이유 (수학적 근거)
1m=B⊤(BB⊤+σ2ID)−1(x−μ)m = B^\top (B B^\top + \sigma^2 I_D)^{-1} (x - \mu)결합 가우시안 조건부 평균 기본 공식
2목표: B⊤(BB⊤+σ2ID)−1≡(B⊤B+σ2IM)−1B⊤B^\top (B B^\top + \sigma^2 I_D)^{-1} \equiv (B^\top B + \sigma^2 I_M)^{-1} B^\topD×DD \times D 역행렬을 M×MM \times M 역행렬로 축소하는 행렬 항등식
3(BB⊤+σ2ID)B=B(B⊤B)+σ2B=B(B⊤B+σ2IM)(B B^\top + \sigma^2 I_D) B = B (B^\top B) + \sigma^2 B = B (B^\top B + \sigma^2 I_M)양변에 BB를 곱하여 괄호 분배 (교환성 확인)
4양변 왼쪽에 (BB⊤+σ2ID)−1(B B^\top + \sigma^2 I_D)^{-1}을 곱함: B=(BB⊤+σ2ID)−1B(B⊤B+σ2IM)B = (B B^\top + \sigma^2 I_D)^{-1} B (B^\top B + \sigma^2 I_M)역행렬 상쇄 법칙
5양변 오른쪽에 (B⊤B+σ2IM)−1(B^\top B + \sigma^2 I_M)^{-1}을 곱함: B(B⊤B+σ2IM)−1=(BB⊤+σ2ID)−1BB (B^\top B + \sigma^2 I_M)^{-1} = (B B^\top + \sigma^2 I_D)^{-1} B푸시스루 항등식(Push-through Identity) 성립
6양변에 전치(Transpose)를 취함: ((B⊤B+σ2IM)−1)⊤B⊤=B⊤((BB⊤+σ2ID)−1)⊤\left( (B^\top B + \sigma^2 I_M)^{-1} \right)^\top B^\top = B^\top \left( (B B^\top + \sigma^2 I_D)^{-1} \right)^\top전치 행렬 곱셈 법칙
7(B⊤B+σ2IM)−1B⊤=B⊤(BB⊤+σ2ID)−1(B^\top B + \sigma^2 I_M)^{-1} B^\top = B^\top (B B^\top + \sigma^2 I_D)^{-1}대칭 행렬의 역행렬은 대칭이므로 전치 기호 제거 (증명 완료)
8m=(B⊤B+σ2IM)−1B⊤(x−μ)m = (B^\top B + \sigma^2 I_M)^{-1} B^\top (x - \mu)1단계 식에 7단계 항등식을 대입
9lim⁡σ2→0m=(B⊤B+0)−1B⊤(x−μ)=(B⊤B)−1B⊤(x−μ)\lim_{\sigma^2 \to 0} m = (B^\top B + 0)^{-1} B^\top (x - \mu) = (B^\top B)^{-1} B^\top (x - \mu)노이즈 분산이 0으로 가는 극한 취함
10Bm=B(B⊤B)−1B⊤(x−μ)Bm = B(B^\top B)^{-1} B^\top (x - \mu)복원한 점은 BB의 열공간(= PCA 주부분공간)으로의 직교 사영이라 PCA 복원과 같다. 좌표 mm이 PCA 좌표와 숫자까지 같은 것은 B⊤B=IMB^\top B = I_M일 때뿐이다 ■\blacksquare

말로 설명하기 (개념 서술형·구술 대비)

서술형 문항이나 구술 질문에 대비해 말로도 설명해 본다.

Q. PCA를 한 문장으로 설명하고, 왜 공분산 행렬의 고유벡터가 답인지 말해 보세요. “데이터를 가장 넓게 퍼져 보이는 방향 몇 개로 사영해 차원을 줄이는 방법입니다. 단위 벡터 bb로 사영한 분산은 b⊤Sbb^\top Sb이고, ∥b∥=1\|b\|=1 제약에서 라그랑주 승수법을 쓰면 Sb=λbSb=\lambda b가 나옵니다. 그때 분산이 λ\lambda 자체이므로 가장 큰 고유값의 고유벡터가 제1 주성분입니다. 다음 주성분은 앞의 것과 직교한다는 제약을 더하면 같은 방식으로 다음 고유벡터가 됩니다.”

Q. 분산 최대화와 재구성 오차 최소화가 같은 답을 주는 이유는? “정규직교 기저로 전개하면, 중심화한 데이터의 제곱 길이가 남긴 성분과 버린 성분으로 피타고라스처럼 나뉩니다. 전체는 고정이므로 남긴 분산을 키우는 것과 버린 오차를 줄이는 것이 같습니다. 식으로는 재구성 오차가 JM=∑j>MλjJ_M=\sum_{j>M}\lambda_j, 버린 고유값의 합입니다.”

Q. PCA와 SVD는 어떤 관계인가요? “중심화한 데이터 행렬을 X=UΣV⊤X=U\Sigma V^\top로 분해하면 S=1NXX⊤=UΣΣ⊤NU⊤S=\frac1N XX^\top=U\frac{\Sigma\Sigma^\top}{N}U^\top이라, 왼쪽 특이벡터가 주성분이고 λd=σd2/N\lambda_d=\sigma_d^2/N입니다. 상위 MM개로 복원한 행렬은 절단 SVD UMΣMVM⊤U_M\Sigma_MV_M^\top와 같고, Eckart–Young 정리에 따라 계수 MM 이하 행렬 중 가장 가까운 근사입니다.”

Q. 데이터 수가 차원보다 훨씬 적으면 어떻게 계산하나요? “D×DD\times D 공분산 대신 N×NN\times N 행렬 1NX⊤X\frac1N X^\top X의 고유벡터 cc를 구합니다. 양변에 XX를 곱하면 XcXc가 SS의 고유벡터가 되고 고유값도 같습니다. 길이를 1로 맞추려면 b=Xc/Nλb=Xc/\sqrt{N\lambda}로 나눕니다.”

Q. 실제로 PCA를 할 때 전처리는? “평균을 빼서 중심화하고, 변수마다 단위가 다르면 표준편차로 나눠 표준화합니다. 표준화하지 않으면 소득(원)처럼 숫자가 큰 변수 하나가 제1 주성분을 독차지합니다. 새 데이터에도 훈련 데이터의 평균과 표준편차를 그대로 씁니다.”

Q. 확률적 PCA(PPCA)는 무엇이고 일반 PCA와 어떻게 연결되나요? “z∼N(0,I)z\sim\mathcal N(0,I), x=Bz+μ+ϵx=Bz+\mu+\epsilon, ϵ∼N(0,σ2I)\epsilon\sim\mathcal N(0,\sigma^2I)인 생성 모델입니다. zz를 적분하면 x∼N(μ,BB⊤+σ2I)x\sim\mathcal N(\mu,BB^\top+\sigma^2I)이고, 관측에서 zz의 사후분포도 가우시안이라 불확실성을 함께 얻습니다. 최대가능도 해에서 잡음 분산은 버린 고유값의 평균이고, σ→0\sigma\to0이면 BB의 열공간이 PCA 주부분공간과 같아집니다. 새 데이터를 생성할 수 있다는 점이 일반 PCA와 다릅니다.”


연습문제

확인 문제 (계산형 및 개념형 10제 — 상세 해설 및 풀이 수록)


[문제 1] (계산형) 2차원 데이터셋의 공분산 행렬 및 PCA 전체 계산

다음 3개의 2차원 데이터 포인트가 주어졌습니다:

x1=[12],x2=[21],x3=[33]x_1 = \begin{bmatrix} 1 \\ 2 \end{bmatrix}, \quad x_2 = \begin{bmatrix} 2 \\ 1 \end{bmatrix}, \quad x_3 = \begin{bmatrix} 3 \\ 3 \end{bmatrix}
  1. 표본 평균 μ\mu와 중심화 데이터 행렬 XcX_c를 구하시오.
  2. 표본 공분산 행렬 S=13XcXc⊤S = \frac{1}{3}X_c X_c^\top을 계산하시오.
  3. SS의 고유값 λ1,λ2\lambda_1, \lambda_2와 단위 고유벡터 b1,b2b_1, b_2를 구하시오.
  4. M=1M=1로 차원 축소할 때, 제1 주성분이 설명하는 분산 비율을 구하시오.

[정답 및 풀이]

  1. μ=13([12]+[21]+[33])=13[66]=[22]\mu = \frac{1}{3} \left( \begin{bmatrix} 1 \\ 2 \end{bmatrix} + \begin{bmatrix} 2 \\ 1 \end{bmatrix} + \begin{bmatrix} 3 \\ 3 \end{bmatrix} \right) = \frac{1}{3} \begin{bmatrix} 6 \\ 6 \end{bmatrix} = \begin{bmatrix} 2 \\ 2 \end{bmatrix}
    • x1−μ=[−1,0]⊤x_1 - \mu = [-1, 0]^\top
    • x2−μ=[0,−1]⊤x_2 - \mu = [0, -1]^\top
    • x3−μ=[1,1]⊤x_3 - \mu = [1, 1]^\top Xc=[−1010−11]X_c = \begin{bmatrix} -1 & 0 & 1 \\ 0 & -1 & 1 \end{bmatrix}
  2. S=13XcXc⊤=13[−1010−11][−100−111]=13[1+0+10+0+10+0+10+1+1]=13[2112]S = \frac{1}{3} X_c X_c^\top = \frac{1}{3} \begin{bmatrix} -1 & 0 & 1 \\ 0 & -1 & 1 \end{bmatrix} \begin{bmatrix} -1 & 0 \\ 0 & -1 \\ 1 & 1 \end{bmatrix} = \frac{1}{3} \begin{bmatrix} 1+0+1 & 0+0+1 \\ 0+0+1 & 0+1+1 \end{bmatrix} = \frac{1}{3} \begin{bmatrix} 2 & 1 \\ 1 & 2 \end{bmatrix}
  3. det⁡(S−λI)=(23−λ)2−(13)2=0  ⟺  23−λ=±13\det(S - \lambda I) = \left( \frac{2}{3} - \lambda \right)^2 - \left(\frac{1}{3}\right)^2 = 0 \iff \frac{2}{3} - \lambda = \pm \frac{1}{3}
    • λ1=23+13=1\lambda_1 = \frac{2}{3} + \frac{1}{3} = 1 (최대 고유값)
    • λ2=23−13=13\lambda_2 = \frac{2}{3} - \frac{1}{3} = \frac{1}{3}
    • 고유벡터:
      • λ1=1\lambda_1 = 1: (S−I)v=[−1/31/31/3−1/3]v=0  ⟹  v1=v2  ⟹  b1=12[11](S - I)v = \begin{bmatrix} -1/3 & 1/3 \\ 1/3 & -1/3 \end{bmatrix} v = 0 \implies v_1 = v_2 \implies b_1 = \frac{1}{\sqrt{2}} \begin{bmatrix} 1 \\ 1 \end{bmatrix}
      • λ2=1/3\lambda_2 = 1/3: (S−13I)v=[1/31/31/31/3]v=0  ⟹  v2=−v1  ⟹  b2=12[−11](S - \frac{1}{3}I)v = \begin{bmatrix} 1/3 & 1/3 \\ 1/3 & 1/3 \end{bmatrix} v = 0 \implies v_2 = -v_1 \implies b_2 = \frac{1}{\sqrt{2}} \begin{bmatrix} -1 \\ 1 \end{bmatrix}
  4. 총 분산: Tr(S)=2/3+2/3=4/3=λ1+λ2=1+1/3=4/3\text{Tr}(S) = 2/3 + 2/3 = 4/3 = \lambda_1 + \lambda_2 = 1 + 1/3 = 4/3 설명된 분산 비율: λ1λ1+λ2=14/3=34=75%\frac{\lambda_1}{\lambda_1 + \lambda_2} = \frac{1}{4/3} = \frac{3}{4} = 75\%

[문제 2] (계산형) 잠재 좌표 사영 및 재구성 오차 검산

[문제 1]의 결과를 바탕으로 M=1M=1 PCA를 적용할 때:

  1. 세 점의 1차원 잠재 좌표 z1,z2,z3z_1, z_2, z_3을 구하고, 이들의 표본 분산이 λ1=1\lambda_1 = 1과 일치함을 검증하시오.
  2. 2차원 복원 벡터 x~1,x~2,x~3\tilde{x}_1, \tilde{x}_2, \tilde{x}_3을 구하시오.
  3. 평균 제곱 재구성 오차 J1J_1을 계산하고, 이것이 λ2=1/3\lambda_2 = 1/3과 일치함을 검증하시오.

[정답 및 풀이]

  1. zn=b1⊤(xn−μ)=12[1,1](xn−μ)z_n = b_1^\top (x_n - \mu) = \frac{1}{\sqrt{2}}[1, 1](x_n - \mu):
    • z1=12(−1+0)=−12z_1 = \frac{1}{\sqrt{2}} (-1 + 0) = -\frac{1}{\sqrt{2}}
    • z2=12(0−1)=−12z_2 = \frac{1}{\sqrt{2}} (0 - 1) = -\frac{1}{\sqrt{2}}
    • z3=12(1+1)=22=2z_3 = \frac{1}{\sqrt{2}} (1 + 1) = \frac{2}{\sqrt{2}} = \sqrt{2}
    • 분산 검산: 13∑n=13zn2=13((−12)2+(−12)2+(2)2)=13(12+12+2)=13(3)=1=λ1(일치!)\frac{1}{3} \sum_{n=1}^3 z_n^2 = \frac{1}{3} \left( \left(-\frac{1}{\sqrt{2}}\right)^2 + \left(-\frac{1}{\sqrt{2}}\right)^2 + (\sqrt{2})^2 \right) = \frac{1}{3} \left( \frac{1}{2} + \frac{1}{2} + 2 \right) = \frac{1}{3} (3) = 1 = \lambda_1 \quad (\text{일치!})
  2. x~n=μ+b1zn\tilde{x}_n = \mu + b_1 z_n:
    • x~1=[22]+12[11](−12)=[22]+[−0.5−0.5]=[1.51.5]\tilde{x}_1 = \begin{bmatrix} 2 \\ 2 \end{bmatrix} + \frac{1}{\sqrt{2}} \begin{bmatrix} 1 \\ 1 \end{bmatrix} \left(-\frac{1}{\sqrt{2}}\right) = \begin{bmatrix} 2 \\ 2 \end{bmatrix} + \begin{bmatrix} -0.5 \\ -0.5 \end{bmatrix} = \begin{bmatrix} 1.5 \\ 1.5 \end{bmatrix}
    • x~2=[22]+[−0.5−0.5]=[1.51.5]\tilde{x}_2 = \begin{bmatrix} 2 \\ 2 \end{bmatrix} + \begin{bmatrix} -0.5 \\ -0.5 \end{bmatrix} = \begin{bmatrix} 1.5 \\ 1.5 \end{bmatrix}
    • x~3=[22]+12[11](2)=[22]+[11]=[33]\tilde{x}_3 = \begin{bmatrix} 2 \\ 2 \end{bmatrix} + \frac{1}{\sqrt{2}} \begin{bmatrix} 1 \\ 1 \end{bmatrix} (\sqrt{2}) = \begin{bmatrix} 2 \\ 2 \end{bmatrix} + \begin{bmatrix} 1 \\ 1 \end{bmatrix} = \begin{bmatrix} 3 \\ 3 \end{bmatrix}
  3. 재구성 오차 제곱:
    • ∥x1−x~1∥2=(1−1.5)2+(2−1.5)2=0.25+0.25=0.5\|x_1 - \tilde{x}_1\|^2 = (1 - 1.5)^2 + (2 - 1.5)^2 = 0.25 + 0.25 = 0.5
    • ∥x2−x~2∥2=(2−1.5)2+(1−1.5)2=0.25+0.25=0.5\|x_2 - \tilde{x}_2\|^2 = (2 - 1.5)^2 + (1 - 1.5)^2 = 0.25 + 0.25 = 0.5
    • ∥x3−x~3∥2=(3−3)2+(3−3)2=0\|x_3 - \tilde{x}_3\|^2 = (3 - 3)^2 + (3 - 3)^2 = 0
    • 평균 오차: J1=13(0.5+0.5+0)=13=λ2(일치)J_1 = \frac{1}{3} (0.5 + 0.5 + 0) = \frac{1}{3} = \lambda_2 \quad (\text{일치})

[문제 3] (계산형) 고차원 PCA (N<DN < D) 단축 알고리즘

차원 D=1000D=1000이고 데이터 수 N=3N=3인 중심화 데이터 행렬 Xc∈R1000×3X_c \in \mathbb{R}^{1000 \times 3}에 대해, 3×33 \times 3 그람 행렬 K=13Xc⊤XcK = \frac{1}{3}X_c^\top X_c의 고유값 분해 결과가 다음과 같이 주어졌습니다:

  • 고유값: λ1=5,  λ2=2,  λ3=0\lambda_1 = 5, \; \lambda_2 = 2, \; \lambda_3 = 0
  • λ1=5\lambda_1 = 5에 대응하는 단위 고유벡터: c1=12[1,0,−1]⊤c_1 = \frac{1}{\sqrt{2}} [1, 0, -1]^\top 원래 1000×10001000 \times 1000 공분산 행렬 S=13XcXc⊤S = \frac{1}{3}X_c X_c^\top의 최대 고유벡터 b1b_1을 XcX_c와 c1c_1의 수식으로 명시적으로 구하고, ∥b1∥=1\|b_1\|=1임을 보이시오.

[정답 및 풀이]

  1. 10.5절의 고차원 PCA 정규화 공식에 의해: b1=1Nλ1Xcc1b_1 = \frac{1}{\sqrt{N \lambda_1}} X_c c_1 여기서 N=3,λ1=5N = 3, \lambda_1 = 5이므로 Nλ1=15\sqrt{N\lambda_1} = \sqrt{15}입니다. 따라서: b1=115Xc(12[10−1])=130Xc[10−1]=130(xc1−xc3)b_1 = \frac{1}{\sqrt{15}} X_c \left( \frac{1}{\sqrt{2}} \begin{bmatrix} 1 \\ 0 \\ -1 \end{bmatrix} \right) = \frac{1}{\sqrt{30}} X_c \begin{bmatrix} 1 \\ 0 \\ -1 \end{bmatrix} = \frac{1}{\sqrt{30}} (x_{c1} - x_{c3})
  2. 노름 검산: ∥b1∥2=b1⊤b1=115c1⊤(Xc⊤Xc)c1=115c1⊤(3K)c1=315c1⊤(Kc1)=15c1⊤(5c1)=c1⊤c1=1\|b_1\|^2 = b_1^\top b_1 = \frac{1}{15} c_1^\top (X_c^\top X_c) c_1 = \frac{1}{15} c_1^\top (3 K) c_1 = \frac{3}{15} c_1^\top (K c_1) = \frac{1}{5} c_1^\top (5 c_1) = c_1^\top c_1 = 1 따라서 b1b_1은 정확히 단위 길이를 갖는 SS의 고유벡터입니다.

[문제 4] (개념형) 총 분산 보존 정리 (Total Variance Decomposition)

임의의 데이터 공분산 행렬 S∈RD×DS \in \mathbb{R}^{D \times D}에 대해, 각 원래 특징들의 표본 분산의 합과 모든 고유값들의 합이 같음(∑d=1DSdd=∑d=1Dλd\sum_{d=1}^D S_{dd} = \sum_{d=1}^D \lambda_d)을 증명하시오.

[정답 및 풀이]

  • 행렬의 대각합(Trace)은 주대각선 원소들의 합으로 정의됩니다: Tr(S)=∑d=1DSdd\text{Tr}(S) = \sum_{d=1}^D S_{dd}.
  • 공분산 행렬 SS의 주대각선 원소 SddS_{dd}는 각 dd번째 특징 변수의 표본 분산입니다.
  • 대칭 행렬 SS는 직교 행렬 UU에 의해 대각화됩니다: S=UΛU⊤S = U \Lambda U^\top, 여기서 Λ=diag(λ1,…,λD)\Lambda = \text{diag}(\lambda_1, \dots, \lambda_D).
  • 대각합의 순환 불변성(Cyclic property: Tr(ABC)=Tr(BCA)\text{Tr}(ABC) = \text{Tr}(BCA))에 의해: Tr(S)=Tr(UΛU⊤)=Tr(ΛU⊤U)=Tr(ΛID)=Tr(Λ)=∑d=1Dλd\text{Tr}(S) = \text{Tr}(U \Lambda U^\top) = \text{Tr}(\Lambda U^\top U) = \text{Tr}(\Lambda I_D) = \text{Tr}(\Lambda) = \sum_{d=1}^D \lambda_d
  • 따라서 원래 좌표계에서의 총 분산의 합은 주성분 좌표계에서의 고유값(분산)들의 합과 정확히 일치하며, PCA는 정보의 총량을 잃지 않고 회전시키는 변환임이 증명됩니다.

[문제 5] (개념형) PCA 전 표준화(Standardization)가 필수적인 경우

데이터셋의 각 열을 분산으로 나누는 표준화를 거치지 않고 PCA를 수행했을 때 발생할 수 있는 심각한 문제를 구체적인 예시와 함께 설명하시오.

[정답 및 풀이]

  • PCA는 분산이 큰 방향을 주성분으로 채택합니다.
  • 만약 변수 1이 ‘연간 소득(원)‘이고 변수 2가 ‘나이(세)‘라면, 소득 변수는 수천만~수억 단위의 분산을 갖는 반면 나이는 수백 단위의 분산을 갖습니다.
  • 중심화만 수행하고 PCA를 돌리면, 공분산 행렬의 (1,1) 원소가 (2,2) 원소보다 비교할 수 없을 만큼 크므로, 제1 주성분 고유벡터는 데이터의 본질적인 상관 패턴과 무관하게 거의 b1≈[1,0]⊤b_1 \approx [1, 0]^\top (소득 축)에 수평으로 정렬됩니다.
  • 즉, 단위(스케일)가 큰 단 하나의 변수가 주성분을 완전히 독식하여 다른 모든 유의미한 변수들의 정보를 완전히 무시하게 됩니다.
  • 따라서 변수들의 측정 단위가 서로 다른 경우 반드시 표준편차로 나누어 분산을 1로 맞춘 후(상관 행렬 기반 PCA) 주성분을 추출해야 합니다.

[문제 6] (개념형) SVD와 Eckart-Young 정리를 통한 PCA의 최적성

중심화 데이터 X∈RD×NX \in \mathbb{R}^{D \times N}에 대해, PCA가 왜 “프로베니우스 노름 기준 최적의 계수 MM 행렬 근사"인지 Eckart-Young 정리를 사용하여 설명하시오.

[정답 및 풀이]

  • Eckart-Young-Mirsky 정리(교재 정리 4.25는 스펙트럼 노름으로 서술, 프로베니우스 노름에서도 성립)에 따르면, 임의의 행렬 XX의 SVD가 X=∑i=1rσiuivi⊤X = \sum_{i=1}^r \sigma_i u_i v_i^\top일 때, 임의의 계수 MM 이하인 행렬 AA 중 오차 ∥X−A∥F2\|X - A\|_F^2를 최소화하는 최적 행렬(σM>σM+1\sigma_M > \sigma_{M+1}이면 유일)은 상위 MM개의 특이값 성분만 남긴 절단 SVD 행렬 X~M=∑i=1Mσiuivi⊤=UMΣMVM⊤\tilde{X}_M = \sum_{i=1}^M \sigma_i u_i v_i^\top = U_M \Sigma_M V_M^\top입니다.
  • PCA에서 데이터를 상위 MM개 주성분 기저 B=UMB = U_M으로 사영한 후 복원한 데이터 행렬은 X~=BB⊤X=UMUM⊤(UΣV⊤)=UMΣMVM⊤\tilde{X} = B B^\top X = U_M U_M^\top (U \Sigma V^\top) = U_M \Sigma_M V_M^\top입니다.
  • 두 행렬이 정확히 동일하므로, PCA는 데이터 행렬 전체를 계수 MM인 행렬로 압축할 때 정보 손실(프로베니우스 오차)을 수학적으로 가장 작게 만드는 최적해임이 보장됩니다.

[문제 7] (계산형) PPCA의 결합 공분산 및 주변 분산 계산

PPCA 모델에서 잠재 차원 M=1M=1, 데이터 차원 D=2D=2이고 파라미터가 다음과 같이 주어졌습니다:

B=[21],μ=[00],σ2=1B = \begin{bmatrix} 2 \\ 1 \end{bmatrix}, \quad \mu = \begin{bmatrix} 0 \\ 0 \end{bmatrix}, \quad \sigma^2 = 1
  1. 관측 데이터 xx의 주변 공분산 행렬 C=BB⊤+σ2I2C = B B^\top + \sigma^2 I_2를 구하시오.
  2. 결합 가우시안 분포 p([xz])p\left(\begin{bmatrix} x \\ z \end{bmatrix}\right)의 3×33 \times 3 공분산 행렬을 작성하시오.

[정답 및 풀이]

  1. BB⊤=[21][2,1]=[4221]B B^\top = \begin{bmatrix} 2 \\ 1 \end{bmatrix} [2, 1] = \begin{bmatrix} 4 & 2 \\ 2 & 1 \end{bmatrix} C=BB⊤+σ2I2=[4221]+[1001]=[5222]C = B B^\top + \sigma^2 I_2 = \begin{bmatrix} 4 & 2 \\ 2 & 1 \end{bmatrix} + \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} = \begin{bmatrix} 5 & 2 \\ 2 & 2 \end{bmatrix}
  2. 결합 공분산 행렬: Cov([xz])=[CBB⊤I1]=[522221211]\text{Cov}\left( \begin{bmatrix} x \\ z \end{bmatrix} \right) = \begin{bmatrix} C & B \\ B^\top & I_1 \end{bmatrix} = \begin{bmatrix} 5 & 2 & 2 \\ 2 & 2 & 1 \\ 2 & 1 & 1 \end{bmatrix}

[문제 8] (계산형) PPCA 잠재 변수 사후분포 p(z∣x)p(z \mid x) 손계산

[문제 7]의 파라미터(B=[2,1]⊤,μ=0,σ2=1B = [2, 1]^\top, \mu = 0, \sigma^2 = 1)에서 관측치 x=[31]x = \begin{bmatrix} 3 \\ 1 \end{bmatrix}이 들어왔을 때:

  1. 사후 평균 mm과 사후 분산 CzC_z를 Woodbury 형태의 공식 m=(B⊤B+σ2I)−1B⊤(x−μ)m = (B^\top B + \sigma^2 I)^{-1} B^\top (x - \mu)를 사용하여 구하시오.
  2. σ2→0\sigma^2 \to 0일 때의 사후 평균 극한값을 구하고, 표준 PCA의 사영 좌표와 비교하시오.

[정답 및 풀이]

  1. B⊤B=[2,1][21]=4+1=5B^\top B = [2, 1] \begin{bmatrix} 2 \\ 1 \end{bmatrix} = 4 + 1 = 5 (스칼라!)
    • 사후 분산: Cz=σ2(B⊤B+σ2I1)−1=1⋅(5+1)−1=16C_z = \sigma^2 (B^\top B + \sigma^2 I_1)^{-1} = 1 \cdot (5 + 1)^{-1} = \frac{1}{6}
    • 사후 평균: B⊤(x−μ)=[2,1][31]=6+1=7B^\top (x - \mu) = [2, 1] \begin{bmatrix} 3 \\ 1 \end{bmatrix} = 6 + 1 = 7 m=(B⊤B+σ2I)−1B⊤(x−μ)=15+1⋅7=76≈1.167m = (B^\top B + \sigma^2 I)^{-1} B^\top (x - \mu) = \frac{1}{5 + 1} \cdot 7 = \frac{7}{6} \approx 1.167 따라서 사후분포는 p(z∣x)=N(7/6,1/6)p(z \mid x) = \mathcal{N}(7/6, 1/6) 입니다.
  2. σ2→0\sigma^2 \to 0 극한: mσ2→0=(B⊤B)−1B⊤(x−μ)=75=1.4m_{\sigma^2 \to 0} = (B^\top B)^{-1} B^\top (x - \mu) = \frac{7}{5} = 1.4 표준 PCA에서 단위 기저 벡터 b1=B∥B∥=15[2,1]⊤b_1 = \frac{B}{\|B\|} = \frac{1}{\sqrt{5}}[2, 1]^\top 위로의 사영 좌표는: zPCA=b1⊤x=75z_{PCA} = b_1^\top x = \frac{7}{\sqrt{5}} 이때 복원 벡터는 b1zPCA=75[2,1]⊤=Bmσ2→0b_1 z_{PCA} = \frac{7}{5}[2, 1]^\top = B m_{\sigma^2 \to 0}으로 정확히 일치합니다.

[문제 9] (개념형) PPCA에서 노이즈 분산의 MLE 추정식의 의미

PPCA의 최대가능도 해에서 노이즈 분산 σML2=1D−M∑j=M+1Dλj\sigma_{ML}^2 = \frac{1}{D - M} \sum_{j=M+1}^D \lambda_j가 도출됩니다. 이 수식이 갖는 물리적·기하학적 의미를 설명하시오.

[정답 및 풀이]

  • DD차원 데이터 공간에서 상위 MM개의 주성분 방향은 데이터의 유의미한 신호(Signal)가 존재하는 MM차원 주부분공간을 형성합니다.
  • 나머지 D−MD-M개의 직교 여공간 방향은 모델이 신호로 설명하지 않고 버린 차원들입니다.
  • PPCA는 이 버려진 D−MD-M개의 모든 방향에 대해 등방성(Isotropic) 가우시안 노이즈 ϵ∼N(0,σ2I)\epsilon \sim \mathcal{N}(0, \sigma^2 I)가 균일하게 퍼져 있다고 가정합니다.
  • 따라서 버려진 차원들에서 관측된 표본 분산들(λM+1,…,λD\lambda_{M+1}, \dots, \lambda_D)은 순수한 노이즈의 분산으로 해석되며, 이들의 산술 평균이 모델 전체의 등방성 노이즈 분산 σ2\sigma^2의 가장 합리적인 최대가능도 추정량이 됩니다.

[문제 10] (개념형) 차원 축소 4대 기법 비교 (PCA vs Kernel PCA vs Autoencoder vs Factor Analysis)

아래 4가지 기법의 선형성 여부, 확률 모델 여부, 노이즈 가정을 비교 설명하시오.

[정답 및 풀이]

  1. 표준 PCA (Standard PCA):
    • 선형 기법 (Linear)
    • 비확률적 기하학적 사영 모델 (Deterministic)
    • 노이즈에 대한 확률적 가정이 없음.
  2. 확률적 PCA (PPCA):
    • 선형 기법 (Linear)
    • 잠재 변수 기반 가우시안 확률 모델
    • 모든 특징에 동일한 분산을 갖는 등방성 노이즈 (σ2I\sigma^2 I) 가정.
  3. 인자 분석 (Factor Analysis, FA):
    • 선형 기법 (Linear)
    • 잠재 변수 기반 가우시안 확률 모델
    • 특징마다 서로 다른 고유 노이즈를 갖는 대각 공분산 노이즈 (Ψ=diag(σ12,…,σD2)\Psi = \text{diag}(\sigma_1^2, \dots, \sigma_D^2)) 가정.
  4. 오토인코더 / 커널 PCA (Autoencoder / Kernel PCA):
    • 비선형 기법 (Non-linear)
    • 비선형 활성화 함수(신경망) 또는 커널 트릭을 통해 곡면 다양체(Non-linear Manifold) 상의 비선형 차원 축소를 수행함. 선형 활성화 함수를 쓴 오토인코더는 표준 PCA와 동치임.

교재 예제와 연결한 심화 과제 5선 (Part II에는 장 끝 연습문제가 없음)

교재 특이사항 안내:
MML 교재의 기초수학 파트(Part I, 27장)에는 장 끝에 별도의 ‘Exercises’ 절이 번호와 함께 수록되어 있으나, 응용 머신러닝 파트(Part II, 812장)는 각 장 끝에 별도의 번호 매겨진 Exercises 절이 없고 바로 ‘Further Reading’으로 끝납니다. 따라서 본 해설서에서는 시험 대비를 위해 10장 본문 전체를 관통하는 핵심 예제(Example) 및 핵심 심화 과제 5선을 엄선하여 질문 요약과 풀이 방향을 정확히 제시합니다.


[예제 연계 과제 1] MNIST 숫자 임베딩과 클래스 분리 (Example 10.3 / Figure 10.10)

  • 질문 요약: 784차원의 MNIST 손글씨 숫자 ‘0’과 ‘1’ 데이터를 2차원 주성분 공간(M=2M=2)으로 사영했을 때, 비지도 학습임에도 불구하고 두 숫자가 평면 상에서 뚜렷하게 분리되는 이유를 선형대수학적으로 설명하시오.
  • 풀이 방향:
    • 숫자 ‘0’은 중앙이 비어 있고 테두리에 픽셀이 집중된 반면, 숫자 ‘1’은 중앙에 수직선 형태로 픽셀이 집중되어 두 숫자 간의 픽셀 공분산 패턴이 극명하게 다름.
    • 784차원 픽셀 공간에서 전체 분산을 가장 크게 만드는 상위 2개의 고유벡터 b1,b2b_1, b_2는 주로 중앙 픽셀의 유무와 테두리 픽셀의 유무를 반영하는 가중치 형태를 띰.
    • 따라서 라벨(정답) 정보 없이 오직 분산만 최대화하여 z=B⊤(x−μ)z = B^\top(x-\mu)로 사영했음에도 불구하고, 두 클래스의 평균 위치가 2차원 평면의 서로 다른 사분면에 클러스터를 형성함을 서술함.

[예제 연계 과제 2] 주성분 차수 MM에 따른 재구성 품질과 압축률 (Example 10.4 / Figure 10.12)

  • 질문 요약: 784차원 이미지를 M=1,10,100,500M=1, 10, 100, 500으로 복원할 때 시각적 품질 변화와 평균 제곱 오차 JM=∑j=M+1DλjJ_M = \sum_{j=M+1}^D \lambda_j의 감소 추세를 분석하시오.
  • 풀이 방향:
    • 교재 예제 10.4는 숫자 “8"의 훈련 이미지 5,389장으로 주부분공간을 구하고, 시험 이미지를 주성분 1, 10, 100, 500개로 복원한다(그림 10.12).
    • 주성분 1개: 흐릿하고 평범한 “8” 모양이지만 그럭저럭 알아볼 만하다.
    • 주성분 10개, 100개: 갈수록 선명해지고 획의 세부가 살아난다.
    • 주성분 500개: 원본과 거의 같다. 평균 제곱 재구성 오차(그림 10.13)는 주성분 수가 늘수록 빠르게 줄어 소수의 주성분이 분산 대부분을 담는다.
    • 고유값 스크리 플롯(Scree Plot)에서 고유값이 급격히 감소하다 완만해지는 엘보우(Elbow) 지점과 복원 오차 곡선의 급격한 평탄화 관계를 설명함.

[예제 연계 과제 3] 고차원 안면 인식(Eigenfaces)에서의 N<DN < D 연산 단축 (Section 10.5)

  • 질문 요약: 100×100100 \times 100 크기의 얼굴 사진 50장(N=50,D=10,000N=50, D=10,000)이 주어졌을 때, 고유얼굴(Eigenfaces)을 구하는 효율적인 알고리즘 절차를 기술하시오.
  • 풀이 방향:
    • 10000×1000010000 \times 10000 공분산 행렬 SS를 만들면 메모리 및 시간 복잡도가 폭발하므로, 50×5050 \times 50 그람 행렬 K=150Xc⊤XcK = \frac{1}{50}X_c^\top X_c를 생성함.
    • KK의 고유값 λm\lambda_m과 고유벡터 cmc_m을 구함 (50×5050 \times 50이므로 1초 미만에 계산 완료).
    • 공식 bm=150λmXccmb_m = \frac{1}{\sqrt{50\lambda_m}} X_c c_m을 통해 10,000차원 고유얼굴 벡터 bmb_m을 즉시 복원함. 이 벡터를 100×100100 \times 100 이미지로 재배열한 것이 ‘고유얼굴(Eigenface)‘임을 명시함.

[예제 연계 과제 4] PPCA 잠재 공간 샘플링을 통한 가상 데이터 생성 (Example 10.5 / Figure 10.15)

  • 질문 요약: PPCA가 단순 차원 축소를 넘어 어떻게 새로운 손글씨 이미지를 무한히 합성할 수 있는 ‘생성 모델’로 작동하는지 그 수학적 메커니즘을 설명하시오.
  • 풀이 방향:
    • 교재 예제 10.5: 숫자 “8"을 2차원 주부분공간으로 사영한 잠재 좌표(그림 10.15의 파란 점) 근처에서 임의의 z∗z_*를 골라 x~∗=Bz∗\tilde{x}_* = Bz_*로 이미지를 만든다. 고른 위치에 따라 모양·기울기·크기가 다른 “8"이 나온다.
    • 훈련 데이터에서 멀리 떨어진 z∗z_*를 고르면 깨진 이미지가 나온다. 생성된 이미지의 내재 차원은 2뿐이다.
    • PPCA에서는 z∼N(0,IM)z \sim \mathcal{N}(0, I_M)에서 뽑아 x=Bz+μ+ϵx = Bz + \mu + \epsilon으로 생성하므로, 사전분포가 “훈련 데이터 근처"를 자연스럽게 정해 준다.
    • (교재 밖 보충) 두 잠재 점 사이를 z(t)=(1−t)zA+tzBz(t) = (1-t)z_A + t z_B로 이으면 모양이 연속적으로 바뀐다.

[예제 연계 과제 5] 선형 오토인코더와 PCA 목적함수의 완전 일치 (Section 10.8 / Figure 10.16)

  • 질문 요약: 단일 은닉층 선형 인공신경망의 인코더 가중치 We∈RM×DW_e \in \mathbb{R}^{M \times D}, 디코더 가중치 Wd∈RD×MW_d \in \mathbb{R}^{D \times M}에 대해 손실함수 1N∑∥xn−WdWexn∥2\frac{1}{N}\sum \|x_n - W_d W_e x_n\|^2를 최소화할 때 최적해의 성질을 논하시오.
  • 풀이 방향:
    • WdWeW_d W_e는 계수가 최대 MM인 D×DD \times D 사영 행렬임.
    • 에카르트-영 정리에 의해 최적의 계수 MM 사영 행렬은 직교 사영 행렬 BB⊤B B^\top이어야 함.
    • 손실을 최소화하는 가중치 Wd,WeW_d, W_e는 각각 BR,R−1B⊤B R, R^{-1} B^\top (RR은 임의의 M×MM \times M 가역 행렬)의 형태를 띠며, 이들이 형성하는 MM차원 은닉 공간은 PCA의 주부분공간과 정확히 동일한 공간을 펼쳐냄을 증명함.

시험 직전 10분 요약 (Cheat Sheet)

1. PCA 핵심 공식 총람

항목공식 / 표현식행렬 차원 및 비고
표본 평균μ=1N∑n=1Nxn\mu = \frac{1}{N} \sum_{n=1}^N x_nμ∈RD\mu \in \mathbb{R}^D
표본 공분산S=1N∑n=1N(xn−μ)(xn−μ)⊤=1NXcXc⊤S = \frac{1}{N} \sum_{n=1}^N (x_n - \mu)(x_n - \mu)^\top = \frac{1}{N} X_c X_c^\topS∈RD×DS \in \mathbb{R}^{D \times D}, 대칭 양의 준정부호
고유값 방정식Sbm=λmbm(bm⊤bm=1)S b_m = \lambda_m b_m \quad (b_m^\top b_m = 1)λ1≥λ2≥⋯≥λD≥0\lambda_1 \ge \lambda_2 \ge \dots \ge \lambda_D \ge 0
사영 (인코딩)zn=B⊤(xn−μ)z_n = B^\top (x_n - \mu)B=[b1,…,bM]∈RD×M,zn∈RMB = [b_1, \dots, b_M] \in \mathbb{R}^{D \times M}, z_n \in \mathbb{R}^M
복원 (디코딩)x~n=Bzn+μ=BB⊤(xn−μ)+μ\tilde{x}_n = B z_n + \mu = B B^\top (x_n - \mu) + \mux~n∈RD\tilde{x}_n \in \mathbb{R}^D
사영 분산 합∑m=1MV[zm]=∑m=1Mλm\sum_{m=1}^M \mathbb{V}[z_m] = \sum_{m=1}^M \lambda_m상위 MM개 고유값의 합
재구성 오차JM=1N∑∥xn−x~n∥2=∑j=M+1DλjJ_M = \frac{1}{N}\sum \|x_n - \tilde{x}_n\|^2 = \sum_{j=M+1}^D \lambda_j버려진 D−MD-M개 고유값의 합
설명 분산 비율EVR=∑m=1Mλm∑d=1Dλd\text{EVR} = \frac{\sum_{m=1}^M \lambda_m}{\sum_{d=1}^D \lambda_d}분모는 Tr(S)\text{Tr}(S)와 동일
SVD 연결Xc=UΣV⊤  ⟹  S=1NUΣΣ⊤U⊤X_c = U \Sigma V^\top \implies S = \frac{1}{N} U \Sigma \Sigma^\top U^\topbd=ud,  λd=σd2/Nb_d = u_d, \; \lambda_d = \sigma_d^2/N
고차원 트릭 (N<DN<D)1NXc⊤Xccm=λmcm  ⟹  bm=1NλmXccm\frac{1}{N} X_c^\top X_c c_m = \lambda_m c_m \implies b_m = \frac{1}{\sqrt{N\lambda_m}} X_c c_mN×NN \times N 그람 행렬 풀이
PPCA 주변 분포p(x)=N(μ,  BB⊤+σ2ID)p(x) = \mathcal{N}(\mu, \; B B^\top + \sigma^2 I_D)가우시안 잠재 변수 생성 모델
PPCA 사후 평균m=(B⊤B+σ2IM)−1B⊤(x−μ)m = (B^\top B + \sigma^2 I_M)^{-1} B^\top (x - \mu)σ2→0\sigma^2 \to 0 시 B⊤(x−μ)B^\top(x-\mu)로 수렴
PPCA 노이즈 MLEσML2=1D−M∑j=M+1Dλj\sigma_{ML}^2 = \frac{1}{D - M} \sum_{j=M+1}^D \lambda_j버려진 고유값들의 산술 평균

2. PCA를 바라보는 4대 관점 비교표

관점출발 목적함수최적화 대상핵심 결과 수식
1. 분산 최대화max⁡BTr(B⊤SB)  s.t.  B⊤B=I\max_{B} \text{Tr}(B^\top S B) \;\text{s.t.}\; B^\top B = I사영 축 BBSbm=λmbmS b_m = \lambda_m b_m, 상위 MM개 고유벡터 선택
2. 재구성 오차 최소화min⁡b,B,z1N∑∥xn−(b+Bzn)∥2\min_{b, B, z} \frac{1}{N}\sum \|x_n - (b + Bz_n)\|^2오프셋 bb, 기저 BB, 코드 zzb=μ,  zn=B⊤(xn−μ),  J=∑j=M+1Dλjb = \mu, \; z_n = B^\top(x_n-\mu), \; J = \sum_{j=M+1}^D \lambda_j
3. 저계수 행렬 근사min⁡rank(A)≤M∥Xc−A∥F2\min_{\text{rank}(A) \le M} \|X_c - A\|_F^2계수 MM 행렬 AAX~M=UMΣMVM⊤\tilde{X}_M = U_M \Sigma_M V_M^\top (Eckart-Young 정리)
4. 확률적 잠재 변수max⁡B,μ,σ2∑log⁡p(xn∣B,μ,σ2)\max_{B, \mu, \sigma^2} \sum \log p(x_n \mid B, \mu, \sigma^2)생성 가중치 BB, 노이즈 σ2\sigma^2σML2=1D−M∑j=M+1Dλj,  BML=UM(ΛM−σ2I)1/2R\sigma^2_{ML} = \frac{1}{D-M}\sum_{j=M+1}^D \lambda_j, \; B_{ML} = U_M (\Lambda_M - \sigma^2 I)^{1/2} R

3. 시험장 1초 판별 체크리스트

  • 데이터 중심화(xn−μx_n - \mu)를 먼저 수행했는가?
  • 표본 공분산 계산 시 분모가 NN인가? (1/(N−1)1/(N-1)이 아님에 주의)
  • 고유벡터의 크기가 1로 정규화(b⊤b=1b^\top b = 1)되었는가?
  • 사영 좌표 znz_n은 MM차원 벡터이고, 복원 벡터 x~n\tilde{x}_n은 DD차원 벡터인가?
  • 복원 벡터를 계산할 때 평균 μ\mu를 잊지 않고 다시 더해주었는가? (x~n=Bzn+μ\tilde{x}_n = B z_n + \mu)
  • 재구성 오차의 합은 보존된 고유값이 아니라 버려진 고유값들의 합(∑j=M+1Dλj\sum_{j=M+1}^D \lambda_j)인가?
  • N<DN < D일 때 고유벡터 스케일링 계수가 1Nλm\frac{1}{\sqrt{N\lambda_m}}인가?
  • PPCA 사후 평균에서 역행렬의 크기는 D×DD \times D가 아닌 M×MM \times M인가?