pymanopt / pymanopt

Python toolbox for optimization on Riemannian manifolds with support for automatic differentiation
https://pymanopt.org
BSD 3-Clause "New" or "Revised" License
747 stars 146 forks source link

Geodesic on Stiefel Manifold #276

Open Fengcheng-Pei opened 3 weeks ago

Fengcheng-Pei commented 3 weeks ago

Hi,

If A is a fix point on a Stiefel manifold, and how could I get a geodesic from an arbitrary point X on the manifold to this point A? Is it possible to find a closed form representation?

Best regards, Fengcheng Pei

kellertuer commented 3 weeks ago

Hi,

as far as I am aware, there is no closed form solution. You could for example compute this as soon as you have log and exp available, but then there is for example https://arxiv.org/pdf/1604.05054 talking about an iterative algorithm for the log. Concretely for geodesics there is also this paper https://arxiv.org/pdf/2105.07017 that at least talks about efficient computations of quasi geodesics. So to me that looks like. there is no closed form known.

Fengcheng-Pei commented 3 weeks ago

Hi,

as far as I am aware, there is no closed form solution. You could for example compute this as soon as you have log and exp available, but then there is for example https://arxiv.org/pdf/1604.05054 talking about an iterative algorithm for the log. Concretely for geodesics there is also this paper https://arxiv.org/pdf/2105.07017 that at least talks about efficient computations of quasi geodesics. So to me that looks like. there is no closed form known.

Hi,

Thanks great a lot for your help and I am trying to find a geodesic convex function on a Stiefel manifold. I thought $f(X)=||X-A||_F^2$ could be a choice, but I would like to prove it. If we could not find a closed form geodesic r(t), then how could we get or prove some geodesic convex functions on Stiefel manifolds?

kellertuer commented 3 weeks ago

Well, you can also start from know (locally) convex functions. Globally there is not much hope for a (non-constant) convex function due to positive curvature.

One function that is convex (locally) is: Fix a point A on Stiefel and take f(B) = dist°2(A,B) at least for B close enough (see for example this paper https://arxiv.org/pdf/2403.03782 about the injectivity radius), where dust is the squared distance (with respect to the metric you chose).