Study Vault Search notes, aliases and full text
Graph
ConceptLinear Algebra used inDBISAI-written · not yet proofread

Singular Value Decomposition

Also SVD · Singular Values · Truncated SVD · Reduced SVD · Low-Rank Approximation · Rank-k Approximation · Singulärwertzerlegung

The singular value decomposition factors any matrix A ∈ ℝ^{m×n} of rank r as A = UΣVᵀ with orthogonal U, V and a diagonal Σ holding the singular values σ₁ ≥ … ≥ σ_r > 0; keeping the k largest gives the best rank-k approximation of A.

Know these firstEigenvectorMatrix Rank

Reduced (compact) SVD. Dropping the zero singular values and the vectors they multiply gives

A=UrSVr⊤,Ur∈Rm×r,  S=diag⁡(σ1,…,σr)∈Rr×r,  Vr∈Rn×r,A = U_r S V_r^\top, \qquad U_r \in \mathbb{R}^{m \times r},\; S = \operatorname{diag}(\sigma_1, \dots, \sigma_r) \in \mathbb{R}^{r \times r},\; V_r \in \mathbb{R}^{n \times r},

where UrU_r and VrV_r are column-orthonormal (Ur⊤Ur=Vr⊤Vr=IrU_r^\top U_r = V_r^\top V_r = I_r) and SS is invertible.

Formula#

Construction from eigenvectors (MML §4.5.2). Inserting the SVD into the two Gram matrices:

A⊤A=V Σ⊤Σ V⊤,AA⊤=U ΣΣ⊤ U⊤.A^\top A = V\, \Sigma^\top \Sigma\, V^\top, \qquad A A^\top = U\, \Sigma \Sigma^\top\, U^\top.

Both are symmetric and positive semidefinite, so:

  • the right-singular vectors viv_i are orthonormal eigenvectors of A⊤AA^\top A,
  • the left-singular vectors uiu_i are orthonormal eigenvectors of AA⊤A A^\top,
  • the nonzero eigenvalues of both are λi=σi2\lambda_i = \sigma_i^2, so σi=λi\sigma_i = \sqrt{\lambda_i}.

The two sides are linked by

ui=1σiAvi,vi=1σiA⊤ui(i≤r),i.e.Vr⊤=S−1Ur⊤A.u_i = \frac{1}{\sigma_i} A v_i, \qquad v_i = \frac{1}{\sigma_i} A^\top u_i \quad (i \le r), \qquad\text{i.e.}\qquad V_r^\top = S^{-1} U_r^\top A.

Outer-product form:

A=∑i=1rσi uivi⊤,A = \sum_{i=1}^{r} \sigma_i\, u_i v_i^\top,

a sum of rr rank-1 matrices weighted by the singular values (MML (4.91)).

Rank-kk approximation (truncated SVD). For k≤rk \le r keep the kk largest singular values:

Ak=UkSkVk⊤=∑i=1kσi uivi⊤,A_k = U_k S_k V_k^\top = \sum_{i=1}^{k} \sigma_i\, u_i v_i^\top,

with UkU_k, VkV_k the first kk columns of UU, VV and Sk=diag⁡(σ1,…,σk)S_k = \operatorname{diag}(\sigma_1, \dots, \sigma_k). Storing AkA_k in factored form takes k(m+n+1)k(m + n + 1) numbers instead of mnmn.

Properties#

  • Rank: rank⁡(A)\operatorname{rank}(A) = number of nonzero singular values (Matrix Rank).
  • Uniqueness: the singular values are unique. If they are pairwise distinct, each uiu_i, viv_i is unique up to a common sign flip.
  • U⊤UU^\top U vs. UU⊤U U^\top: for the reduced Ur∈Rm×rU_r \in \mathbb{R}^{m \times r}, Ur⊤Ur=IrU_r^\top U_r = I_r always holds (orthonormal columns). UrUr⊤∈Rm×mU_r U_r^\top \in \mathbb{R}^{m \times m} has rank rr, so it equals ImI_m only if r=mr = m. In general UrUr⊤U_r U_r^\top is the orthogonal projection onto the column space im⁡(A)\operatorname{im}(A).
  • Inverting the factorization: since Ur⊤Ur=IrU_r^\top U_r = I_r and SS is invertible, A=UrSVr⊤A = U_r S V_r^\top gives Vr⊤=S−1Ur⊤AV_r^\top = S^{-1} U_r^\top A (DBIS notation: V=S−1U⊤AV = S^{-1} U^\top A).
  • Symmetric PSD matrices: for A=A⊤≽0A = A^\top \succcurlyeq 0 the SVD is the eigendecomposition, U=VU = V and σi=λi\sigma_i = \lambda_i (MML p. 123).
  • Pseudo inverse: A+=VrS−1Ur⊤A^+ = V_r S^{-1} U_r^\top (MSI script Def. 10).

Example#

Sources#

  • MML p. 119 (Thm. 4.22: SVD theorem, singular values and vectors), MML pp. 122–125 (§4.5.2: construction from A⊤AA^\top A and AA⊤AA^\top, σi2=λi\sigma_i^2 = \lambda_i, ui=Avi/σiu_i = Av_i/\sigma_i)
  • MML p. 129 (reduced SVD, truncated SVD, rank-1 matrices uivi⊤u_i v_i^\top), MML p. 130 (outer-product form (4.91), rank-kk approximation), MML pp. 131–132 (spectral norm, Thm. 4.24, Eckart–Young Thm. 4.25)
  • Use in DBIS: Latent Semantic Indexing (rank-kk approximation of the term-document matrix, LSI Ranking); exams WS 16/17 Task 5 (not published), WS 17/18 Task 5 (not published), WS 19/20 Task 5.1 (not published), WS 22/23 Task 5.2 (not published)
  • Use in MSI: MSI script p. 34 (Def. 9: SVD, Def. 10: Moore–Penrose pseudo inverse)

Search

Type In
↑ ↓ move ↵ open ⇥ next section Ctrl↵ results page Prefix # to search text only