矩阵分解(rank decomposition)
本文收集了现有矩阵分解的几乎所有算法和应用,原文链接:https://sites.google.com/site/igorcarron2/matrixfactorizations
Matrix Decompositions has a long history and generally centers around a set of known factorizations such as LU, QR, SVD and eigendecompositions. More recent factorizations have seen the light of the day with work started with the advent of NMF, k-means and related algorithm [1]. However, with the advent of new methods based on random projections and convex optimization that started in part in the compressive sensing literature, we are seeing another surge of very diverse algorithms dedicated to many different kinds of matrix factorizations with new constraints based on rank and/or positivity and/or sparsity,… As a result of this large increase in interest, I have decided to keep a list of them here following the success of the big picture in compressive sensing.
The sources for this list include the following most excellent sites: Stephen Becker’s page, Raghunandan H. Keshavan‘ s page, Nuclear Norm and Matrix Recovery through SDP by Christoph Helmberg, Arvind Ganesh‘s Low-Rank Matrix Recovery and Completion via Convex Optimization who provide more in-depth additional information. Additional codes were featured also on Nuit Blanche. The following people provided additional inputs: Olivier Grisel, Matthieu Puigt.
Most of the algorithms listed below generally rely on using the nuclear norm as a proxy to the rank functional. It may not be optimal. Currently, CVX ( Michael Grant and Stephen Boyd) consistently allows one to explore other proxies for the rank functional such as the log-det as found by Maryam Fazell, Haitham Hindi, Stephen Boyd. ** is used to show that the algorithm uses another heuristic than the nuclear norm.
In terms of notations, A refers to a matrix, L refers to a low rank matrix, S a sparse one and N to a noisy one. This page lists the different codes that implement the following matrix factorizations: Matrix Completion, Robust PCA , Noisy Robust PCA, Sparse PCA, NMF, Dictionary Learning, MMV, Randomized Algorithms and other factorizations. Some of these toolboxes can sometimes implement several of these decompositions and are listed accordingly. Before I list algorithm here, I generally feature them on Nuit Blanche under the MF tag: http://nuit-blanche.blogspot.com/search/label/MF or. you can also subscribe to the Nuit Blanche feed,
Matrix Completion, A = H.*L with H a known mask, L unknown solve for L lowest rank possible
The idea of this approach is to complete the unknown coefficients of a matrix based on the fact that the matrix is low rank:
- OptSpace: Matrix Completion from a Few Entries by Raghunandan H. Keshavan, Andrea Montanari, and Sewoong Oh
- LMaFit: Low-Rank Matrix Fitting
- ** Penalty Decomposition Methods for Rank Minimization by Zhaosong Lu and Yong Zhang.The attendant MATLAB code is here.
- Jellyfish: Parallel Stochastic Gradient Algorithms for Large-Scale Matrix Completion, B. Recht, C. Re, Apr 2011
- GROUSE: Online Identification and Tracking of Subspaces from Highly Incomplete Information, L. Balzano, R. Nowak, B. Recht, 2010