Skip to content

Latest commit

 

History

53 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Structured Learning of Consistent Connection Graphs

arXiv License


Tip

Cellular sheaves are becoming increasingly influential in signal processing and machine learning thanks to their ability to encode local-to-global relationships over networks. However, this expressive power comes with substantial design and learning challenges: specifying a sheaf that satisfies structural desiderata—or inferring it directly from data—can quickly become complex. Building on classical ideas from graph signal processing and focusing on vector bundles, i.e., sheaves whose fibers lie on the orthogonal manifold, we introduce a learning framework that jointly infers both the graph topology and the sheaf geometry: the latter is represented by orthogonal transformations along edges. We assume these edge transformations admit a factorization through local bases at each node, yielding what is known as a flat bundle or consistent connection Laplacian. This structural assumption leads to several advantages: it tightly couples the sheaf Laplacian with the underlying graph spectrum, reduces the number of parameters, and provides a controllable and interpretable model for sheaf learning.

Dependencies

Using conda package manager

It is highly recommended to create a Conda environment before installing dependencies.
In a terminal, navigate to the root folder and run:

conda env create -f environment.yml

Activate the environment:

conda activate SCGL

You're ready to go! 🚀

Simulations

This section provides the necessary commands to run the simulations required for the experiments. The commands execute different training scripts with specific configurations.

Inference of random graphs

python scripts/random_graphs.py -m dimensions.seed='range(0, 840, 42)' dimensions.ratio=1.5,5,15 solvers.SCGL.alpha=0.0025 solvers.SCGL.beta=30 graph=ER,RBF,SBM solver=SCGL,SPD,SLGP
python scripts/random_graphs_readout.py 

Inference from noisy signals

python scripts/noisy_inference.py -m signals.seed='range(0,420,42)' signals.SNR=0,10,20,30
python scripts/noisy_inference_readout.py 

Citation

If you find this code useful for your research, please consider citing the following paper:

@inproceedings{di2026learning,
  title={Learning the structure of connection graphs},
  author={Di Nino, Leonardo and D’Acunto, Gabriele and Barbarossa, Sergio and Di Lorenzo, Paolo},
  booktitle={ICASSP 2026-2026 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)},
  pages={76--80},
  year={2026},
  organization={IEEE}
}

Used Technologies

Python NumPy PyManOpt w&b Hydra

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages