fglib2.probabilistic_circuits

Module Contents

Classes

SumUnitWrapper

SumUnitFactor

A sum unite (mixture model) that can be used as factor for variables in a factor graph.

class fglib2.probabilistic_circuits.SumUnitWrapper[source]

Bases: probabilistic_model.probabilistic_circuit.DeterministicSumUnit

static from_sum_unit(unit: probabilistic_model.probabilistic_circuit.SmoothSumUnit) probabilistic_model.probabilistic_circuit.DeterministicSumUnit[source]
_conditional(event: random_events.events.EncodedEvent) Tuple[typing_extensions.Self | None, float][source]
class fglib2.probabilistic_circuits.SumUnitFactor(distribution: probabilistic_model.probabilistic_circuit.SmoothSumUnit)[source]

Bases: fglib2.graphs.FactorNode

A sum unite (mixture model) that can be used as factor for variables in a factor graph.

Example use-case:

Imagine you have a set of variables that expand over some template, e.g. time. You learn a mixture for each time step and then use the latent variable interpretation of the mixture model to create a factor graph. The factors for the transition model are multinomial distributions over the latent variables. The factors for the emission model are the joint probability trees.

property variables: List[random_events.variables.Discrete][source]
latent_variable: random_events.variables.Symbolic[source]
marginal(variables: List[random_events.variables.Variable]) fglib2.distributions.Multinomial | typing_extensions.Self[source]
latent_distribution()[source]
sum_product(messages: List[fglib2.distributions.Multinomial]) fglib2.distributions.Multinomial[source]

Apply the sum product algorithm of a factor node.

The product of all incoming messages is calculated and multiplied with the distribution of this factor node.

Parameters:

messages – The incoming messages.

Returns:

The resulting, multivariate distribution.