How to obtain a rank-5 solution to an optimization problem

27 Views Asked by At

Say I want to determine a matrix solution $A^*$ to the minimization problem $$\min_{A \in \mathbb{R}^{n\times n}} f(A)$$ with the constraint that this solution $A^*$ must have rank $k$, where $k \ll n$. How would one go about this? I'm particularly interested a solution that is immediately applicable in a black-box autodifferentiator (like TensorFlow) rather than theoretical approaches. For example, would it be possible to perform some kind of rank factorization of $A$, like $A = CF$ where $C$ is an $n\times k$ matrix and $F$ is a $k\times n$ matrix, and then optimize over these variables? In my case, the indices of the trivial and nontrivial eigenvalues are known, so would it be as easy as thresholding the eigenvalues? Do there exist assumptions about $A$ which make this type of constraint trivial?