Sum-Product Loop Programming: From Probabilistic Circuits to Loop Programming
暂无分享,去创建一个
Recently, Probabilistic Circuits such as Sum-Product Networks have received growing attention, as they can represent complex features but still provide tractable inference. Although quite successful, unfortunately, they lack the capability of handling control structures, such as for and while loops. In this work, we introduce Sum-Product Loop Language (SPLL), a novel programming language that is capable of tractable inference on complex probabilistic code that includes loops.
SPLL has dual semantics: every program has generative semantics familiar to most programmers and
probabilistic semantics that assign a probability to each possible result. This way, the programmer can describe how to generate samples almost like in any standard programming language. The language takes care of computing the probability values of all results for free at run time.
We demonstrate that SPLL inherits the beneficial properties of PCs, namely tractability and differentiability, while generalizing to other distributions and programs, and retains substantial computational similarities.