This class implements the popular nuclear norm minimization heuristic for matrix completion problems. More...
Public Member Functions | |
MatrixCompletion (const size_t m, const size_t n, const arma::umat &indices, const arma::vec &values, const size_t r) | |
Construct a matrix completion problem, specifying the maximum rank of the solution. More... | |
MatrixCompletion (const size_t m, const size_t n, const arma::umat &indices, const arma::vec &values, const arma::mat &initialPoint) | |
Construct a matrix completion problem, specifying the initial point of the optimization. More... | |
MatrixCompletion (const size_t m, const size_t n, const arma::umat &indices, const arma::vec &values) | |
Construct a matrix completion problem. More... | |
void | Recover (arma::mat &recovered) |
Solve the underlying SDP to fill in the remaining values. More... | |
const ens::LRSDP< ens::SDP< arma::sp_mat > > & | Sdp () const |
Return the underlying SDP. More... | |
ens::LRSDP< ens::SDP< arma::sp_mat > > & | Sdp () |
Modify the underlying SDP. More... | |
This class implements the popular nuclear norm minimization heuristic for matrix completion problems.
That is, given known values M_ij's, the following optimization problem (semi-definite program) is solved to fill in the remaining unknown values of X
min ||X||_* subj to X_ij = M_ij
where ||X||_* denotes the nuclear norm (sum of singular values of X).
For a theoretical treatment of the conditions necessary for exact recovery, see the following paper:
A Simpler Appoarch to Matrix Completion. Benjamin Recht. JMLR 11. http://arxiv.org/pdf/0910.0651v2.pdf
An example of how to use this class is shown below:
Definition at line 53 of file matrix_completion.hpp.
MatrixCompletion | ( | const size_t | m, |
const size_t | n, | ||
const arma::umat & | indices, | ||
const arma::vec & | values, | ||
const size_t | r | ||
) |
Construct a matrix completion problem, specifying the maximum rank of the solution.
m | Number of rows of original matrix. |
n | Number of columns of original matrix. |
indices | Matrix containing the indices of the known entries (must be [2 x p]). |
values | Vector containing the values of the known entries (must be length p). |
r | Maximum rank of solution. |
MatrixCompletion | ( | const size_t | m, |
const size_t | n, | ||
const arma::umat & | indices, | ||
const arma::vec & | values, | ||
const arma::mat & | initialPoint | ||
) |
Construct a matrix completion problem, specifying the initial point of the optimization.
m | Number of rows of original matrix. |
n | Number of columns of original matrix. |
indices | Matrix containing the indices of the known entries (must be [2 x p]). |
values | Vector containing the values of the known entries (must be length p). |
initialPoint | Starting point for the SDP optimization. |
MatrixCompletion | ( | const size_t | m, |
const size_t | n, | ||
const arma::umat & | indices, | ||
const arma::vec & | values | ||
) |
Construct a matrix completion problem.
m | Number of rows of original matrix. |
n | Number of columns of original matrix. |
indices | Matrix containing the indices of the known entries (must be [2 x p]). |
values | Vector containing the values of the known entries (must be length p). |
void Recover | ( | arma::mat & | recovered | ) |
Solve the underlying SDP to fill in the remaining values.
recovered | Will contain the completed matrix. |
|
inline |
Return the underlying SDP.
Definition at line 115 of file matrix_completion.hpp.
|
inline |
Modify the underlying SDP.
Definition at line 120 of file matrix_completion.hpp.