MATLAB codes for computing various tensor decomposition. Most of the shared code is rather unoptimized, to be used to check viability of the proposed new tensor decompositions models. Most algorithms are also based on variants of Alternating Least Squares.
Last Update : 21/02/2019
A set of functions to decompose a tensor using a CPD model, where one factor lives among a large dictionary of known components.
a) M2PALS : Multiple dictionary are available, with bounds on the number of atoms to select for each dictionary.
b) MPALS : factor A in the CPD of a tensor T is so that A = D(:,K), K a set of idexes. Features greedy and flexible algorithms.
c) ProxOp : Proximal operators of l_1 and l_∞ induced matrix norm, python and Matlab codes are both available. The Python code is implemented in a more optimized manner.
a) CCP : Flexibly coupled tensor decompositions.
b) NNP2 : Flexibly coupled PARAFAC2 with nonnegativity constraints in the coupled mode.
c) Registered-CP : comming soon
a) PROCO-ALS : Fast nonnegative tensor PARAFAC/Canonical Polyadic decomposition. Compression is based on randomized SVD.
a) NLFD : Nonlinear fluorescence decomposition, designed for fluorescence samples with high concentrations, where the linearity of the CPD model does not hold. Based on the Levenberg Marquardt algorithm.
a) ICASSP2019: codes for testing Nonnegative Sparse Matrix Factorization, with a MATLAB implementation of a brute force algorithm and a variant of k-subspace.