Randomized Algorithm for SVD

Definition

  1. Generate random matrix with iid Gaussian entriesRRm×2k
  2. Calculate, by repeated matrix multiplications (e.g. q=2):Y=(AAT)qAR
  3. Construct orthonormal basis for the image of Y (with Gram-Schmidt)

Usage

  1. Compute orthogonal matrix Q with few(er) columnsAQQTA
  2. Do SVD on smaller matrixB:=QTA=U~Σ~V~T
  3. Extend it back to an approximate SVD for AA(QU~)Σ~V~T