Skip to main content

A deep unrolled architecture to recover conditional independence graphs. A better alternative to BCD and other graphical lasso solvers.

Project description

uGLAD

Sparse graph recovery by optimizing deep unrolled networks. This work proposes uGLAD (Sparse graph recovery by optimizing deep unrolled networks. arxiv) which is a unsupervised version of a previous GLAD model (GLAD: Learning Sparse Graph Recovery (ICLR 2020 - link).

Talk

https://www.youtube.com/watch?v=Mx9VSQJACsA

Key benefits & features:

  • Solution to Graphical Lasso: A better alternative to solve the Graphical Lasso problem as
    • The neural networks of the uGLAD enable adaptive choices of the hyperparameters which leads to better performance than the existing algorithms
    • No need to pre-specify the sparsity related regularization hyperparameters
    • Requires less number of iterations to converge due to neural network based acceleration of the unrolled optimization algorithm (Alternating Minimization)
    • GPU based acceleration can be leveraged
    • Novel consensus strategy which robustly handles missing values by leveraging the multi-task learning ability of the model
    • Multi-task learning mode that solves the graphical lasso objective to recover multiple graphs with a single uGLAD model
  • Glasso loss function: The loss is the logdet objective of the graphical lasso 1/M(-1*log|theta|+ <S, theta>), where M=num_samples, S=input covariance matrix, theta=predicted precision matrix.
  • Ease of usability: Matches the I/O signature of sklearn GraphicalLassoCV, so easy to plug-in to the existing code.

uGLAD architecture: Unrolled deep model

Setup

Users

pip install uglad

Developers

The setup.sh file contains the complete procedure of creating a conda environment to run uGLAD model.

bash setup.sh

demo-uGLAD notebook

A minimalist working example of uGLAD is given in examples/demo-uGLAD.ipynb notebook. It is a good entry point to understand the code structure as well as the uGLAD model.

Citation

If you find this method useful, kindly cite the following 2 associated papers:

  • uGLAD: Sparse graph recovery by optimizing deep unrolled networks. arxiv
    @inproceedings{
    shrivastava2022a,
    title={A deep learning approach to recover conditional independence graphs},
    author={Harsh Shrivastava and Urszula Chajewska and Robin Abraham and Xinshi Chen},
    booktitle={NeurIPS 2022 Workshop: New Frontiers in Graph Learning},
    year={2022},
    url={https://openreview.net/forum?id=kEwzoI3Am4c}
    }

  • GLAD:
    @article{shrivastava2019glad,
    title={GLAD: Learning sparse graph recovery},
    author={Shrivastava, Harsh and Chen, Xinshi and Chen, Binghong and Lan, Guanghui and Aluru, Srinvas and Liu, Han and Song, Le},
    journal={arXiv preprint arXiv:1906.00271},
    year={2019}
    }

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uglad-2.0.0.tar.gz (317.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uglad-2.0.0-py3-none-any.whl (31.5 kB view details)

Uploaded Python 3

File details

Details for the file uglad-2.0.0.tar.gz.

File metadata

  • Download URL: uglad-2.0.0.tar.gz
  • Upload date:
  • Size: 317.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for uglad-2.0.0.tar.gz
Algorithm Hash digest
SHA256 f075020716b48b2750222c4419b2d00915aec7a68eda200fd6cc71a1f2bbb9c5
MD5 092c30c1588ddabfac626f691cd4e2b7
BLAKE2b-256 9f900e1ba2d7889fca8b5f224b9b520b5859db8bb259fafb2719f1785d7a47e7

See more details on using hashes here.

File details

Details for the file uglad-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: uglad-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 31.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for uglad-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 75f75fd9c1497d79393c2cdd6234d9bb306678d5583cbcb061dc922570c71272
MD5 53f376361c2c63245220926e9261631f
BLAKE2b-256 4439a09bb5882597436e70ac6dd521af66216d8f2afe050a369ecee3a26571ce

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page