Strange Loop

Running Programs In Reverse for Deeper A.I.

Since their inception we have used computers to simulate natural phenomena: we simulate light to create photo-realistic animations, molecules to discover new drugs, fluid dynamics to engineer better vehicles, and even human behaviour to predict the economy. In this talk I show that inverse simulation, i.e., running programs in reverse from output to input, lies at the heart of the hardest problems in both human cognition and artificial intelligence. How humans are able to reconstruct the rich 3D structure of the world from 2D images; how we predict that it is safe to cross a street just by watching others walk, and even how we play, and sometimes win at Jenga, are all solvable by running programs backwards.

The idea of program inversion is old, but I will present one of the first approaches to take it literally. Our tool ReverseFlow combines deep-learning and our theory of parametric inversion to compile the source code of a program (e.g., a TensorFlow graph) into its inverse, even when it is not conventionally invertible. This framework offers a unified and practical approach to both understand and solve the aforementioned problems in vision, planning and inference for both humans and machines.

Zenna Tavares

Zenna Tavares


Zenna is a Ph.D candidate at MIT, interested in both human and Artificial Intelligence. He spends his days thinking about how to build computer programs that think as humans think.