Charles River Analytics Inc., developer of intelligent systems solutions, has released Figaro™ 5.0, a probabilistic programming language that helps modelers effectively reason, learn, and make decisions in the face of uncertainty.
Probabilistic reasoning lets us manage decision-making under uncertainty by inferring past events that led to the current situation and forecasting the future. Although probabilistic reasoning systems for simple models have existed for many years, creating more complex models has been difficult due to the need to develop representations reasoning, and learning algorithms. Probabilistic programming addresses this problem by providing a general-purpose high-level programming language to represent models, along with reasoning and learning algorithms that automatically work for models represented in the language.
In probabilistic programming, a program describes a process for generating values of variables in the model. This process can have both random and deterministic steps. Figaro is an expressive language for representing these processes, embedded in the Scala programming language. Figaro also comes with an extensive suite of reasoning and learning algorithms. This means that the user can create an extremely wide range of probabilistic models in Figaro and reason and learn with these models efficiently.
“Reasoning under uncertainty requires taking what you know and inferring what you don’t know,” explained Dr. Avi Pfeffer, Chief Scientist at Charles River and author of the book Practical Probabilistic Programming. “Probabilistic reasoning is a well-established approach for reasoning under uncertainty. Typically, we create a probabilistic model over all the variables we’re interested in, observe the values of some of these variables, then query the model for the values of other variables. A number of approaches exist to handle this, and new approaches are being developed. Figaro is designed to help build and reason with this wide range of probabilistic models.”
Figaro gives the modeler expressive tools to create dynamic model types. Our probabilistic programming language supports rich probabilistic model development and provides reasoning algorithms to draw useful conclusions from the available “noisy” evidence.
Our latest Figaro release includes new features, such as a new lazy structured factored inference (LSFI) algorithm. The LSFI algorithm supports inference on large and possibly infinitely recursive models that combine discrete and continuous variables. LSFI is believed to be the only algorithm that works on these large models. Given a query, LSFI produces lower and upper bounds that converge to the answer to the query.
Figaro 5.0 also includes an improvement to the Metropolis-Hastings algorithm, running almost twice as fast as the previous version. It also incorporates a debugging tool that can be used to visualize and infer with Figaro programs.
Figaro is free and is released under an open-source license.