Debugging probabilistic programs

Debugging probabilistic programs
复制标题

调试概率程序

DOI:
10.1145/3088525.3088564
复制
发表时间:
2017
期刊:
Proceedings of the 1st ACM SIGPLAN International Workshop on Machine Learning and Programming Languages
影响因子:
--
通讯作者:
K. McKinley
K. McKinley
中科院分区:
--
文献类型:
--
作者:
Chandrakana Nandi;D. Grossman;Adrian Sampson;Todd Mytkowicz;K. McKinley

文献摘要

被引文献

相似文献

许多应用程序计算估计和不确定的数据。虽然概率编程的进步有助于开发人员构建此类应用程序,但调试它们仍然极具挑战性。概率程序中的新类型错误包括:1)忽略随机变量和训练数据之间的依赖性和相关性,2)选择不当的推理超参数,以及3)不正确的统计模型。在某些语言中,防止这些错误的部分解决方案禁止开发人员显式调用推理。虽然这可以防止某些依赖性错误,但它限制了对推理的组合和控制,并且不能保证不存在其他类型的错误。本文介绍了FLEXI编程模型,它支持在语言中调用推理的结构,并在其他统计计算中重用结果。我们定义了一种新的形式主义的推理与装饰贝叶斯网络,并提出了一个工具,DePP,分析这种表示,以确定上述错误。我们在一系列原型示例上评估DePP,以展示它如何帮助开发人员检测错误。
Many applications compute with estimated and uncertain data. While advances in probabilistic programming help developers build such applications, debugging them remains extremely challenging. New types of errors in probabilistic programs include 1) ignoring dependencies and correlation between random variables and in training data, 2) poorly chosen inference hyper-parameters, and 3) incorrect statistical models. A partial solution to prevent these errors in some languages forbids developers from explicitly invoking inference. While this prevents some dependence errors, it limits composition and control over inference, and does not guarantee absence of other types of errors. This paper presents the FLEXI programming model which supports constructs for invoking inference in the language and reusing the results in other statistical computations. We define a novel formalism for inference with a Decorated Bayesian Network and present a tool, DePP, that analyzes this representation to identify the above errors. We evaluate DePP on a range of prototypical examples to show how it helps developers to detect errors.