Microsoft has released through open source its Infer.Net cross-platform framework for model-based machine learning.
Infer.Net will become part of the ML.Net machine learning framework for .Net developers, with Infer.Net extending ML.Net for statistical modeling and online learning. Several steps toward integration already have been taken, including the setting up of a repo under the .Net Foundation.
- When a user has extensive knowledge about a specific domain and wants to solve a problem in that domain.
- For interpreting system behavior.
- For a production system that must learn as new data arrives.
Dating back to 2004, Infer.Net has evolved from being a research tool to serving as the machine learning engine in some Microsoft products in Office, Azure, and Xbox. With Infer.Net, developers can incorporate domain knowledge into a model. The framework then can build a custom machine learning algorithm directly into that model, so instead of having to map a problem onto an existing learning algorithm, Infer.Net constructs a learning algorithm based on the model a developer provides.
In Infer.Net, models are described via a probabilistic program; real-world processes are described in a language understood by machines. This program is compiled by the framework into high-performance code to implement deterministic approximate, Bayesian inference, an approach that allows for substantial scalability. Microsoft already has used this methodology in a system that automatically extracts knowledge from billions of web pages.
Also, Microsoft supports online Bayesian inference, in which a system learns as new data arrives. The company sees this technique as crucial for business and consumer products that interact with users in real time.
Model-based machine learning offers an advantage in interpretability. Also, model-based learning applies to problems with data traits such as real-time data, heterogeneous data, unlabeled data and data with missing parts, and data collected with known biases.