Skip to content

About

The Delta node for message passing: a deterministic function of its inputs, under linearisation, the unscented transform or CVI projection

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

29 Commits

Folders and files

Repository files navigation

DeltaMessagePassingRules

CI Docs: stable Docs: dev Coverage Code style: Runic

The Delta node, out = f(in₁, …, inₙ) for any deterministic function f, and its message passing rules, for the ReactiveMP engine. The rules approximate the pushforward through f by a method the model names in DeltaApproximation:

  • Unscented() and Linearization(), from MessagePassingRulesApproximations, for normal messages;
  • CVIProjection(), sampling and projection onto an exponential family, for other families; its rules are a package extension, loaded with using ExponentialFamilyProjection.

A known inverse of f, when given, sends the messages towards the inputs through it.

using DeltaMessagePassingRules, MessagePassingRulesBase, MessagePassingRulesApproximations, ExponentialFamily

algorithm = DeltaApproximation(method = Linearization(), inverse = y -> (y - 1) / 2)
result = @call_message_update_rule(
    node = DeltaFn, target = (:in, 1), algorithm = algorithm,
    m = (out = NormalMeanVariance(3.0, 2.0), in = (nothing,)),
)
getresult(result)   # NormalMeanVariance(μ = 1.0, v = 0.5)
import Pkg; Pkg.add("DeltaMessagePassingRules")
  • Documentation: https://reactivebayes.github.io/DeltaMessagePassingRules.jl/stable/. make docs builds it locally, into docs/build.
  • Tests: make test runs the suite as CI does, ending with the rule-coverage gate: every rule must be selected by some test. make test test_args="name:rules" selects items by tag, by name or by file; make help lists the other targets.
  • Julia 1.10 or later. MIT licence.

About

The Delta node for message passing: a deterministic function of its inputs, under linearisation, the unscented transform or CVI projection

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages