This is a draft for a Gen tutorial. Gen is a general-purpose probabilistic programming system, embedded in Julia.
Overview:
In Part 1 I start by recalling the definition of the Chinese Restaurant Process (CRP) and a mixture model based on it.
Then, in Part 2, I proceed with an approximate inference model - mostly to get comfortable with Gen. I plan on presenting more sophisticated models, as described in (Neal, 2000), for instance, and aim more for performance in Part 3.
(Finally, in Part 3, I will use a MH approach from (Neal, 2000) to solve the inference problem. This is under heavy construction and in its earliest stage...)
The notebooks don't always render right on Github; here are links to the notebooks in Jupyter's "nbviewer":
--
Fig 1: Table assignments. Left,Middle: Table assignments plotted in blue and the number of expected tables at time t plotted in green. Right: histogram showing the number of customers per table.
--