SPFlow: An Easy and Extensible Library for Sum-Product Networks
SPFlow, an open-source Python library providing a simple interface to inference, learning and manipulation routines for deep and tractable probabilistic models called Sum-Product Networks (SPNs). The library allows one to quickly create SPNs both from data and through a domain specific language (DSL). It efficiently implements several probabilistic inference routines like computing marginals, conditionals and (approximate) most probable explanations (MPEs) along with sampling as well as utilities for serializing, plotting and structure statistics on an SPN.
Furthermore, SPFlow is extremely extensible and customizable, allowing users to promptly create new inference and learning routines by injecting custom code into a light-weight functional-oriented API framework.
Getting Started
This walks through the steps of getting SPFlow running. Then check out the Tutorials to dive into some examples.
Documentation
This includes API Documentation and some notes on developing with SPFlow.
Example Gallery
A gallery of examples with figures and expected outputs.
Papers SPFlow can reproduce
Nicola Di Mauro, Antonio Vergari, Teresa M.A. Basile, Floriana Esposito. “Fast and Accurate Density Estimation with Extremely Randomized Cutset Networks”. In: ECML/PKDD, 2017. https://doi.org/10.1007/978-3-319-71249-9_13
Nicola Di Mauro, Antonio Vergari, and Teresa M.A. Basile. “Learning Bayesian Random Cutset Forests”. In ISMIS 2015, LNAI 9384, pp. 1-11, Springer, 2015. https://doi.org/10.1007/978-3-319-25252-0_13
Nicola Di Mauro, Antonio Vergari, and Floriana Esposito. “Learning Accurate Cutset Networks by Exploiting Decomposability”. In AI*IA. 2015, LNAI 9336, 1-12, Springer, 2015. https://doi.org/10.1007/978-3-319-24309-2_17
Antonio Vergari, Nicola Di Mauro, and Floriana Esposito. “Simplifying, Regularizing and Strengthening Sum-Product Network Structure Learning”. In ECML/PKDD, LNCS, 343-358, Springer. 2015. https://doi.org/10.1007/978-3-319-23525-7_21
Papers implemented in SPFlow
Molina, Alejandro, Sriraam Natarajan, and Kristian Kersting. “Poisson Sum-Product Networks: A Deep Architecture for Tractable Multivariate Poisson Distributions.” In AAAI, pp. 2357-2363. 2017. https://dl.acm.org/doi/10.5555/3298483.3298579
Molina, Alejandro, Antonio Vergari, Nicola Di Mauro, Sriraam Natarajan, Floriana Esposito, and Kristian Kersting. “Mixed sum-product networks: A deep architecture for hybrid domains.” In Proceedings of the AAAI Conference on Artificial Intelligence (AAAI). 2018. https://www.aaai.org/ocs/index.php/AAAI/AAAI18/paper/viewPaper/16865
Citation
If you find SPFlow useful please cite the SPFlow arXiv paper in work:
@misc{Molina2019SPFlow,
Author = {Alejandro Molina and Antonio Vergari and Karl Stelzner and Robert Peharz and Pranav Subramani and Nicola Di Mauro and Pascal Poupart and Kristian Kersting},
Title = {SPFlow: An Easy and Extensible Library for Deep Probabilistic Learning using Sum-Product Networks},
Year = {2019},
Eprint = {arXiv:1901.03704},
}
Contributors
See also the list of contributors who participated in this project.
Moritz Kulessa - TU Darmstadt
Claas Voelcker - TU Darmstadt
Simon Roesler - Karlsruhe Institute of Technology
Steven Lang - TU Darmstadt
Xiaoting Shao
Pranav Subramani - Wolfram Research
Maximilian Gottschalk
Renato Lui Geh - University of São Paulo
Andy Shih - Stanford University
Alexander L. Hayes - Indiana University, Bloomington
License
This project is licensed under the Apache License, Version 2.0 - see the LICENSE file for details
Acknowledgments
Parts of SPFlow as well as its motivating research have been supported by the Germany Science Foundation (DFG) - AIPHES, GRK 1994, and CAML, KE 1686/3-1 as part of SPP 1999- and the Federal Ministry of Education and Research (BMBF) - InDaS, 01IS17063B.
This project received funding from the European Union’s Horizon 2020 research and innovation programme under the Marie Sklodowska-Curie Grant Agreement No. 797223 (HYBSPN).