jisung-02notes
← Archive

특이값분해 SVD (머신러닝 응용)

L08 특이값분해 SVD의 분해를 실전에 적용 — rank가 작은 큰 행렬은 Economy SVD로 압축 저장하고, 차원 축소로 거리를 보존하며, 최소제곱 해…

jisung-02

한 줄 요약

L08 특이값분해 SVD의 분해를 실전에 적용 — rank가 작은 큰 행렬은 Economy SVD로 압축 저장하고, 차원 축소로 거리를 보존하며, 최소제곱 해는 pseudo-inverse로 역행렬 없이 안정적으로 푼다.

핵심 개념

주제핵심의미
Rank ↔ 특이값rank(X)\text{rank}(X) = 0이 아닌 σi\sigma_i 개수모두 >0 = full rank, 일부 0 = reduced rank
Economy SVDX=U~Σ~V~TX=\tilde U\tilde\Sigma\tilde V^T, 앞 rr개 열만rank r≪min⁡(n,p)r\ll\min(n,p)일 때 저장 절약
차원 축소xi∈Rp→zi∈Rkx_i\in\mathbb{R}^p \to z_i\in\mathbb{R}^k (k<pk<p)xi−xj≈zi−zjx_i-x_j\approx z_i-z_j (거리 보존)
최소제곱 + pseudo-inversew^=VΣ+UTy\hat w = V\Sigma^+U^Ty역행렬·직사각형·수치불안정 문제 해소
  • Economy SVD 주의: U~TU~=I\tilde U^T\tilde U=I 이지만 U~U~T≠I\tilde U\tilde U^T\neq I (부분공간만 span). V~\tilde V도 동일.
  • 차원 축소: 각 xix_i = V~\tilde V 열벡터들의 가중합이고, 그 가중치가 곧 축소 벡터 ziz_i.

핵심 수식 / 예시

Pseudo-inverse Σ+\Sigma^+ = 0 아닌 대각원소를 1/σi1/\sigma_i로 바꾸고 전치.

최소제곱 SVD 해 유도: y≈Xw^=UΣVTw^⇒UTy≈ΣVTw^⇒Σ+UTy≈VTw^⇒w^=VΣ+UTyy\approx X\hat w = U\Sigma V^T\hat w \Rightarrow U^Ty\approx\Sigma V^T\hat w \Rightarrow \Sigma^+U^Ty\approx V^T\hat w \Rightarrow \hat w = V\Sigma^+U^Ty

Netflix 저장 절약 예시 (nn=영화 5,000, pp=고객 1억, rank 10):

  • 전체: 5000×108×4B≈2TB5000\times10^8\times4\text{B} \approx 2\text{TB}
  • Economy: U~\tilde U 200KB + Σ~\tilde\Sigma 40B + V~\tilde V 4GB ≈\approx 4GB

차원 축소 예시 (rank(X)=2\text{rank}(X)=2): x1=[1,−1,−1,1]T→z1=2 [1,1]Tx_1=[1,-1,-1,1]^T \to z_1=2\sqrt{}\,[1,1]^T 처럼 4D → 2D.