Infer.NET component architecture
The Infer.NET architecture is entirely based around inference components. There are a large number of built-in components supplied with Infer.NET, but the main advantage of the component architecture is that you can also add your own. Components come in four types:
- Factors (and constraints) - the basic building blocks of models. Built-in factors | Add a custom factor | Add a custom constraint.
- Algorithms - the algorithms used to perform inference. Adding a custom algorithm is not yet supported since the internal API to do this is still changing frequently. Built-in algorithms
- Distributions - the distributions used to express uncertainty in a random variable. Built-in distributions | Add a custom distribution
- Message operators - these are the atomic operations of an algorithm. Typically, you need a message operator for each factor for each algorithm. Add custom message operators
The diagram below shows how these components fit into the Infer.NET architecture.