About the Course
Despite the recent successes of deep neural networks in fields such as image recognition, machine translation, or gameplay, big challenges remain in applying deep learning techniques to applications that require symbolic reasoning: theorem proving, compiler optimization, software verification and synthesis, and solving NP-complete problems. This seminar aims to make progress in this exciting and timely field.
The course will be research oriented and hands-on: we will read and discuss original papers from the forefront of AI research (many from 2018), and participants will propose and complete a course project.
Organization
Like any good ML approach, the course is roughly split into two halves, training and inference, and students will also get a chance to act as startup founders and venture capitalists.
After a few introductory lectures, the course will proceed as follows:
The first half ("training") focuses on catching up with the state of the art: in every meeting, one student will present a paper, which will be discussed by the class. Two other students will serve as facilitators and guide the discussion. By the end of each week, every student will submit a 4-sentence summary of each of the papers discussed during that week.
The second half ("inference") focuses on original research: by the end of week 5, each student will submit a project proposal (1 page), which they will pitch to the class, and perhaps adjusted based on feedback, implement during the rest of the term. Deliverables include progress updates, a final presentation, a working implementation and reproducible experiments, and a final report (4 pages).
To make matters interesting, projects will incude a peer-evaluation component. Each student receives a fund of 30 million fictitious dollars, which they "invest" in other students' project proposals. There are three investment rounds, series A, B, and C: at the time of the proposal, mid-project, and after the final hand-in. Each student's grade will depend to a small degree on (a) how well their "portfolio" of other project investments did in the final IPO (where the post-IPO "market value" is determined by the project grades assigned by the instructor); and (b) how much funding (i.e., confidence) their own project attracts from other students.
Learning Goals
The goal of the class is to kick off a set of research projects on the boundary of deep learning and symbolic reasoning. For students that do well in class, the expected outcome is to set the student on a successful research trajectory in this area. Ideally, the class project will lay the foundation for a future conference submission.
Besides the technical material the course will be a great training ground for presenting, writing, reviewing, and other important research skills. For example, paper summaries can be a blueprint for future related work sections, and reviewing peer proposals and judging their chances for success are important skills for any academic.
Policies
Grading
- 60% Project
- 30% paper presentations, summaries, and participation in class
- 10% peer evaluation
Course Policies
Prerequisites
- Students are expected to have a background in either deep learning or symbolic reasoning.
- Since the set of researchers fluent in both domains is tiny, everybody is expected to fill the respective gaps in their knowledge through significant background reading during the semester.
Schedule
Date | Topic | Notes |
---|---|---|
M 08/20 (W1) | Introduction & logistics (Prof. Tiark Rompf) | |
W 08/22 | Theorem proving, basics of reinforcement learning (Prof. Tiark Rompf) | |
F 08/24 | Automatic reasoning and SMT (guest lecture: Prof. Roopsha Samanta) | |
M 08/27 (W2) | Interactive theorem proving (guest lecture: Prof. Ben Delaware) | |
W 08/29 | Deep Learning (guest lecture: Prof. Bruno Ribeiro) | |
F 08/31 | Deep Learning on graphs (guest lecture: Prof. Jennifer Neville) | |
M 09/03 (W3) | No class (Labour Day) | Facilitators |
W 09/05 | Using Recurrent Neural Networks for Decompilation by James Decker |
Guannan Wei Xilun Wu |
F 09/07 | Mastering the game of Go with deep neural networks and tree search Mastering the game of Go without human knowledge by Fei Wang |
|
M 09/10 (W4) | OpenAI Five by Fei Wang |
|
W 09/12 | Neural Random-Access Machines by Daniel Zheng |
Raphael Arkady Meyer Xilun Wu |
F 09/14 | Hybrid computing using a neural network with dynamic external memory by Xilun Wu |
Daniel Zheng James Decker |
M 09/17 (W5) | Fast Numerical Program Analysis with Reinforcement Learning by Guannan Wei |
Daniel Zheng Susheel Suresh |
W 09/19 | Neural Arithmetic Logic Units by Raphael Arkady Meyer |
Siyu Jiang Guannan Wei |
F 09/21 | Learning To Represent Programs With Graphs by Susheel Suresh |
Shih-Feng Yang Siyu Jiang |
M 09/24 (W6) | Towards Mixed Optimization for Reinforcement Learning with Program Synthesis by Siyu Jiang |
Raphael Arkady Meyer Shih-Feng Yang |
W 09/26 | DeepCoder: Learning to Write Programs by Pradeep Kumar Srinivasan |
Pradeep Periasamy Melanie Lotz |
F 09/28 | Neural sketch learning for conditional program generation by Melanie Lotz |
Zhanfu Yang Pradeep Kumar Srinivasan |
M 10/01 (W7) | proposal pitching | |
W 10/03 | proposal pitching | |
F 10/05 | proposal pitching | |
M 10/08 (W8) | No class (October Break) | |
W 10/10 | proposal pitching | |
F 10/12 | proposal pitiching | |
M 10/15 (W9) | proposal pitching | |
W 10/17 | Tree-to-tree Neural Networks for Program Translation by Shih-Feng Yang |
Susheel Suresh James Decker |
F 10/19 | GamePad: A Learning Environment for Theorem Proving by Zhanfu Yang |
Pradeep Periasamy Pradeep Kumar Srinivasan |
M 10/22 (W10) | pix2code: Generating Code from a Graphical User Interface Screenshot by Pradeep Periasamy |
Melanie Lotz Zhanfu Yang |
W 10/24 | ||
F 10/26 | ||
M 10/29 (W11) | ||
W 10/31 | ||
F 11/02 | ||
M 11/05 (W12) | ||
W 11/07 | ||
F 11/09 | ||
M 11/12 (W13) | ||
W 11/14 | ||
F 11/16 | ||
M 11/19 (W14) | ||
W 11/21 | No class (Thanksgiving break) | |
F 11/23 | No class | |
M 11/26 (W15) | ||
W 11/28 | ||
F 11/30 | ||
M 12/03 (W16) | ||
W 12/05 | ||
F 12/07 | ||
M 12/10 (W17) | No class | |
W 12/12 | No class | |
F 12/14 | No class, final project reports due |
Topics/Reading
Below is a tentative and non-exhaustive list of papers that will be presented and discussed in class.
-
Neural Guided Constraint Logic Programming for Program Synthesis
Lisa Zhang, Gregory Rosenblatt, Ethan Fetaya, Renjie Liao, William E. Byrd, Matthew Might, Raquel Urtasun, Richard Zemel. NIPS 2018 -
Learning to solve SMT formulas
Mislav Balunovic, Pavol Bielik, Martin Vechev. NIPS 2018 -
Learning to Solve NP-Complete Problems - A Graph Neural Network for the Decision TSP
Marcelo O. R. Prates, Pedro H. C. Avelar, Henrique Lemos, Luis Lamb, Moshe Vardi, 2018 -
Neural Arithmetic Logic Units
Andrew Trask, Felix Hill, Scott Reed, Jack Rae, Chris Dyer, Phil Blunsom. 2018 -
Learning Explanatory Rules from Noisy Data
Richard Evans, Edward Grefenstette. JAIR 2018 -
Towards Neural Theorem Proving at Scale
Pasquale Minervini, Matko Bosnjak, Tim Rocktäschel, Sebastian Riedel. NAMPI 2018 -
Synthetic Datasets for Neural Program Synthesis
Richard Shin, Neel Kant, Kavi Gupta, Christopher Bender, Brandon Trabucco, Rishabh Singh, Dawn Song. NAMPI 2018 -
Leveraging Grammar and Reinforcement Learning for Neural Program Synthesis
, (blog)
Rudy Bunel, Matthew Hausknecht, Jacob Devlin, Rishabh Singh, Pushmeet Kohli ICLR 2018 -
Towards Mixed Optimization for Reinforcement Learning with Program Synthesis
Surya Bhupatiraju, Kumar Krishna Agrawal, Rishabh Singh ICML 2018 -
Programmatically Interpretable Reinforcement Learning
Abhinav Verma, Vijayaraghavan Murali, Rishabh Singh, Pushmeet Kohli, Swarat Chaudhuri. ICML 2018 -
GamePad: A Learning Environment for Theorem Proving
Daniel Huang, Prafulla Dhariwal, Dawn Song, Ilya Sutskever. 2018 -
OpenAI Five
OpenAI 2018 -
Meta-Gradient Reinforcement Learning
Zhongwen Xu, Hado van Hasselt, David Silver. 2018 -
Learning to search with MCTSnets
Arthur Guez, Théophane Weber, Ioannis Antonoglou, Karen Simonyan, Oriol Vinyals, Daan Wierstra, Rémi Munos, David Silver. 2018 -
Training Neural Machines with Partial Traces
Matthew Mirman, Dimitar Dimitrov, Pavle Djordjevich, Timon Gehr, Martin Vechev. 2018 -
Neural Sketch Learning for Conditional Program Generation
Vijayaraghavan Murali, Letao Qi, Swarat Chaudhuri, Chris Jermaine. 2018 -
The Three Pillars of Machine Programming
Justin Gottschlich, Armando Solar-Lezama, Nesime Tatbul, Michael Carbin, Martin Rinard, Regina Barzilay, Saman Amarasinghe, Joshua B Tenenbaum, Tim Mattson. 2018 -
Learning Heuristics for Automated Reasoning through Deep Reinforcement Learning
Gil Lederman, Markus N. Rabe, Sanjit A. Seshia. 2018 -
From Gameplay to Symbolic Reasoning: Learning SAT Solver Heuristics in the Style of Alpha(Go) Zero
Fei Wang, Tiark Rompf. 2018 -
Learning a SAT Solver from Single-Bit Supervision
Daniel Selsam, Matthew Lamm, Benedikt Bunz, Percy Liang, Leonardo de Moura, David L. Dill. 2018 -
Fast Numerical Program Analysis with Reinforcement Learning
CAV 2018 -
Memory Augmented Policy Optimization for Program Synthesis with Generalization
Chen Liang, Mohammad Norouzi, Jonathan Berant, Quoc Le, Ni Lao. 2018 -
Reinforcement Learning of Theorem Proving
Cezary Kaliszyk, Josef Urban, Henryk Michalewski, Mirek Olšák. 2018 -
Evolving simple programs for playing Atari games
Dennis G Wilson, Sylvain Cussat-Blanc, Hervé Luga, Julian F Miller. 2018 -
Synthesizing Programs for Images using Reinforced Adversarial Learning
Yaroslav Ganin, Tejas Kulkarni, Igor Babuschkin, SM Eslami, Oriol Vinyals. 2018 -
Tree-to-tree Neural Networks for Program Translation
Xinyun Chen, Chang Liu, Dawn Song. 2018 -
Human-level performance in first-person multiplayer games with population-based deep reinforcement learning
Max Jaderberg, Wojciech M Czarnecki, Iain Dunning, Luke Marris, Guy Lever, Antonio Garcia Castaneda, Charles Beattie, Neil C Rabinowitz, Ari S Morcos, Avraham Ruderman, Nicolas Sonnerat, Tim Green, Louise Deason, Joel Z Leibo, David Silver, Demis Hassabis, Koray Kavukcuoglu, Thore Graepel. 2018 -
Unsupervised Predictive Memory in a Goal-Directed Agent
Greg Wayne, Chia-Chun Hung, David Amos, Mehdi Mirza, Arun Ahuja, Agnieszka Grabska-Barwinska, Jack Rae, Piotr Mirowski, Joel Z Leibo, Adam Santoro, Mevlana Gemici, Malcolm Reynolds, Tim Harley, Josh Abramson, Shakir Mohamed, Danilo Rezende, David Saxton, Adam Cain, Chloe Hillier, David Silver, Koray Kavukcuoglu, Matt Botvinick, Demis Hassabis, Timothy Lillicrap. 2018 -
Relational Deep Reinforcement Learning
Vinicius Zambaldi, David Raposo, Adam Santoro, Victor Bapst, Yujia Li, Igor Babuschkin, Karl Tuyls, David Reichert, Timothy Lillicrap, Edward Lockhart, Murray Shanahan, Victoria Langston, Razvan Pascanu, Matthew Botvinick, Oriol Vinyals, Peter Battaglia. 2018 -
Relational inductive biases, deep learning, and graph networks
Peter W. Battaglia, Jessica B. Hamrick, Victor Bapst, Alvaro Sanchez-Gonzalez, Vinicius Zambaldi, Mateusz Malinowski, Andrea Tacchetti, David Raposo, Adam Santoro, Ryan Faulkner, Caglar Gulcehre, Francis Song, Andrew Ballard, Justin Gilmer, George Dahl, Ashish Vaswani, Kelsey Allen, Charles Nash, Victoria Langston, Chris Dyer, Nicolas Heess, Daan Wierstra, Pushmeet Kohli, Matt Botvinick, Oriol Vinyals, Yujia Li, Razvan Pascanu. 2018 -
Device Placement Optimization with Reinforcement Learning
Azalia Mirhoseini, Hieu Pham, Quoc V. Le, Benoit Steiner, Rasmus Larsen, Yuefeng Zhou, Naveen Kumar, Mohammad Norouzi, Samy Bengio, Jeff Dean. 2017 -
Neural Program Meta-Induction
, (
blog)
Jacob Devlin, Rudy Bunel, Rishabh Singh, Matthew Hausknecht, Pushmeet Kohli. NIPS 2017 -
End-to-end differentiable proving
Tim Rocktäschel, Sebastian Riedel. NIPS 2017 -
pix2code: Generating Code from a Graphical User Interface Screenshot
Tony Beltramelli. 2017 -
A Syntactic Neural Model for General-Purpose Code Generation
Pengcheng Yin, Graham Neubig. 2017 -
A simple neural network module for relational reasoning
Adam Santoro, David Raposo, David G.T. Barrett, Mateusz Malinowski, Razvan Pascanu, Peter Battaglia, Timothy Lillicrap. 2017 -
Learning to Infer Graphics Programs from Hand-Drawn Images
Kevin Ellis, Daniel Ritchie, Armando Solar-Lezama, Joshua B. Tenenbaum. 2017 -
Deep Network Guided Proof Search
Sarah Loos, Geoffrey Irving, Christian Szegedy, Cezary Kaliszyk. 2017 -
Mastering the game of Go without human knowledge
, (blog,
cheat sheet, build your own)
David Silver, Julian Schrittwieser, Karen Simonyan, Ioannis Antonoglou, Aja Huang, Arthur Guez, Thomas Hubert, Lucas Baker, Matthew Lai, Adrian Bolton, Yutian Chen, Timothy Lillicrap, Fan Hui, Laurent Sifre, George van den Driessche, Thore Graepel, Demis Hassabis. Nature 2017 -
Mastering the game of Go with deep neural networks and tree search
David Silver, Julian Schrittwieser, Karen Simonyan, Ioannis Antonoglou, Aja Huang, Arthur Guez, Thomas Hubert, Lucas Baker, Matthew Lai, Adrian Bolton, Yutian Chen, Timothy Lillicrap, Fan Hui, Laurent Sifre, George van den Driessche, Thore Graepel, Demis Hassabis. Nature 2016 -
Towards Deep Symbolic Reinforcement Learning
Marta Garnelo, Kai Arulkumaran, Murray Shanahan. 2016 -
Neural Combinatorial Optimization with Reinforcement Learning
Irwan Bello, Hieu Pham, Quoc V. Le, Mohammad Norouzi, Samy Bengio. 2016 -
Neural Random-Access Machines
Karol Kurach, Marcin Andrychowicz, Ilya Sutskever. 2016 -
Hybrid computing using a neural network with dynamic external memory
Alex Graves, Greg Wayne, Malcolm Reynolds, Tim Harley, Ivo Danihelka, Agnieszka Grabska-Barwińska, Sergio Gómez Colmenarejo, Edward Grefenstette, Tiago Ramalho, John Agapiou, Adrià Puigdomènech Badia, Karl Moritz Hermann, Yori Zwols, Georg Ostrovski, Adam Cain, Helen King, Christopher Summerfield, Phil Blunsom, Koray Kavukcuoglu, Demis Hassabis. Nature 2016 -
RobustFill: Neural Program Learning under Noisy I/O
Jacob Devlin, Jonathan Uesato, Surya Bhupatiraju, Rishabh Singh, Abdel-rahman Mohamed, Pushmeet Kohli. 2017 -
DeepCoder: Learning to Write Programs
Metej Balog, Alexander L. Gaunt, Marc Brockschmidt, Sebastian Nowozin, Daniel Tarlow. ICLR 2017 -
TerpreT : A Probabilistic Programming Language for Program Induction
Alexander L. Gaunt, Marc Brockschmidt, Rishabh Singh, Nate Kushman, Pushmeet Kohli, Jonathan Taylor. 2016 -
Neuro-Symbolic Program Synthesis
Emilio Parisotto, Abdel-rahman Mohamed, Rishabh Singh, Lihong Li, Dengyong Zhou, Pushmeet Kohli. ICLR 2017 -
DeepMath - Deep Sequence Models for Premise Selection
Alex A. Alemi, Francois Chollet, Niklas Een, Geoffrey Irving, Christian Szegedy, Josef Urban. 2017
Resources
Reviews, Papers, and Talks
- Communication in Computer Science
Olivier Danvy, class at Yale-NUS College Singapore
Reading
-
How to Read a Paper
Srinivasan Keshav
Presenting
-
How To Give Strong Technical Presentations
(older version with notes)
Markus Püschel -
How to Give a Great Research Talk
Simon Peyton Jones
Writing
-
How to Write Papers So People Can Read Them
Derek Dreyer -
How to Write a Great Research Paper
(video)
Simon Peyton Jones
Proposals
-
How to Write a Great Research Proposal
Simon Peyton Jones and Alan Bundy -
The Heilmeier Catechism
George H. Heilmeier
Experiments
-
SIGPLAN empirical evaluation checklist
Steve Blackburn, Matthias Hauswirth, Emery Berger, Michael Hicks
Deep Learning (General)
-
Deep Learning World
Collected resources -
Where should I start learning AI?
Parnian-Barekatin, Quora answer -
Deep Learning
Book by Ian Goodfellow, Yoshua Bengio, Aaron Courville -
The Deep Learning Revolution
Christopher Manning, Russ Salakhutdinov -
OpenAI Meta-Learning and Self-Play
Ilya Sutskever -
Deep Learning for Coders
Course at fast.ai -
DeepLearning.ai
Andrew Ng, specialization on Coursera -
Reinforcement learning
David Silver, class at UCL
ML & Symbolic Reasoning
-
Machine Learning for Theorem Proving
Class at University of Innsbruck -
Neural Abstract Machines & Program Induction
, (v1 2016)
Workshop at ICML/NIPS -
Neural-Symbolic Learning and Reasoning
Workshop series -
Program Synthesis in 2017-18
Alex Polozov