Python Library for Large Scale Matrix Decomposition with GPU.
deComP is a compilation of matrix decomposition and deconvolution algorithms, especially for large scale data.
We compiled (and updated) several algorithms that utilizes numpy's parallelization capacity as much as possible.
Furthermore, deComP is also compatible to
CuPy
,
which gives numpy
-like interface for gpu computing.
Matrix decomposition problem is the following optimization problem,
,
where Y is a given data matrix, with the shape of [n_samples, n_features].
C is the excitation matrix [n_samples, n_latent]
while
is a basis matrix [n_latent, n_features].
Therefore, the matrix decomposition is a model to find the best matched basis for data Y.
Sometimes, some regularization is applied to the excitation matrix (the second term of the above equation), so that C becomes sparse and can be over-complete.
Currently, we implemented
All the models support complex values as well as real values. It also supports missing values.
Most of the above algorithms uses iterations of conditional optimization, i.e. first optimize C with fixed and second optimize with fixed C.
The optimization of C matrix is essentially LASSO problem. We also implemented GPU version of the Lasso solvers.
The official requirements are only numpy
and chainer
.
However, in order to work on GPU, we recommend to install cupy
.