geomstats / geomstats

Computations and statistics on manifolds with geometric structures.
http://geomstats.ai
MIT License
1.19k stars 243 forks source link

Implement Homogeneous spaces: complete Stiefel and Grassmann implementations #107

Open ninamiolane opened 6 years ago

ninamiolane commented 6 years ago

Create a class HomogeneousSpace that inherits from Manifold and implements its geometry. https://en.wikipedia.org/wiki/Homogeneous_space

SwastiKh commented 2 years ago

Hi if no one is working on this issue, I'd like to attempt at creating the Homogenous space class. Is there any mathematical background I should go through beforehand?

ninamiolane commented 2 years ago

Hi @SwastiKh thank you for your interest! 🎉 This one is a very exciting issue for sure, with a lot of interest coming from the computer vision and machine learning communities.

Since we posted this issue in 2018, its scope has slightly changed. Instead of implementing an abstract class of homogeneous space, we want to focus on implementing two examples of homogeneous spaces: Stiefel manifold and Grasmann manifold... and other practical homogeneous spaces too, if you think about one.

As for the mathematical background on each of them, you can have a look at the reference papers cited in:

Then, the initial goal of this issue is to go through the work of the winning participants of the ICLR 2021 computational geometry and topology challenge, and import in geomstats the metrics that they have implemented and that are not present in geomstats: https://github.com/geomstats/challenge-iclr-2021/blob/main/1st-prize__mihaelanistor__Noise-Invariant-Topological-Features/noise_invariant_topological_features.ipynb

Later on, the goal of this issue is to review the literature on Riemannian geometry of Stiefel and Grassmanians and implement in geomstats the structures that are not yet implemented.

Let me know what you think?

SwastiKh commented 2 years ago

Hi @ninamiolane! Thank you for the clarification. I was too thinking about implementing specific examples, mainly positive curvature homogeneous spaces like orthogonal groups or special orthogonal groups. I will look into stiefel and grassman module and work on those, now that I had a concrete starting point. Let me know if I should focus on the initial goal too alongside.

SwastiKh commented 2 years ago

I'm sorry I think I misunderstood. Stiefel and Grassman modules are implemented so is there some improvement required? Or should I work on implementing other practical homogeneous spaces? Could you please mention the names of such practical spaces as I am not sure if Special Orthogonal groups SO(n) are one. Until then I'll look for metrics to import in the winning participants of the ICLR 2021 computational geometry and topology challenge.

ninamiolane commented 2 years ago

Stiefel and Grassman modules are implemented so is there some improvement required? Yes, exactly. The goal is to look through the notebook of the winners of the challenge, and see what is missing in the current geomstats' implementations of the Stiefel and Grassman manifolds, compared to what the winners had proposed.

@nguigs : I think you were saying that not much was missing.

The winners of the challenge define multiple metrics here: https://github.com/geomstats/challenge-iclr-2021/tree/main/1st-prize__mihaelanistor__Noise-Invariant-Topological-Features/metrics/stiefel @nguigs where are the corresponding metrics in the stiefel.py module?

Same question for grassman.

Thank you 🙌

nguigs commented 2 years ago

Page 30 of this paper describes the different distances and how to define them. We need to implement each RiemannianMetric that defines them, in some cases it is just Frobenius of a different representation of the elements of the manifolds