Probabilistic programming makes it easy to represent a probabilistic model as a program. Building an individual model, however, is only one step of probabilistic modeling. The broader challenge of probabilistic modeling is in understanding and navigating spaces of alternative models. There is currently no good way to represent these spaces of alternative models, despite their central role. We present an extension of probabilistic programming that lets each program represent a network of interrelated probabilistic models. We give a formal semantics for these multi-model probabilistic programs, a collection of efficient algorithms for network-of-model operations, and an example implementation built on top of the popular probabilistic programming language Stan. This network-of-models representation opens many doors, including search and automation in model-space, tracking and communication of model development, and explicit modeler degrees of freedom to mitigate issues like p-hacking. We demonstrate automatic model search and model development tracking using our Stan implementation, and we propose many more possible applications.
翻译:概率编程很容易代表概率模型作为程序。 但是, 建立个人模型只是概率模型的一步。 概率模型的更广泛挑战在于理解和浏览替代模型的空间。 目前没有好的方法代表替代模型的这些空间,尽管这些空间具有中心作用。 我们展示了概率模型编程的延伸,让每个程序代表一个相互关联的概率模型网络。 我们为这些多模型的概率模型程序提供了正式的语义,为网络操作收集了高效的算法,并在Stan这种流行性概率编程语言之上树立了一个范例。 这种模型网络代表打开了许多门,包括模型空间的搜索和自动化、模型开发的跟踪和通信以及明确的模型自由度,以缓解诸如p- hacking等问题。 我们用我们的 Stan 实施演示了自动模型搜索和模型开发跟踪,我们提出了更多可能的应用。