nnmf_sca

Nonnegative/sparse matrix factorization
298 Downloads
Updated 1 Feb 2018

View License

The goal of Blind Source Separation (BSS) methods is to estimate the physical sources of a mixing system. Most BSS models can be expressed algebraically as some form of factorization of a data matrix into the factor matrices:

X = ADB'
Without some a priori knowledge, or without specific constraints, it is not possible to estimate uniquely the original source signals. However, often X can be nonnegative and the corresponding hidden components of X may have a physical meaning only when nonnegative. In practice, both nonnegative matrix factorization, NNMF, and sparse component analysis, SCA, of data can be necessary for the underlying latent components to have a physical interpretation.
In standard NNMF we only assume nonnegativity of the factor matrices A and B, and unlike ICA, we do not assume that the sources are independent. In order to estimate factor matrices A and B we need to quantify a cost function, the distance between the data matrix and the NNMF model . The simplest distance measure is based on the Frobenius norm. Alternating minimization of such a cost leads to the Alternating Least Squares (ALS) algorithm: in this method, after an initial random initialization of A, a least squares solution for A with B fixed and for B with A fixed is carried out iteratively until the cost function reaches a minimum, or the difference in cost function between consecutive iterations becomes smaller than a given tolerance value, or a maximum number of iterations is reached. In each iteration, the negative elements of A and B and the off-diagonal elements of D are replaced with 0 or with a very small number.
A simple modification of this algorithm allows also the imposition of a sparseness constraint (with or without nonnegativity) on the A matrix. In this case at each iteration we set to 0 a given fraction of the smallest elements of A. This way, Nonnegative matrix factorization (NNMF) turns into Sparse component analysis (SCA). The algorithm is implemented in the function nnmf_sca.

nnmf_sca can be conveniently used to obtain a lower rank approximation of the original matrix X as ADB', with a diagonal matrix D, or constraining D = I. Examples of possible uses of nnmf_sca are contained in the live script NNMF_SCA_usage.

Cite As

Domenico Gatti (2024). nnmf_sca (https://www.mathworks.com/matlabcentral/fileexchange/65485-nnmf_sca), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2017b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Linear Algebra in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

NNMF_SCA/

Version Published Release Notes
1.0.0.0

Testing extended to release R2018a