Continuous Constrained Optimization for Learning DAGs
This repository contains an implementation of the structure learning methods described in "On the Convergence of Continuous Constrained Optimization for Structure Learning".
If you find it useful, please consider citing:
@inproceedings{Ng2022convergence,
author = {Ng, Ignavier and Lachapelle, Sébastien and Ke, Nan Rosemary and Lacoste-Julien, Simon and Zhang, Kun},
title = {On the Convergence of Continuous Constrained Optimization for Structure Learning},
booktitle = {International Conference on Artificial Intelligence and Statistics},
year = {2022},
}
Requirements
- Python 3.6+
numpy
scipy
python-igraph
torch
Running NOTEARS(-MLP) with QPM and ALM
- To use quadratic penalty method, set
opt_type
toqpm
. - To use augmented Lagrangian method, set
opt_type
toalm
. - See examples/linear.ipynb and examples/nonlinear.ipynb for a demo in the linear and nonlinear cases, respectively.
Acknowledgments
- Most of the code is obtained and modified from the implementation of NOTEARS, and we are grateful to the authors of NOTEARS for releasing their code.