Automatic Alignment in Higher-Order Probabilistic Programming Languages

被引:1
|
作者
Lunden, Daniel [1 ]
Caylak, Gizem [1 ]
Ronquist, Fredrik [2 ,3 ]
Broman, David [1 ]
机构
[1] KTH Royal Inst Technol, EECS & Digital Futures, Stockholm, Sweden
[2] Swedish Museum Nat Hist, Dept Bioinformat & Genet, Stockholm, Sweden
[3] Stockholm Univ, Dept Zool, Stockholm, Sweden
基金
瑞典研究理事会;
关键词
Probabilistic programming; Operational semantics; Static analysis;
D O I
10.1007/978-3-031-30044-8_20
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Probabilistic Programming Languages (PPLs) allow users to encode statistical inference problems and automatically apply an inference algorithm to solve them. Popular inference algorithms for PPLs, such as sequential Monte Carlo (SMC) and Markov chain Monte Carlo (MCMC), are built around checkpoints-relevant events for the inference algorithm during the execution of a probabilistic program. Deciding the location of checkpoints is, in current PPLs, not done optimally. To solve this problem, we present a static analysis technique that automatically determines checkpoints in programs, relieving PPL users of this task. The analysis identifies a set of checkpoints that execute in the same order in every program run-they are aligned. We formalize alignment, prove the correctness of the analysis, and implement the analysis as part of the higher-order functional PPL Miking CorePPL. By utilizing the alignment analysis, we design two novel inference algorithm variants: aligned SMC and aligned lightweight MCMC. We show, through real-world experiments, that they significantly improve inference execution time and accuracy compared to standard PPL versions of SMC and MCMC.
引用
收藏
页码:535 / 563
页数:29
相关论文
共 50 条
  • [1] Environmental Bisimulations for Probabilistic Higher-order Languages
    Sangiorgi, Davide
    Vignudelli, Valeria
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2019, 41 (04):
  • [2] Environmental Bisimulations for Probabilistic Higher-Order Languages
    Sangiorgi, Davide
    Vignudelli, Valeria
    [J]. ACM SIGPLAN NOTICES, 2016, 51 (01) : 595 - 607
  • [3] Definitional interpreters for higher-order programming languages
    Reynolds, John C.
    [J]. Higher-Order and Symbolic Computation, 1998, 11 (04): : 363 - 397
  • [4] Higher-order logic programming languages with constraints: A semantics
    Lipton, James
    Nieva, Susana
    [J]. TYPED LAMBDA CALCULI AND APPLICATIONS, PROCEEDINGS, 2007, 4583 : 272 - +
  • [5] Hobbits for Haskell: A Library for Higher-Order Encodings in Functional Programming Languages
    Westbrook, Edwin
    Frisby, Nicolas
    Brauner, Paul
    [J]. ACM SIGPLAN NOTICES, 2011, 46 (12) : 35 - 46
  • [6] Hobbits for Haskell: A Library for Higher-Order Encodings in Functional Programming Languages
    Westbrook, Edwin
    Frisby, Nicolas
    Brauner, Paul
    [J]. HASKELL 11: PROCEEDINGS OF THE 2011 ACM SIGPLAN HASKELL SYMPOSIUM, 2011, : 35 - 46
  • [7] On Higher-Order Probabilistic Subrecursion
    Breuvart, Flavien
    Dal Lago, Ugo
    Herrou, Agathe
    [J]. FOUNDATIONS OF SOFTWARE SCIENCE AND COMPUTATION STRUCTURES (FOSSACS 2017), 2017, 10203 : 370 - 386
  • [8] ON HIGHER-ORDER PROBABILISTIC SUBRECURSION
    Breuvart, Flavien
    Dal Lago, Ugo
    Herrou, Agathe
    [J]. LOGICAL METHODS IN COMPUTER SCIENCE, 2021, 17 (04)
  • [9] HIGHER-ORDER LOGIC PROGRAMMING
    MILLER, DA
    NADATHUR, G
    [J]. LECTURE NOTES IN COMPUTER SCIENCE, 1986, 225 : 448 - 462
  • [10] On the Expressive Power of Programming Languages for Generative Design The Case of Higher-Order Functions
    Leitao, Antonio
    Proenca, Sara
    [J]. FUSION: DATA INTEGRATION AT ITS BEST, VOL 1, 2014, : 257 - 266