Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

IncPACK: Incremental SVD Package

IncPACK contains implementations of low-rank incremental Singular Value Decomposition (SVD) methods for approximating the dominant or dominated singular values and vectors of a matrix.

The Problem

Many applications require only a subset of the singular values and vectors of a given matrix. Numerous approaches exist for this:

  • Full SVD with truncation — computationally wasteful, and often prohibitively expensive.
  • Transform to symmetric eigenvalue problem — apply an iterative eigensolver to the relevant part of the spectrum, then back-transform to singular value solutions. The most popular approach for large, sparse matrices.
  • Specialized SVD solvers, including:
    • JD-SVD (Hochstenbach) — analogous to the Jacobi-Davidson eigensolver; uses a Newton method wrapped by a Davidson-type two-sided subspace acceleration strategy. Best applied to finding either the largest or smallest singular values.
    • Riemannian optimization — the dominant singular vectors can be computed by maximizing a function over a Riemannian manifold.
    • Neural network methods — various Hebbian/neural-network-based approaches.
    • Low-rank incremental SVD methods — approximate the dominant or dominated singular subspaces in a pass-efficient manner. These methods are the focus of this package.
  • Sketching/Randomized methods — See (eg) HMT11, Woodruff14, or Murray23.

Software

IncPACK currently provides a MATLAB implementation, released under an open-source modified BSD license. An MPI-based C++ implementation is available in the Trilinos RBGen package (development branch).

The package provides a single solver: an implementation of the Sequential Karhunen-Loeve algorithm (Levy and Lindenbaum, 2000). As described by the original authors, this solver computes approximations for the left singular subspace. It has been extended to also compute the right singular subspace and to improve approximations via multiple passes through the data matrix.

Multipass strategies

  • Simple restarting
  • Steepest descent (variant A)
  • Steepest descent (variant B)

Publications

An introduction to the family of incremental/streaming SVD methods:

Foundational papers describing the family of low-rank incremental SVD methods:

Baker's thesis, describing a generalization of these methods with an emphasis on efficient implementations:

Further analysis, including multipass methods:

Authors

Funding

Funding for this work came in part from:

  • National Science Foundation Award 032944: "Collaborative Research: Model Reduction of Dynamical Systems for Real Time Control"
  • National Science Foundation Award 9912415: "Efficient Algorithms for Large Scale Dynamical Systems"

Related Software

  • GenRTR — a Riemannian trust-region solver that can be used to compute the dominant SVD.

License

Modified BSD. See LICENSE.

About

Implementations of the Incremental SVD

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages