biaslab / ForneyLab.jl

Julia package for automatically generating Bayesian inference algorithms through message passing on Forney-style factor graphs.
MIT License
149 stars 33 forks source link

Deterministic to non-deterministic #202

Closed erlebach closed 2 years ago

erlebach commented 2 years ago

Hi,

ForneyLab cannot handle loops that contain a deterministic node. I was wondering whether there is an approach that allows the replacement of a deterministic node by a non-deterministic node? For example, AND(x,y) = x * y, where y is Bernouilli, is clearly deterministic. Is there are non-deterministic version of an AND node? Thanks. Gordon.

ThijsvdLaar commented 2 years ago

This would require the definition of a stochastic node function. In general, deterministic nodes can be made stochastic by composition with a stochastic neighbor. This is also referred to as "softening" the node function. An example for the Gaussian node can be found in Korl (2005), "A factor graph approach to signal modelling, system identification and filtering", Chapter 5. With the softened node function, variational messages can be derived following Dauwels (2007), "On variational message passing on factor graphs".

erlebach commented 2 years ago

Thanks for the tip!