Spectrahedron
Manifolds.Spectrahedron — Type
Spectrahedron{T} <: AbstractDecoratorManifold{ℝ}The Spectrahedron manifold, also known as the set of correlation matrices (symmetric positive semidefinite matrices) of rank $k$ with unit trace.
\[\begin{aligned} \mathcal S(n,k) = \bigl\{p ∈ ℝ^{n×n}\ \big|\ &a^\mathrm{T}pa \geq 0 \text{ for all } a ∈ ℝ^{n},\\ &\operatorname{tr}(p) = \sum_{i=1}^n p_{ii} = 1,\\ &\text{and } p = qq^{\mathrm{T}} \text{ for } q \in ℝ^{n×k} \text{ with } \operatorname{rank}(p) = \operatorname{rank}(q) = k \bigr\}. \end{aligned}\]
This manifold is working solely on the matrices $q$. Note that this $q$ is not unique, indeed for any orthogonal matrix $A$ we have $(qA)(qA)^{\mathrm{T}} = qq^{\mathrm{T}} = p$, so the manifold implemented here is the quotient manifold. The unit trace translates to unit Frobenius norm of $q$.
The tangent space at $p$, denoted $T_p\mathcal E(n,k)$, is also represented by matrices $Y\in ℝ^{n×k}$ and reads as
\[T_p\mathcal S(n,k) = \bigl\{ X ∈ ℝ^{n×n}\,|\,X = qY^{\mathrm{T}} + Yq^{\mathrm{T}} \text{ with } \operatorname{tr}(X) = \sum_{i=1}^{n}X_{ii} = 0 \bigr\}\]
endowed with the Euclidean metric from the embedding, i.e. from the $ℝ^{n×k}$
This manifold was for example investigated in [JBAS10].
Constructor
Spectrahedron(n::Int, k::Int; parameter::Symbol=:type)generates the manifold $\mathcal S(n,k) \subset ℝ^{n×n}$.
ManifoldsBase.check_point — Method
check_point(M::Spectrahedron, q; kwargs...)Check whether q is a valid representation of a point $p=qq^{\mathrm{T}}$ on the Spectrahedron M. This requires q to be a matrix of size (N,K) such that $p$ is symmetric positive semidefinite and has unit trace, i.e. $q$ has to have unit Frobenius norm. Since by construction $p$ is symmetric and positive semidefinite, these two properties are not explicitly checked. The tolerance for the unit trace can be set using the kwargs....
ManifoldsBase.check_vector — Method
check_vector(M::Spectrahedron, q, Y; kwargs...)Check whether $X = qY^{\mathrm{T}} + Yq^{\mathrm{T}}$ is a tangent vector to $p=qq^{\mathrm{T}}$ on the Spectrahedron M, i.e. after check_point of q, Y has to be of same dimension as q and $X$ has to be a symmetric matrix with zero trace. The trace has to vanish up to max(atol, 2 * rtol * norm(q) * norm(Y)). The relative tolerance rtol refers to the size of X; its default is the one of isapprox. Note that symmetry of $X$ holds by construction and is not explicitly checked.
ManifoldsBase.is_flat — Method
is_flat(::Spectrahedron)Return false. Spectrahedron is not a flat manifold.
ManifoldsBase.manifold_dimension — Method
manifold_dimension(M::Spectrahedron)returns the dimension of Spectrahedron M$=\mathcal S(n,k), n,k ∈ ℕ$, i.e.
\[\dim \mathcal S(n,k) = nk - 1 - \frac{k(k-1)}{2}.\]
ManifoldsBase.project — Method
project(M::Spectrahedron, q)project q onto the manifold Spectrahedron M, by normalizing w.r.t. the Frobenius norm
ManifoldsBase.project — Method
project(M::Spectrahedron, q, Y)Project Y onto the tangent space at q, i.e. row-wise onto the Spectrahedron manifold.
ManifoldsBase.representation_size — Method
representation_size(M::Spectrahedron)Return the size of an array representing an element on the Spectrahedron manifold M, i.e. $n×k$, the size of such factor of $p=qq^{\mathrm{T}}$ on $\mathcal M = \mathcal S(n,k)$.
ManifoldsBase.retract — Method
retract(M::Spectrahedron, q, Y, ::ProjectionRetraction)compute a projection based retraction by projecting $q+Y$ back onto the manifold.
ManifoldsBase.vector_transport_to — Method
vector_transport_to(M::Spectrahedron, p, X, q, ::ProjectionTransport)Transport the tangent vector X at p to q by projecting it onto the tangent space at q.
ManifoldsBase.zero_vector — Method
zero_vector(M::Spectrahedron,p)returns the zero tangent vector in the tangent space of the symmetric positive definite matrix p on the Spectrahedron manifold M.
Random.rand! — Method
rand(M::Spectrahedron; vector_at=nothing, σ::Real=1.0)
rand!(rng::AbstractRNG, M::Spectrahedron, pX; vector_at=nothing, σ::Real=1.0)Project a matrix of independent normally distributed entries with standard deviation σ onto M, or onto the tangent space at vector_at.
Literature
- [JBAS10]
- M. Journée, F. Bach, P.-A. Absil and R. Sepulchre. Low-Rank Optimization on the Cone of Positive Semidefinite Matrices. SIAM Journal on Optimization 20, 2327–2351 (2010), arXiv:0807.4423.