Probayes ProBT©

Category Intelligent Software>Bayesian Network Systems/Tools

Abstract ProBT© is an advanced modeling, inference, and learning platform inheriting 10 years of experience in Bayesian probabilistic computing.

ProBT extends the Bayesian Networks framework by providing a structured programming language allowing developers to increase their applications capabilities and robustness by integrating Bayesian models.

To fit any professional usage, Probayes provides the ProBT-Engine ensuring the 'ProBT platform' full power to programmers and it is made available through an Application Programming Interface (API) library available in C++ and Python.

The API provides all ProBT features allowing the developers to increase their application capabilities by integrating Bayesian models.

ProBT-Engine --

ProBT aims at providing a programming tool that facilitates the creation of Bayesian models and their reusability. This property allows the design of advanced features such as sub-model reuse, learning, and distributed inference.

ProBT-Engine is a set of high-performance algorithm modules developed in the C++ language.

Learning Algorithms --

ProBT-Engine includes two (2) learning modules: Structure Learning and Parameter Learning --

The Structure Learning module allows you to find the dependencies between the variables of the model. That is, it allows you to find the Bayesian network or decomposition according to the provided data. Structure learning is especially useful to construct models on which only poor prior knowledge about variable dependencies is available. In this case, the model construction is data-driven and variable dependencies are discovered from the data.

For a given structure, learning the parameters of all (or some) of the distributions of the model can be achieved using the Parameter Learning module. This module can be used either with complete or incomplete data.

Learning using complete data is adaptive, which allows incremental and on-line fitting of the data. Depending on the used optimal criteria, you can obtain Maximum Likelihood (ML) estimation or a Maximum A Posteriori (MAP) estimation (also known as Bayesian estimation). A set of classes that allow learning the most common statistical distribution is implemented for both ML and MAP criteria.

For incomplete data cases, the ProBT-Engine implements a generic Expectation-Maximization (EM) algorithm. Indeed, learning using incomplete data is the central issue: some variables of the model may be unobserved and or/some values are missing for another set of variables.

The ProBT EM algorithm uses the complete data learning classes (stated above) and ProBT’s inference algorithms (stated below), in order to provide a very flexible tool for 'parameter learning' using incomplete data.

Inference Algorithms --

ProBT-Engine allows inference either in an exact or an approximate way. The Exact Inference module consists of a general-purpose algorithm for optimal marginalization sequence computation. This module allows choices of optimization for computation memory size or computation time.

The Approximate Inference module is intended to deal with those problems where exact inference is intractable. Unfortunately, for complicated real-world applications, satisfying the time/memory constraints is seldom possible when using exact calculation. This is especially the case for probabilistic problems involving a large number of variables and/or dependencies, and/or defined for variables taking values in a huge (or infinite for continuous variables) set of states.

In this case, exact inference becomes intractable and approximation methods must be used. This case is known as the “approximate Bayesian inference” problem.

The approximate inference module provides four (4) schemes (levels) of approximation:

1) Integrals (sums) estimation.

2) A posteriori distributions sampling using MCMC methods to generate a sample set of N points.

3) A posteriori distributions maximization to get the Maximum A Posteriori (MAP) solution.

4) Low-memory cost and efficient numerical representation of distributions by selectively visiting high-probability regions of the target space and computing interpolation for the non-visited regions.

The current version of ProBT-Engine proposes a set of approximations for each level, so that time/memory constraints in an application can be taken into account in a more simplistic manner.

ProBT Library API --

This API is a set of native C++ classes that allows the construction of Bayesian models and their use for learning and inference. The Python API provides bindings for the C++ native classes. This API comprises:

1) A state space module that allows you to specify the possible outcome(s) of a model.

2) A probability distributions module including the most commonly used statistical distributions, joint distribution construction and n- dimensional inequality constraint specification.

3) A Bayesian program(s) module including some of the more common Bayesian models.

4) An experimental data learning module for parameter identification of the commonly used statistical distributions and/or the dependencies between the variables of the model.

5) A serialization module, which is intended for saving or transmitting ProBT objects, for example, into a file, a memory buffer or across a network connection link.

System Requirements

Contact manufacturer.

Manufacturer

Manufacturer Web Site Probayes ProBT

Price Contact manufacturer.

G6G Abstract Number 20215

G6G Manufacturer Number 102177