ForneyLab.jl icon indicating copy to clipboard operation
ForneyLab.jl copied to clipboard

Computing marginals from update rules directly

Open ThijsvdLaar opened this issue 5 years ago • 0 comments

In some situations, algorithms can be efficiently implemented by recursive updates that directly set marginals instead of sending messages. One example is nonlinear estimation with the unscented Kalman filter, where marginals are efficiently computed by recursive estimation: "On approximate nonlinear Gaussian message passing for factor graphs" (Petersen, 2018). (Note that all computations remain local to the node).

ForneyLab requires that update always explicitly compute messages. Currently, this is implemented by dividing the marginal by the incoming message, thus yielding an outbound message. (The multiplication of the incoming and outbound message yields the marginal.) In some situations however, this division can be costly and/or lead to improper outbound messages.

It would be beneficial for efficiency and stability to incorporate some mechanism that can cope with computing marginals directly from a node update rule. Alternative ideas are also welcome.

ThijsvdLaar avatar Aug 19 '19 08:08 ThijsvdLaar