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 (2026). nnmf_sca (https://www.mathworks.com/matlabcentral/fileexchange/65485-nnmf_sca), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
- MATLAB > Mathematics > Linear Algebra >
Tags
Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
NNMF_SCA/
NNMF_SCA/
| Version | Published | Release Notes | |
|---|---|---|---|
| 1.0.0.0 | Testing extended to release R2018a |
