Presentation: Probabilistic Programming from Scratch
Share this on:
What You’ll Learn
- Gain a deeper understanding of how Probabilistic Programming can be used to help engineers solve problems around incomplete or partial data.
- Learn a new programming paradigm using Python and PyMC3.
- Hear how Probability Programming is being used in places like Facebook, Twitter, and Google in time series forecasting systems.
Abstract
This talk is for anyone who deals with real world data. Such data is always incomplete or imperfect in some way. Bayesian inference is a framework that allows us to draw conclusion from that data. And despite a reputation for mathematical and computational complexity, you don’t need a statistics background to understand Bayes at a conceptual level. We’ll develop that understanding by building a lightweight probabilistic programming system from scratch with simple Python. We’ll use the code we write to solve two real data problems: an A/B test and the German Tank problem. We’ll also look at how we’d solve those problems using PyMC3, a much more powerful, fully-featured probabilistic programming system.
What do you want someone to leave your talk with?
The audience will leave with a strong non-mathematical intuition for how Bayesian inference allows us to quantify the strength of conclusions drawn from real-world data. They’ll hopefully be excited to solve other toy problems with the tool we put together during the talk, and keen to check out PyMC3.
This talk is perhaps most useful for people who deal with real world data and face concrete statistical problems. But Bayesian inference provides a powerful day-to-day mental model for thinking about data and belief. And in keeping with the CS track, this talk will be an introduction to a new programming language paradigm for some. So I hope it will be at least interesting to a very wide audience!
Is probabilistic programming a real thing? Can you give me an example of where it's being used today?
Yes, it's a real thing! The most prominent examples of tech companies using these ideas in the real world are Facebook's Prophet time series forecasting system (which I'll discuss in the talk), and Uber's release of Pyro, an open source deep probabilistic programming system built on top of PyTorch. And Google are now getting involved with Tensorflow Probability
What is the level of experience someone attending this talk should have?
This might seem like a talk about statistics, mathematics and computer science. But my goal is that everyone who can write a for loop will understand everything we do. I attempt to ensure this by implementing things from scratch, and choosing a Bayesian inference algorithm that is particularly transparent and non-mathematical. I happen to use Python a little in this talk, but it's not essential that you can code in Python. And very importantly: no mathematics is required!
Similar Talks

Tracks
-
Microservices: Patterns & Practices
Evolving, observing, persisting, and building modern microservices
-
Developer Experience: Level up Your Engineering Effectiveness
Improving the end to end developer experience - design, dev, test, deploy, operate/understand. Tools, techniques, and trends.
-
Modern Java Reloaded
Modern, Modular, fast, and effective Java. Pushing the boundaries of JDK 9 and beyond.
-
Modern User Interfaces: Screens and Beyond
Zero UI, voice, mobile: Interfaces pushing the boundary of what we consider to be the interface
-
Practical Machine Learning
Applied machine learning lessons for SWEs, including tech around TensorFlow, TPUs, Keras, Caffe, & more
-
Ethics in Computing
Inclusive technology, Ethics and politics of technology. Considering bias. Societal relationship with tech. Also the privacy problems we have today (e.g., GDPR, right to be forgotten)
-
Architectures You've Always Wondered About
Next-gen architectures from the most admired companies in software, such as Netflix, Google, Facebook, Twitter, Goldman Sachs
-
Modern CS in the Real World
Thoughts pushing software forward, including consensus, CRDT's, formal methods, & probalistic programming
-
Container and Orchestration Platforms in Action
Runtime containers, libraries, and services that power microservices
-
Finding the Serverless Sweetspot
Stories about the pains and gains from migrating to Serverless.
-
Chaos, Complexity, and Resilience
Lessons building resilient systems and the war stories that drove their adoption
-
Real World Security
Practical lessons building, maintaining, and deploying secure systems
-
Blockchain Enabled
Exploring Smart contracts, oracles, sidechains, and what can/cannot be done with blockchain today.
-
21st Century Languages
Lessons learned from languages like Rust, Go-lang, Swift, Kotlin, and more.
-
Empowered Teams
Safely running inclusive teams that are autonomous and self-correcting