Seoul, South Korea
Mon, Jul 6, 2026 · 9:00 AM – 11:30 AM KST · Hall D2
Philipp Hennig |
Marvin Pförtner |
Tim Weiland |
Tübingen AI Center, University of Tübingen
Abstract
Machine learning is the process of estimating latent representations or variables from finite data. If the data is insufficient, this inference process leaves a finite estimation error. Probabilistic (Bayesian) machine learning attempts to capture this empirical uncertainty in a probability distribution.
But what actually happens inside of a Learning Machine, the computational side of ML, is invariably the solution of a numerical problem: Optimisation for deep learning, solving differential equations for diffusion, flow matching, and scientific simulation, or even just (large-scale, approximate) numerical linear algebra. These numerical tasks have no analytic solution in reach. The computational resources are insufficient, and so the computation leaves a finite computational error. Probabilistic numerical methods attempt to capture this computational uncertainty in a probability distribution.
By matching the mathematical modelling language of the empirical and the computational side of machine learning in this way, probabilistic numerical methods open new opportunities for computational savings, and new functionality in the ML stack: Computational and data uncertainty can be controlled in relation to each other, and information from data can flow "backwards" through a computation to solve inverse problems. A growing research community within ML is developing this toolchain, typically by building on established, highly efficient, classic numerical methods.
The tutorial is split in three parts. We will start with a simple worked example to establish key concepts and patterns. A second part will generalise these insights into a design pattern across a large class of numerical tasks. Finally, a hands-on code demo will demonstrate how probabilistic numerical methods work in practice.
The full tutorial slides are available here:
This repository accompanies the hands-on part of the tutorial. The demos are implemented in Julia as Pluto notebooks.
-
Install Julia (version
1.10or newer). -
Install DrWatson and Pluto into your global Julia environment. Pluto launches the notebooks, and each notebook activates this project via DrWatson's
@quickactivate— so both must be available outside the local environment:julia -e 'using Pkg; Pkg.add(["DrWatson", "Pluto"])' -
Clone this repository and instantiate the project environment:
git clone https://github.com/probabilistic-numerics/ICML2026Tutorial.git cd ICML2026Tutorial make instantiate # or: julia --project=. -e 'using Pkg; Pkg.instantiate()'
-
Launch the live demo:
make demo
This opens
notebooks/live_demo.jlin Pluto. To explore the other notebooks, start Pluto directly (julia -e 'using Pluto; Pluto.run()') and open them from the file browser.The
maketargets invokejulia +1.12to match the checked-inManifest.toml. If yourjuliais a different version, run the commands shown in the recipes directly (or edit theMakefile).
The notebooks/ directory contains the worked examples used throughout the tutorial:
| Notebook | Topic |
|---|---|
notebooks/live_demo.jl |
Live-coded demo: from kernel regression to probabilistic PDE solvers — 2D harbor pollutant source inversion (Vecchia GMRF + Latte/INLA), through to space–time inference |
notebooks/cpu.jl |
Worked example: a probabilistic-numerical CPU simulation |
notebooks/pnmethods/linsys.jl |
Probabilistic linear solvers |
notebooks/pnmethods/quad.jl |
Probabilistic numerical integration (Bayesian quadrature) |
notebooks/pnmethods/opt.jl |
Probabilistic optimisation |
notebooks/pnmethods/ode.jl |
Probabilistic ODE solvers |
notebooks/pnmethods/pde.jl |
Probabilistic PDE solvers |
Shared functionality lives in the ProbNumTutorialICML2026 package under src/.
If you find this tutorial useful, please cite it as:
@misc{Hennig2026ProbNumTutorialICML,
author = {Hennig, Philipp and Pförtner, Marvin and Weiland, Tim},
title = {{P}robabilistic {N}umerics --- Computation is {M}achine {L}earning},
howpublished = {Tutorial at the International Conference on Machine Learning (ICML) 2026},
year = {2026},
month = {7},
address = {Seoul, South Korea},
}This project is licensed under the terms of the MIT License.