The good thing about artificial intelligence is that it brings together a variety of domains like statistics, computer vision and deep learning, among others, under one roof and enables the developers to mutually benefit from them. The growing demand for AI-based applications has also raised the bar for the platforms that are used to build them. 

For a vast field like AI, the platforms or programming languages, to be specific, need to be flexible as well as agile. But there are a few challenges one may come across in trying to build such platforms:

  1. Achieving good performance for heterogeneous probabilistic models that combine black box simulators, deep neural networks, and recursion 
  2. Providing users with abstractions that simplify the implementation of inference algorithms while being minimally restrictive

Existing systems lack the flexibility and efficiency needed for practical use with more challenging models arising in fields like computer vision and robotics. 

In a paper presented at the Programming Language Design and Implementation conference, a group of researchers at MIT have demonstrated a novel probabilistic-programming system named “Gen”. 

According to MIT News, the researchers sought to combine the best of all worlds — automation, flexibility, and speed — into one. “If we do that, maybe we can help democratise this much broader collection of modelling and inference algorithms like TensorFlow did for deep learning,” says Vikash K. Mansinghka who is part of the team that developed Gen.

Where Does Gen Fit In

The authors claim that Gen can be used for AI applications such as computer vision, robotics, and statistics — without having to deal with equations or manually write high-performance code.

A short code of Gen can enable the user to infer computer vision tasks like 3D body poses, which are ubiquitous with autonomous systems, human-machine interactions, and augmented reality. 

Not only that but Gen also contains components that perform graphics rendering, deep-learning, and probability simulations as well.

Gen can be used to simplify data analytics by using another Gen program that automatically generates sophisticated statistical models for feature extraction from datasets.

As far as the use cases go, Gen has found its niche in the following departments:

What makes GEN Different?

Unlike deep learning platforms such as TensorFlow, PyTorch, Theano, Gen programs explicitly factorise modelling and inference. 

By automating the process of calculating the proposal densities needed for a broad range of advanced Monte Carlo techniques, Gen has given a platform to combine Julia and TensorFlow code.

The authors claim that Gen has outperformed existing probabilistic programming languages in solving inference problems including 3D body pose estimation from a single depth image; robust regression; inferring the probable destination of a person or robot traversing its environment, and structure learning for real-world time series data. These performance gains are enabled by Gen’s more flexible inference programming capabilities.

Here’s how to install Gen:


First, obtain Julia 1.0 or later, available here.

The Gen package can be installed with the Julia package manager. From the Julia REPL, type ] to enter the Pkg REPL mode and then run:

pkg> add

Know more about Gen here