In addition to reading and presenting papers, the course will include a final project. A final project can take the form of implementing, applying, or extending a paper/work. This paper/work can be of your own choosing or can be one of the papers discussed in class. For the final project, a good approach is to limit your idea to a practical domain (e.g. game, music, theorem proving, ...), and then expand as time allows.
Scope
Previous workshop papers should serve as a good model for the amount of work we expect. Here is a page for a previous ICML program induction workshop. Two of those papers are 5-6 pages and apply a few known approaches in a slightly new way (rather than do something totally wild and new). You can ignore the longer papers on that workshop page.
-
Towards Mixed Optimization for Reinforcement Learning with Program Synthesis
https://arxiv.org/pdf/1807.00403.pdf -
Program Language Translation Using a Grammar-Driven Tree-to-Tree Model
https://arxiv.org/pdf/1807.01784.pdf
Format
You will submit a write-up about your work. We will use NeurIPS format. It's a nice, wide one-column format and not as dense as POPL format. We will expect something like 4-8 pages.
Important Dates
- November 3, 2020: Project Pitches (see the event page for instructions).
- December 10 & 11, 2020: Final project presentations.
- December 15: Final project write-ups due.
Ideas
- Extend DeepBach to extract rules of harmonizing in the learned style.
- Use the Alpha Zero or muZero technique to learn how to play a new game. Can the resulting policies be interpretable?
- Design your own language with differentiation by relaxation.
-
Write an expert systems on the topic of your choice, perhaps on top a truth-maintenance system or belief maintenance system. For examples:
- mining medical knowledge graphs like mediKanren
- solving a search problem (like theorem proving) by neural-guided search
- a reflective meta-deliberator for thinking and decision making
- a reflective solver of Bongard problems
- Write a bijective compiler from symbolic to neural representations and back. Experiment with operations on the neural representation and how they translate back and forth.
- What does it mean to learn to communicate? How can we bootstrap communication? Contrast old school and deep learning systems.
- Implement your own mechanisms for engineering robustness by controlled hallucinations.
- Explore proof by reflection in modern proof assistants such as Coq and Agda. How foolproof are they compared to FOL?
- How to organize a fleet of social agents?
- How to verify/certify machine learning?
- How to use machine learning in theorem proving? Perhaps be inspired by GamePad.
- Explore a problem via probabilistic programming. For example: https://rt.live/us/MA shows the curve for COVID-19 in MA.
- ... let's talk!
Pro tips
- If you need access to a GPU, you can use the excellent FAS RC.