8.3 SVD의 응용
도입
선형대수학을 공부하다 보면 “이게 실제로 어디에 쓰이나?” 하는 의문이 생길 수 있다. SVD(특이값 분해)에 관해서는 이 질문의 답이 넘쳐난다. 넷플릭스의 영화 추천 알고리즘, 의료 영상 압축, 구글의 검색 알고리즘, 얼굴 인식 시스템, GPS 오차 보정 — SVD는 이 모든 곳에서 핵심 역할을 한다.
이 글에서는 SVD의 주요 응용을 체계적으로 살펴본다. 저랭크 근사와 이미지 압축, PCA와의 연결, 의사역행렬과 최소제곱 해, 그리고 행렬의 조건수까지. 이 모든 것이 $A = U\Sigma V^T$라는 하나의 분해에서 자연스럽게 흘러나온다. SVD는 단순한 수학 도구가 아니라, 현대 데이터 과학의 기반 언어다.
저랭크 근사 (Low-rank Approximation)
외적 전개 (Outer Product Expansion)
SVD를 외적의 합으로 표현하면:
\[A = U\Sigma V^T = \sum_{i=1}^{r} \sigma_i \vec{u}_i \vec{v}_i^T\]각 항 $\sigma_i \vec{u}_i \vec{v}_i^T$는 랭크-1 행렬이다. 첫 번째 항이 $A$에서 가장 “중요한” 정보를, 이후 항들이 점차 덜 중요한 세부 정보를 담는다.
Rank-$k$ 근사
처음 $k$개의 항만 유지한 Rank-$k$ 근사:
\[A_k = \sum_{i=1}^{k} \sigma_i \vec{u}_i \vec{v}_i^T = U_k \Sigma_k V_k^T\]여기서 $U_k$는 $U$의 첫 $k$열, $\Sigma_k$는 $k \times k$ 대각행렬, $V_k$는 $V$의 첫 $k$열이다.
Eckart-Young 정리
$A_k$는 rank-$k$ 행렬 중 $A$에 가장 가까운 행렬이다.
\[\min_{\text{rank}(B) \leq k} \|A - B\|_2 = \|A - A_k\|_2 = \sigma_{k+1}\] \[\min_{\text{rank}(B) \leq k} \|A - B\|_F = \|A - A_k\|_F = \sqrt{\sigma_{k+1}^2 + \cdots + \sigma_r^2}\]이 정리는 SVD가 제공하는 근사가 이론적으로 최적임을 보장한다.
이미지 압축
그레이스케일 이미지 = 행렬
$m \times n$ 픽셀 이미지는 $m \times n$ 행렬 $A$로 표현된다. 각 성분은 픽셀의 밝기값(0~255)이다.
저장 비용 비교:
- 원본 행렬 $A$: $m \times n$개의 숫자
- Rank-$k$ 근사 $A_k$: $k(m + n + 1)$개의 숫자 ($U_k$, $\Sigma_k$, $V_k$ 저장)
압축률 = $\dfrac{k(m+n+1)}{mn}$
$k \ll \min(m,n)$이면 압축률이 크게 떨어진다.
예시: $1000 \times 1000$ 이미지, $k = 50$
- 원본: $10^6$개 숫자
- 압축: $50 \times 2001 \approx 100{,}050$개 숫자
- 압축률 $\approx 10$배
큰 특이값들이 전체 정보의 대부분을 담고 있기 때문에, $k$를 적절히 선택하면 시각적으로 거의 손실 없이 압축할 수 있다.
PCA와의 연결
주성분 분석 (Principal Component Analysis)
데이터 행렬 $X \in \mathbb{R}^{m \times n}$이 있고, 각 행이 하나의 데이터 점, 각 열이 하나의 특성(feature)이라 하자. 데이터의 공분산 행렬은:
\[C = \frac{1}{m-1} X^T X \quad (\text{데이터가 중심화된 경우})\]SVD: $X = U\Sigma V^T$로 분해하면:
\[C = \frac{1}{m-1}(V\Sigma U^T)(U\Sigma V^T) = \frac{1}{m-1}V\Sigma^2 V^T\]따라서:
- 주성분 방향 = $X$의 우특이벡터 $\vec{v}_1, \vec{v}_2, \ldots$ (분산이 큰 방향 순)
- 주성분의 분산 = $\dfrac{\sigma_i^2}{m-1}$
- $k$차원으로 차원 축소: $X \approx U_k\Sigma_k V_k^T$, 즉 $XV_k$를 새 좌표로 사용
설명된 분산 비율 (Explained Variance Ratio):
\[\text{EVR}_k = \frac{\sum_{i=1}^k \sigma_i^2}{\sum_{i=1}^r \sigma_i^2}\]의사역행렬 (Pseudoinverse)
$A^+ = V\Sigma^+ U^T$
역행렬이 존재하지 않는 행렬(직사각 행렬, 또는 특이 정방행렬)에 대해 무어-펜로즈 의사역행렬(Moore-Penrose pseudoinverse)을 정의한다:
\[A^+ = V\Sigma^+ U^T\]$\Sigma^+$는 $\Sigma$의 0이 아닌 대각 성분의 역수를 취하고 전치한 행렬:
\[\Sigma^+ = \begin{pmatrix} 1/\sigma_1 & & \\ & \ddots & \\ & & 1/\sigma_r \end{pmatrix}^T \quad (0 \text{은 그대로 0})\]의사역행렬의 성질
$A^+$는 다음 네 가지 무어-펜로즈 조건을 만족한다:
- $AA^+A = A$
- $A^+AA^+ = A^+$
- $(AA^+)^T = AA^+$
- $(A^+A)^T = A^+A$
최소제곱 해와 의사역행렬
$A\vec{x} = \vec{b}$의 최소제곱 해 중 최소 노름(minimum norm)을 갖는 해는:
\[\hat{x} = A^+\vec{b} = V\Sigma^+U^T\vec{b}\]이는 SVD를 이용해 수치적으로 안정적으로 계산할 수 있다.
조건수 (Condition Number)
수치 안정성의 척도
행렬 $A$의 조건수(condition number):
\[\kappa(A) = \|A\|_2 \cdot \|A^{-1}\|_2 = \frac{\sigma_{\max}}{\sigma_{\min}} = \frac{\sigma_1}{\sigma_r}\]조건수는 입력의 작은 오차가 해에 얼마나 증폭되는지를 나타낸다.
- $\kappa(A) \approx 1$: 수치적으로 안정적(well-conditioned)
- $\kappa(A) \gg 1$: 수치적으로 불안정(ill-conditioned)
예시: $\kappa(A) = 10^{10}$이면, 입력 데이터에 $10^{-16}$ (부동소수점 한계) 오차가 있을 때 해에는 $10^{-6}$ 오차가 발생할 수 있다.
SVD 응용 요약표
핵심 포인트 정리
| 응용 분야 | SVD 활용 방법 | 핵심 공식/개념 |
|---|---|---|
| 저랭크 근사 | 상위 $k$개 특이값/벡터만 유지 | $A_k = \sum_{i=1}^k \sigma_i\vec{u}_i\vec{v}_i^T$ |
| Eckart-Young 정리 | 최적 Rank-$k$ 근사 보장 | $\min_{\text{rank}(B)\leq k}|A-B|F = \sqrt{\sum{i>k}\sigma_i^2}$ |
| 이미지 압축 | Rank-$k$ 근사로 저장 | 저장 비용 $k(m+n+1)$ |
| PCA | 주성분 = 우특이벡터 | $X = U\Sigma V^T$, 주성분: $V$의 열 |
| 차원 축소 | 상위 $k$개 주성분으로 투영 | $XV_k$ = 축소된 좌표 |
| 의사역행렬 | 최소노름 최소제곱 해 | $A^+ = V\Sigma^+U^T$ |
| 최소제곱 해 | 수치 안정적 계산 | $\hat{x} = A^+\vec{b}$ |
| 조건수 | 수치 안정성 판단 | $\kappa(A) = \sigma_1/\sigma_r$ |
| 랭크 판별 | 영이 아닌 특이값 수 | $\text{rank}(A) = r$ |
| 행렬 노름 | 프로베니우스/스펙트럴 | $|A|_F = \sqrt{\sum\sigma_i^2}$, $|A|_2 = \sigma_1$ |
마무리: 선형대수의 완성
선형대수를 처음 배울 때는 벡터, 행렬, 행렬식, 연립방정식 풀기처럼 계산 위주의 내용이 주를 이룬다. 하지만 고유값과 고유벡터, 직교성, 그리고 SVD에 이르면 선형대수의 진정한 힘이 드러난다.
SVD는 이 여정의 정점이다. 어떤 행렬도 $A = U\Sigma V^T$로 분해되고, 이 분해는 행렬의 모든 구조적 정보 — 랭크, 차원, 중요한 방향, 수치 안정성 — 를 한눈에 보여준다. 데이터 압축, 잡음 제거, 차원 축소, 최적화, 머신러닝의 기초까지, SVD는 한 번 배우면 어디서든 마주치는 도구다.
“모든 선형변환은 회전-스트레치-회전이다.” 이 단순한 사실이 선형대수학이 그토록 강력하고 아름다운 이유다.
지금까지 고유값과 고유벡터, 직교성, 그람-슈미트 과정, 최소제곱법, 특이값 분해까지 선형대수의 핵심 주제들을 함께 살펴보았다. 이 개념들은 서로 긴밀하게 연결되어 있으며, 현대 수학과 공학의 언어를 이루고 있다.

