At the Programming Language Design and Implementation conference this week, a team of MIT researchers presented an AI programming language called ‘Gen’, a general-purpose probabilistic programming system that lets users write algorithms with ease.
Probabilistic models are very useful and a number of the tasks in statistics or machine learning can be mapped with it. Probabilistic programming is a tool for statistical modeling in which probabilistic models are specified and inference for these models is performed automatically.
According to Gen creators, Gen is a specially designed language to work with AI, it addresses the problem of building a practical, general-purpose probabilistic programming system that achieves modeling expressiveness and inference efficiency along with fast and accurate inference results in diverse problem.
Gen aims to combine automation, flexibility, and speed, the language meant to offer users from a variety of fields a way of writing high-performing models and algorithms without having to deal with equations or manually write high-performance code.
“Gen is the first system that’s flexible, automated, and efficient enough to cover those very different types of examples in computer vision and data science and give a state-of-the-art performance,” says Vikash K. Mansinghka, a researcher in the Department of Brain and Cognitive Sciences who runs the Probabilistic Computing Project.
In this presentation, the paper’s co-authors demonstrate Gen’s ability to simplify data analytics by using another Gen program that automatically generates sophisticated statistical models typically used by experts to analyze, interpret, and predict underlying patterns in data.
Researcher shows that a short Gen program can infer 3-D body poses a difficult computer-vision inference task that has applications in autonomous systems, human-machine interactions, and augmented reality.
“Gen allows a problem-solver to use probabilistic programming, and thus have a more principled approach to the problem but not be limited by the choices made by the designers of the probabilistic programming system,” said Google research director Peter Norvig,
Gen includes components that perform graphics rendering, deep learning, and probability simulation behind the scenes in tandem that ultimately helps to improve task accuracy and speed through several orders of magnitude compared with previous leading systems.
To help with the modeling part, Gen system contains a number of embedded modeling languages which allow the user to write the high-level inference programs in the host language.
In Gen, the creator of it used Julia as a host language, the embedded modeling languages mentioned for Gen are realized as Julia embeddings. Julia is a general-purpose programming language also developed at MIT.
Gen contains a Turing complete dynamic modeling language, a static modeling language for static analysis, and a TensorFlow modeling language to create the generative functions that define generative models.
Gen also facilitates the users to combine generative models written in Julia with systems written in Google’s TensorFlow machine learning framework and custom algorithms based on numerical optimization techniques.
Other novel constructs included in it are generative function interface for encapsulating probabilistic models, combinators that exploit common patterns of conditional independence, and an inference library that empowers users to implement efficient inference algorithms at a high level of abstraction.
Gen has already seen some pickup, according to the coauthors. Intel is collaborating with MIT to use Gen for 3D pose estimation from the latter’s depth-sense cameras, and MIT’s Lincoln Laboratory is developing applications in aerial robotics for humanitarian relief and disaster response.
Elsewhere, Gen is becoming increasingly central to an MIT-IBM Watson AI Lab project and the DoD’s Defense Advanced Research Projects Agency’s (DARPA) ongoing Machine Common Sense initiative, which seeks to model human common sense at the level of an 18-month-old child.
Gen’s source code is publicly available and will be presented at a number of upcoming developer conferences, including Strange Loop in St. Louis this September and JuliaCon in Baltimore next month. The work is supported, in part, by DARPA.