No.113 Meta-Programming for Statistical Machine Learning


NII Shonan Meeting Seminar 113


May 21, 2018 (Monday)

  • 15:00 – Hotel Check In (early check-in from 12:00 is negotiable if informed in advance)
  • 19:00 – 21:00: Welcome Reception

May 22, 2018 (Tuesday)

  • 07:30 – 09:00: Breakfast
  • 09:00 – 09:15: Welcome, Overview, Administrative issues
  • 09:15 – 10:30: Self-introductions (Slides: Luke,Ohad)
  • 10:30 – 11:00: Tea break
  • 11:00 – 11:50: Self-introductions
  • 11:50 – 12:00: Group photo
  • 12:00 – 13:30: Lunch
  • 13:30 – 15:15: ML Tutorial (Jennifer Neville) slide
  • 15:15 – 15:45: Tea break
  • 15:45 – 17:00: Probabilistic Programming Tutorial (Rob Zinkov) slide
  • 17:00 – 18:00: Discussion
  • 18:00 – 19:30: Dinner

May 23, 2018 (Wednesday)

  • 07:30 – 09:00: Breakfast
  • 09:00 – 10:30: Probabilistic Metaprogramming Tutorial (Tiark Rompf)
  • 10:30 – 11:00: Tea break
  • 11:00 – 12:00: Crystallizing Future Directions (Ken Shan)
  • 12:00 – 13:30: Lunch
  • 13:30 – 15:00: Repository (Ken Shan)
  • 15:00 – 15:20: Coffee break
  • 15:20 – 16:30: Verifiable and Reusable Metaprograms for Bayesian Inference (Praveen Narayanan) slide
  • 16:50 – 18:00: Inference Programming (Adam Scibior)
  • 18:00 – 19:30: Dinner

May 24, 2018 (Thursday)

  • 07:30 – 09:00: Breakfast
  • 09:00 — 12:00: Correctness (Ken Shan, Ohad Kammar, Rob Zinkov)
  • 10:30 – 11:00: Tea break
  • 12:00 – 13:30: Lunch
  • 14:00 – 20:30: Excursion and Banquet (Banquet Restaurant is Minemoto)

May 25, 2018 (Friday)

  • 07:30 – 09:00: Breakfast
  • 09:00 — 10:50: Disintegration with more general measures (Luke Ong, Ken Shan) Luke’s slide
  • 10:50 – 11:20: Tea break
  • 11:20 – 12:00: Final panel discussion: what’s next
  • 12:00 – 13:30: Lunch


Transportation and Local Information

If you want to announce your arrival/departure flight and time and arrange to share transportation to/from Shonan together, please make a comment to this post. Comments are open.

Access to Shonan Village

See Shonan Village Home Page


Statistical machine learning (ML) is a broad branch of machine learning aiming at drawing conclusions and learning from inherently uncertain data, using “ideas from probability theory and statistics to address uncertainty while incorporating tools from logic, databases,  and programming languages to represent structure.” (Getoor, Taskar, 2007).

Just as importance of ML increases, the scalability problem of developing ML applications becomes more and more pressing. Currently, applying a non-trivial machine learning task requires expertise both in the modeled domain as well as in probabilistic inference methods and their efficient implementations on modern hardware. The tight coupling between the model and the efficient inference procedure hinders making changes and precludes reuse. When the model changes significantly, the inference procedure often has to be re-written from scratch.

Probabilistic programming — which decouples modeling and inference and lets them be separately written, composed and reused — has the potential to make it remarkably easier to develop new ML tasks and keep adjusting them, while increasing confidence in the accuracy of the results. That promise has been recognized by the U.S. Defense Advanced Research Projects Agency (DARPA), which has initiated the broad program Probabilistic Programming for Advancing Machine Learning (PPAML),
started in March 2013 and running through 2017. The range of targeted applications can be seen from PPAML Challenge problems.

Developing the potential of probabilistic programming requires applying the recent insights from programming language (PL) research such as supercompilation from metaprogramming (with very promising results shown in Lingfeng Yang et al., AISTATS 2014). A surprising challenge is correctness: it turns out that a number of well-known and widely-used libraries and systems such as STAN may produce patently wrong results on some problems (as well-demonstrated in Hur et al., FSTTCS 2015).

Hand-in-hand with the interest of ML researchers in programming language topics (evidenced from PPAML PI meetings at which one of the organizers participated) is the growing interest of programming language researchers in probabilistic programming — if the record attendance of the first two POPL-affiliated workshops Probabilistic Programming Semantics are of any indication.

We propose a discussion-heavy workshop to promote the evident and growing interest of the developers of ML/probabilistic domain-specific languages in program generation and transformation, and programming language researchers in ML applications. We expect many participants come from PPAML teams and participants of the PPS workshops. The Shonan meeting coincides with the conclusion of PPAML program. We hope it to be a venue to discuss the not-yet-answered challenges and the issues raised at PPS workshops, but in more depth
and detail.

We anticipate the workshop participants to consist of three groups of people: Statistical Machine Learning, researchers and practitioners building, using, and adjusting probabilistic learning systems, and PL researchers with some connections to ML.

  • Probabilistic programming is coming of age and could really help real ML people in some cases. Selling points: correctness by construction (ML codes are very hard to debug and test) and some consistency in performance (saves time in many optimizations and
    writing custom code).

  • Many implementors of probabilistic languages and libraries come to realize the importance of meta-programming and PL research in general (determining the validity of optimizations/transformations, knowledge of transformation techniques and good ways/algorithms of applying them, knowing tools like Lightweight Modular Staging (LMS), partial evaluators, staged languages).
  • Treating programs as subjects of probabilistic computation, in the sense of learning facts about programs from data, i.e., learning from “big code”.

Our goal is to bring three groups together and see what probabilistic programming can do more, and mainly how we can apply advances in PL and meta-programming more consciously and profitably (and if we cannot, what the PL community should be investigating then).

Just as the two Shonan meetings (No.2012-4 “Bridging the Theory of Staged Programming Languages and the Practice of High-Performance Computing” and No. 2014-7 “Staging and High-Performance Computing: Theory and Practice”) aimed to solicit and discuss real-world
applications of assured code generation in HPC (High-Performance Computing) that would drive PL research in meta-programming, we propose a similar direction for ML and meta-programming.

To promote mutual understanding, we plan for the workshop to have lots of time for discussion. We will emphasize tutorial, brainstorming and working-group sessions rather than mere conference-like presentations.


  • Oleg Kiselyov, Tohoku University, Japan
  • Tiark Rompf, Purdue University, USA
  • Jennifer Neville, Purdue University, USA
  • Yukiyoshi Kameyama, University of Tsukuba, Japan