특이값분해 SVD (머신러닝 응용)
L08 특이값분해 SVD의 분해를 실전에 적용 — rank가 작은 큰 행렬은 Economy SVD로 압축 저장하고, 차원 축소로 거리를 보존하며, 최소제곱 해…
jisung-02
한 줄 요약
L08 특이값분해 SVD의 분해를 실전에 적용 — rank가 작은 큰 행렬은 Economy SVD로 압축 저장하고, 차원 축소로 거리를 보존하며, 최소제곱 해는 pseudo-inverse로 역행렬 없이 안정적으로 푼다.
핵심 개념
| 주제 | 핵심 | 의미 |
|---|
| Rank ↔ 특이값 | rank(X) = 0이 아닌 σi 개수 | 모두 >0 = full rank, 일부 0 = reduced rank |
| Economy SVD | X=U~Σ~V~T, 앞 r개 열만 | rank r≪min(n,p)일 때 저장 절약 |
| 차원 축소 | xi∈Rp→zi∈Rk (k<p) | xi−xj≈zi−zj (거리 보존) |
| 최소제곱 + pseudo-inverse | w^=VΣ+UTy | 역행렬·직사각형·수치불안정 문제 해소 |
- Economy SVD 주의: U~TU~=I 이지만 U~U~T=I (부분공간만 span). V~도 동일.
- 차원 축소: 각 xi = V~ 열벡터들의 가중합이고, 그 가중치가 곧 축소 벡터 zi.
핵심 수식 / 예시
Pseudo-inverse Σ+ = 0 아닌 대각원소를 1/σi로 바꾸고 전치.
최소제곱 SVD 해 유도:
y≈Xw^=UΣVTw^⇒UTy≈ΣVTw^⇒Σ+UTy≈VTw^⇒w^=VΣ+UTy
Netflix 저장 절약 예시 (n=영화 5,000, p=고객 1억, rank 10):
- 전체: 5000×108×4B≈2TB
- Economy: U~ 200KB + Σ~ 40B + V~ 4GB ≈ 4GB
차원 축소 예시 (rank(X)=2): x1=[1,−1,−1,1]T→z1=2[1,1]T 처럼 4D → 2D.