Skip to content

Python library for large scale matrix decomposition

Notifications You must be signed in to change notification settings

fujii-team/deComP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

deComP

Travis Status for fujii-team/deComP

Python Library for Large Scale Matrix Decomposition with GPU.

What is deComP

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

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.

Implemented models

Currently, we implemented

All the models support complex values as well as real values. It also supports missing values.

Algorithms

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.

Requirements

The official requirements are only numpy and chainer. However, in order to work on GPU, we recommend to install cupy.

About

Python library for large scale matrix decomposition

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages