Deep Generalized Convolutional Sum-Product Networks

Jos van de Wolfshaar, Andrzej Pronobis
2/16/2019
cs.LGcs.CVstat.ML

Official code: pronobis/libspn-keras (48 stars, last commit 2025-09-04). 1 more implementation below.

Abstract

Sum-Product Networks (SPNs) are hierarchical, graphical models that combine benefits of deep learning and probabilistic modeling. SPNs offer unique advantages to applications demanding exact probabilistic inference over high-dimensional, noisy inputs. Yet, compared to convolutional neural nets, they struggle with capturing complex spatial relationships in image data. To alleviate this issue, we introduce Deep Generalized Convolutional Sum-Product Networks (DGC-SPNs), which encode spatial features in a way similar to CNNs, while preserving the validity of the probabilistic SPN model. As opposed to existing SPN-based image representations, DGC-SPNs allow for overlapping convolution patches through a novel parameterization of dilations and strides, resulting in significantly improved feature coverage and feature resolution. DGC-SPNs substantially outperform other SPN architectures across several visual datasets and for both generative and discriminative tasks, including image inpainting and classification. These contributions are reinforced by the first simple, scalable, and GPU-optimized implementation of SPNs, integrated with the widely used Keras/TensorFlow framework. The resulting model is fully probabilistic and versatile, yet efficient and straightforward to apply in practical applications in place of traditional deep nets.

View on arXivView PDF

Code Implementations(2)

Library for learning and inference with Sum-product Networks utilizing TensorFlow 2.x and Keras

489PythonFeb 12, 20201 years agoNOASSERTION

Deep Convolutional Sum-Product Networks

72PythonFeb 14, 20197 years ago

Cite this paper

@article{wolfshaar2019deep,
  title  = {Deep Generalized Convolutional Sum-Product Networks},
  author = {Jos van de Wolfshaar and Andrzej Pronobis},
  year   = {2019},
  eprint = {1902.06155},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/1902.06155}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/1902.06155.svg)](https://codeofpaper.com/paper/1902.06155)

Discussion