Countless online courses promise to inculcate budding programmers in the ways of AI, but a team of MIT researchers hopes to flatten the learning curve further. In a paper (“Gen: A General-Purpose Probabilistic Programming System with Programmable Inference“) presented this week at the Programming Language Design and Implementation Conference, they propose Gen, a novel probabilistic programming system that lets users write algorithms without having to contend with equations or high-performance code.
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.
“One motivation of this work is to make automated AI more accessible to people with less expertise in computer science or math,” said Marco Cusumano-Towner, first author and PhD candidate in MIT’s department of electrical engineering and computer science. “We also want to increase productivity, which means making it easier for experts to iterate and prototype their AI systems [rapidly].”
To this end, the paper’s coauthors demonstrate that a short Gen program written in Julia, a general-purpose programming language also developed at MIT, can perform computer vision tasks like inferring 3D body poses, while another Gen program can generate sophisticated statistical models typically used to interpret and predict data patterns. The team says Gen is also well-suited to the fields of robotics and statistics.
Gen includes components that perform graphics rendering, deep learning, and probability simulation behind the scenes in tandem, improving task accuracy and speed by “several orders of magnitude” compared with previous leading systems. It additionally provides a high-level and highly efficient infrastructure for inference tasks, including (but not limited to) variational inference and deep learning, and it enables 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.
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] 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, who wasn’t involved in the research, in a statement. “General-purpose programming languages … have been successful because they … make the task easier for a programmer, but also make it possible for a programmer to create something brand new to efficiently solve a new problem. Gen does the same for probabilistic programming.”