How mli0118/riemannian-optimization works
This repository contains research experiments for deterministic and stochastic Riemannian bilevel optimization, rather than a general-purpose application. The BCI experiments implement Grassmann, Stiefel, and synthetic hyperbolic variants; the stochastic experiments evaluate three manifolds on UCI Superconductivity data, comparing SR-HJFBiO with hypergradient baselines. The main workflow is to load or generate data, construct manifold-specific features, run an optimizer, save trajectories, and plot or compare results. The README is empty, and sampled excerpts are partial, so links between unsampled experiment internals are omitted where their wiring is unclear.
Main entry points: run_experiment.py Stochastic runs · run_comparison.py Method comparison · feature_maps.py Feature maps · manifolds.py Manifold operations
Components 22
BCI Experiments
- Grassmann BCI
BCI experiment/bci_grassmann.py - Stiefel BCI
BCI experiment/bci_stiefel.py - Synthetic hyperbolic
BCI experiment/bci_hyperbolic.py - Grassmann diagnostics
BCI experiment/run_grassmann_diag.py - Stiefel diagnostics
BCI experiment/run_stiefel_diag.py - Hyperbolic diagnostics
BCI experiment/run_hyperbolic_diag.py
Stochastic Experiments
- Data loading
Stochastic experiment/data.py - Feature maps
Stochastic experiment/feature_maps.py - Manifold operations
Stochastic experiment/manifolds.py - SR-HJFBiO
Stochastic experiment/algorithm.py - Hypergradient baselines
Stochastic experiment/han_baselines.py - Stochastic runs
Stochastic experiment/run_experiment.py - Method comparison
Stochastic experiment/run_comparison.py
Analysis
- Grassmann plots
BCI experiment/plot_grassmann_3panel.py - Stiefel plots
BCI experiment/plot_stiefel_3panel.py - Hyperbolic plots
BCI experiment/plot_hyperbolic_3panel.py - Saved trajectories
- Trajectory plots
Stochastic experiment/plot_results.py - Comparison plots
Stochastic experiment/plot_comparison.py
Other components
- Experiment runner
- Experiment runner
- UCI data source
Connections 31
- Experiment runner → Grassmann BCI: runs study
- Experiment runner → Stiefel BCI: runs study
- Experiment runner → Synthetic hyperbolic: runs study
- Experiment runner → Grassmann diagnostics: runs diagnostics
- Experiment runner → Stiefel diagnostics: runs diagnostics
- Experiment runner → Hyperbolic diagnostics: runs diagnostics
- Grassmann diagnostics → Grassmann BCI: uses experiment
- Stiefel diagnostics → Stiefel BCI: uses experiment
- Hyperbolic diagnostics → Synthetic hyperbolic: uses experiment
- Grassmann BCI → Grassmann plots: produces results
- Stiefel BCI → Stiefel plots: produces results
- Synthetic hyperbolic → Hyperbolic plots: produces results
- Experiment runner → Stochastic runs: starts runs
- Experiment runner → Method comparison: starts comparison
- UCI data source → Data loading: provides dataset
- Stochastic runs → Data loading: loads data
- Method comparison → Data loading: loads data
- Stochastic runs → Feature maps: constructs features
- Stochastic runs → Manifold operations: constructs manifold
- Stochastic runs → SR-HJFBiO: runs optimizer
- SR-HJFBiO → Feature maps: computes features
- SR-HJFBiO → Manifold operations: projects and retracts
- Method comparison → Feature maps: constructs features
- Method comparison → Manifold operations: constructs manifold
- Method comparison → Hypergradient baselines: runs strategies
- Hypergradient baselines → Feature maps: computes features
- Hypergradient baselines → Manifold operations: updates manifold
- Stochastic runs → Saved trajectories: saves runs
- Method comparison → Saved trajectories: saves comparison
- Saved trajectories → Trajectory plots: read trajectories
- Saved trajectories → Comparison plots: read trajectories