Skip to content

[Epic]: Add Gate Node (Gaussian Inputs + Categorical Switch) to RxInfer #583

@mhidalgoaraya

Description

@mhidalgoaraya

Epic Summary

This EPIC introduces a fully supported Gate node into the RxInfer inference suite. The Gate node enables context-dependent mixture selection, where a Categorical switch variable selects one of several Gaussian input components.
A prototype implementation already exists in Ismail’s experimental notebook, and it appears to follow the gating mechanism in the NIPS 2008 paper by Minka.
The EPIC formalizes the work required to turn this prototype into a stable, documented component of RxInfer.

Motivation / Problem Statement

Inference in Gaussian mixture models is currently limited by the standard mean-field factorization used in RxInfer. Under this factorization, mixture selection and mixture component updates are forced to decouple, which can lead to biased or unstable inference for both switch variables and continuous parameters.
Many important models—such as switching linear dynamical systems, mixture-of-experts, and context-specific transitions—require structured dependencies between a Categorical selector and multiple Gaussian components.

Epic Goals

Goals
1. Verify mathematical correctness
Compare the Gate implementation in the prototype notebook with the derivations in the 2008 “Gates” paper. Confirm one-to-one correspondence, identify discrepancies, and adjust message-update rules if needed.
2. Implement Gate node in ReactiveMP
Integrate a clean, production-ready version of the Gate node into ReactiveMP, using consistent rule definitions, interfaces, factorization patterns, and exponential-family conventions.
3. Add comprehensive tests
Create unit tests, integration tests, and numerical-consistency tests that validate:
• correct message updates
• stability
• switching behavior in simple models
4. Publish an official tutorial
Produce a user-facing tutorial demonstrating:
• how the Gate node works
• example models using it (e.g., switching LDS / mixture-of-dynamics)

Features

Feature 1: Mathematical Validation

  • Provides a formal verification that the Gate node design matches the derivations in the 2008 “Gates” paper and the prototype notebook implementation.

Feature 2: Integration into ReactiveMP

  • Delivers a clean, stable, production-ready Gate node implementation inside the ReactiveMP.

Feature 3: Testing

  • Introduces a complete test suite to validate numerical correctness, stability, and switching behavior for the Gate node.

Feature 4: Tutorial

  • Provides a user-facing tutorial demonstrating how to model and perform inference with the Gate node in RxInfer.

Dependencies

No response

Estimated Timeline

No response

Related Issues / PRs

No response

Additional Context

No response

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

Projects

Status

📝 In progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions