Oh no, you're thinking, yet another cookie pop-up. Well, sorry, it's the law. We measure how many people read us, and ensure you see relevant ads, by storing cookies on your device. If you're cool with that, hit “Accept all Cookies”. For more info and to customize your settings, hit “Customize Settings”.

Review and manage your consent

Here's an overview of our use of cookies, similar technologies and how to manage them. You can also change your choices at any time, by hitting the “Your Consent Options” link on the site's footer.

Manage Cookie Preferences
  • These cookies are strictly necessary so that you can navigate the site as normal and use all features. Without these cookies we cannot provide you with the service that you expect.

  • These cookies are used to make advertising messages more relevant to you. They perform functions like preventing the same ad from continuously reappearing, ensuring that ads are properly displayed for advertisers, and in some cases selecting advertisements that are based on your interests.

  • These cookies collect information in aggregate form to help us understand how our websites are being used. They allow us to count visits and traffic sources so that we can measure and improve the performance of our sites. If people say no to these cookies, we do not know how many people have visited and we cannot monitor performance.

See also our Cookie policy and Privacy policy.

This article is more than 1 year old

Microsoft open-sources Infer.NET AI code just in time for the weekend

Skip that Friday beer: the academic research tool is now open to one and all

The sharing of Microsoft’s toys continued today with the open-sourcing of its model-based machine-learning framework, Infer.NET.

A team at Microsoft’s research centre in Cambridge, UK, kicked off development of the framework in 2004, and it was released for academic use in 2008. In Microsoft’s brave new world of AI, the technology has found itself evolving into a machine-learning engine and creeping into Office and Azure as well as gaming applications on Xbox.

Infer.NET, which is on GitHub right now, takes a model-based approach to machine learning. The developer gives the framework a model, and the framework then develops a machine-learning algorithm directly from the model provided.

You’d be forgiven for thinking it all sounds a bit back-to-front – many learning models require the programmer maps their model to a pre-existing learning algorithm, however, the Infer.NET engineers insist that their framework’s approach has the added advantage of interpretability. It should be possible for the user to work out why the system has behaved in a certain way having given it a model. As AI software become ever more prevalent, explaining its behavior becomes ever more important.

Test drive

Since the code is on GitHub (under the MIT license for free use in commercial applications) we obviously fired up Visual Studio and took the framework for a spin. Pulling the packages down via nuget proved problematic, however, simply cloning the source from GitHub and loading up the solution was enough to get the framework running. Eschewing the C# samples, we dived into the F# examples because hey, that’s the way we roll.

The thing is cross platform and supports .NET Framework 4.6.1, .NET Core 2.0, and Mono 5.0. Windows users get to use Visual Studio 2017, while macOS and Linux folks have command-line options – which could be massaged into the code wrangler of your choice.

Models for Infer.NET are setup using a probabilistic program. The framework compiles this into what the team itself describes as something “cryptically called deterministic approximate Bayesian inference.” This is highly scalable, with Microsoft using it in a system that slurps knowledge from billions of web pages.

Sounding a little bit like the introduction to an old episode of the A-Team, the system can be summarized as: if you have a problem, and you can describe the model, and want to know why it just did that weird thing, or need it to learn when new data rolls in, then if you can download it, maybe you can use Infer.NET. ®

 

Similar topics

TIP US OFF

Send us news


Other stories you might like