JuliaCon 2019 | Gen: A General-Purpose Probabilistic Programming System
Gen: A General-Purpose Probabilistic Programming System with Programmable Inference Built on Julia
This talk introduces a new flexible and extensible probabilistic programming system called Gen, that is built on top of Julia. Gen's extensible set of modeling DSLs can express probabilistic models that combine Bayesian networks, black box simulators, deep learning, structure learning, and Bayesian nonparametrics; and Gen's inference library supports custom algorithms that combine Markov chain Monte Carlo, particle filtering, variational inference, and numerical optimization.
Probabilistic modeling and inference are central to many fields. Probabilistic programming systems aim to make probabilistic modeling and inference techniques accessible to a broader audience, and to make it easier for experts in these techniques to develop more complex applications. A key challenge for wider adoption of probabilistic programming languages is designing systems that are both flexible and performant. This talk introduces Gen, a new probabilistic programming system, built on top of Julia, that includes novel language constructs for modeling and for end-user customization and optimization of inference. Gen makes it practical to write probabilistic programs that solve problems from multiple fields. Gen programs can combine generative models written in Julia, neural networks written in TensorFlow, and custom inference algorithms based on an extensible library of Monte Carlo and numerical optimization techniques. The talk will also present techniques that enable Gen’s combination of flexibility and performance: (i) the generative function interface, an abstraction for encapsulating probabilistic and/or differentiable computations; (ii) domain-specific languages with custom compilers that strike different flexibility/performance tradeoffs; (iii) combinators that encode common patterns of conditional independence and repeated computation, enabling speedups from caching; and (iv) a standard inference library that supports custom proposal distributions also written as programs in Gen. This talk shows that Gen outperforms state-of-the-art probabilistic programming systems, sometimes by multiple orders of magnitude, on problems such as nonlinear state-space modeling, structure learning for real-world time series data, robust regression, and 3D body pose estimation from depth images.
Speaker: Marco Cusumano-Towner
Видео JuliaCon 2019 | Gen: A General-Purpose Probabilistic Programming System канала The Julia Programming Language
This talk introduces a new flexible and extensible probabilistic programming system called Gen, that is built on top of Julia. Gen's extensible set of modeling DSLs can express probabilistic models that combine Bayesian networks, black box simulators, deep learning, structure learning, and Bayesian nonparametrics; and Gen's inference library supports custom algorithms that combine Markov chain Monte Carlo, particle filtering, variational inference, and numerical optimization.
Probabilistic modeling and inference are central to many fields. Probabilistic programming systems aim to make probabilistic modeling and inference techniques accessible to a broader audience, and to make it easier for experts in these techniques to develop more complex applications. A key challenge for wider adoption of probabilistic programming languages is designing systems that are both flexible and performant. This talk introduces Gen, a new probabilistic programming system, built on top of Julia, that includes novel language constructs for modeling and for end-user customization and optimization of inference. Gen makes it practical to write probabilistic programs that solve problems from multiple fields. Gen programs can combine generative models written in Julia, neural networks written in TensorFlow, and custom inference algorithms based on an extensible library of Monte Carlo and numerical optimization techniques. The talk will also present techniques that enable Gen’s combination of flexibility and performance: (i) the generative function interface, an abstraction for encapsulating probabilistic and/or differentiable computations; (ii) domain-specific languages with custom compilers that strike different flexibility/performance tradeoffs; (iii) combinators that encode common patterns of conditional independence and repeated computation, enabling speedups from caching; and (iv) a standard inference library that supports custom proposal distributions also written as programs in Gen. This talk shows that Gen outperforms state-of-the-art probabilistic programming systems, sometimes by multiple orders of magnitude, on problems such as nonlinear state-space modeling, structure learning for real-world time series data, robust regression, and 3D body pose estimation from depth images.
Speaker: Marco Cusumano-Towner
Видео JuliaCon 2019 | Gen: A General-Purpose Probabilistic Programming System канала The Julia Programming Language
Показать
Комментарии отсутствуют
Информация о видео
26 июля 2019 г. 2:28:19
00:13:07
Другие видео канала
Probabilistic ProgrammingWhat's your Favourite Programming Language? (sound check Q) - ComputerphileTutorial: Probabilistic programming - a categorical tutorial (Sam Staton)JuliaCon 2019 | Solving Delay Differential Equations with Julia | David WidmannWill AI Replace Programmers?"New programming constructs for probabilistic AI" by Marco Cusumano-TownerJuliaCon 2019 | Scientific AI: Domain Models with Integrated Machine Learning | Chris RackauckasWhy Julia is the future of programming and you should learn it nowParticle Filter - 5 Minutes with CyrillProbabilistic logic programming and its applications - Luc De Raedt, LeuvenWhat makes Julia so awesome? -Learn Julia 1/n-JuliaCon 2019 | How We Wrote a Textbook using JuliaJuliaCon 2019 | OmniSci.jl: Bringing GPU-accelerated relational database to Julia | Randy Zwitch10 Julia Packages You Should Learn for Data Science (in 2020)Probabilistic Programming: A Modern Bayesian Workflow || Peadar CoyleJuliaCon 2019 | Porting a Massively Parallel Multi-GPU Application to Julia | Ludovic RässThe Julia Programming Language in 2020 (for Data Science)JuliaCon 2018 | The Turing language for probabilistic programming | Hong GeRust: A Language for the Next 40 Years - Carol Nichols