SPAMS: a SPArse Modeling Software, v2.2
Julien Mairal
julien.mairal@m4x.org
March 23, 2012
1 Introduction
SPAMS (SPArse Modeling Software) is an open-source optimization toolbox under licence
GPLv3. It implements algorithms for solving various machine learning and signal processing
problems involving sparse regularizations.
The library is coded in C++, is compatible with Linux, Mac, and Windows 32bits and
64bits Operating Systems. It is interfaced with Matlab, but can be called from any C++
application. A R and Python interface has been developed by Jean-Paul Chieze.
It requires an implementation of BLAS and LAPACK for performing efficient linear
algebra operations such as the one provided by matlab/R, atlas, netlib, or the one provided
by Intel (Math Kernel Library). It also exploits multi-core CPUs when this feature is
supported by the compiler, through OpenMP.
The current licence is GPLv3 available at http://www.gnu.org/licenses/gpl.html,
which limits its usage. For other usages (such as the use in proprietary softwares), please
contact the author.
Version 2.2 of SPAMS is divided into three main “toolboxes” and has a few additional
miscellaneous functions:
• The Dictionary learning and matrix factorization toolbox contains the online
learning technique of [18, 19] and its variants for solving various matrix factorization
problems:
– Dictionary Learning for sparse coding.
– Sparse principal component analysis.
– Non-negative matrix factorization.
– Non-negative sparse coding.
• The Sparse decomposition toolbox contains efficient implementations of
– Orthogonal Matching Pursuit, (or Forward Selection) [28, 21].
– The LARS/homotopy algorithm [8] (variants for solving Lasso and Elastic-Net
problems).
– A weighted version of LARS.
– OMP and LARS when data come with a binary mask.
– A coordinate-descent algorithm for `
1
-decomposition problems [10, 9, 29].
– A greedy solver for simultaneous signal approximation as defined in [27, 26]
(SOMP).
1
- 1
- 2
前往页