ProbLog2: Probabilistic Logic Programming

We present ProbLog2, the state of the art implementation of the probabilistic programming language ProbLog. The ProbLog language allows the user to intuitively build programs that do not only encode complex interactions between a large sets of heterogenou

  • PDF / 618,394 Bytes
  • 4 Pages / 439.37 x 666.142 pts Page_size
  • 100 Downloads / 241 Views

DOWNLOAD

REPORT


Abstract. We present ProbLog2, the state of the art implementation of the probabilistic programming language ProbLog. The ProbLog language allows the user to intuitively build programs that do not only encode complex interactions between a large sets of heterogenous components but also the inherent uncertainties that are present in real-life situations. The system provides efficient algorithms for querying such models as well as for learning their parameters from data. It is available as an online tool on the web and for download. The offline version offers both command line access to inference and learning and a Python library for building statistical relational learning applications from the system’s components.

Keywords: Probabilistic programming Parameter learning

1

·

Probabilistic inference

·

Introduction

Probabilistic programming is an emerging subfield of artificial intelligence that extends traditional programming languages with primitives to support probabilistic inference and learning. Probabilistic programming is closely related to statistical relational learning (SRL) but focusses on a programming language perspective rather than on a graphical model one. The common goal is to provide powerful tools for modeling of and reasoning about structured, uncertain domains that naturally arise in applications such as natural language processing, bioinformatics, and activity recognition. This demo presents the ProbLog2 system, the state of the art implementation of the probabilistic logic programming language ProbLog [2–4]. Probabilistic logic programming languages and systems such as ProbLog2, PRISM and CPLint, cf. [1] for an overview, combine ideas from both SRL and probabilistic programming. They are thus related both to SRL systems such as Alchemy and Primula, and to probabilistic programming languages rooted in other programming paradigms, such as Church, Venture, Infer.net, and Figaro. ProbLog2 supports marginal inference, i.e., computing the conditional probabilities of queries given evidence, parameter learning from data in the form c Springer International Publishing Switzerland 2015  A. Bifet et al. (Eds.): ECML PKDD 2015, Part III, LNAI 9286, pp. 312–315, 2015. DOI: 10.1007/978-3-319-23461-8 37

ProbLog2: Probabilistic Logic Programming

313

of (partial) interpretations, sampling of possible worlds, and interaction with Python. ProbLog2 is available on https://dtai.cs.kuleuven.be/problog.

2

Language

ProbLog is a probabilistic programming language that extends Prolog along the lines of Sato’s distribution semantics. Its development focusses especially on machine learning techniques and implementation aspects. From a modeling perspective, a ProbLog program has two parts: (1) a probabilistic part that defines a probability distribution over truth values of a subset of the program’s atoms, and (2) a logical part that derives truth values of remaining atoms using a reasoning mechanism similar to Prolog. While the latter part simply contains Prolog clauses, the former is specified by probabilistic facts