Writing
19 posts on machine learning, statistics, optimisation and programming, newest first.
2027
2026
-
INLA Part 1: Just keep approximating until you get the thing you want
Deriving the central results required to understand INLA, and getting us ready to implement it for some model building in later posts
- bayesian
- inla
-
Optimisation Under Uncertainty Part 2: An LP reformulation aside
A slight diversion: how to reformulate a linear program with a nested maximisation using duality
- optimisation
- linear-programming
- duality
- mathematics
- reformulation
-
Optimisation Under Uncertainty Part 1: Murphy's Law
Introduction to robust optimisation under uncertainty. Part 1 covers theoretical foundations and the trade-offs between optimality and robustness.
- optimisation
- robustness
- uncertainty
- linear-programming
- mathematics
2025
-
Building Non-Standard Regression Models with JAX
Using JAX's automatic differentiation to train a Zero-Inflated Generalised Poisson regression model
- jax
- regression
- count-data
- ZIP
- poisson
- maximum-likelihood
-
Online Bayesian Learning Part 4: Non-stationary data and R-VGA
Adapting R-VGA to work in non-stationary environments.
- bayesian
- neural-networks
- r-vga
- non-stationary
- adaptive-learning
-
Online Bayesian Learning Part 3: R-VGA
Deriving and implementing the R-VGA algorithm for online learning with neural networks on streaming binary classification data
- bayesian
- neural-networks
- variational-inference
- jax
- equinox
- online
- r-vga
-
Online Bayesian Learning Part 2: Bayesian Neural Networks With Variational Inference
A quick detour to introduce variational inference and use it to train a small Bayesian neural network with jax/eqx
- bayesian
- neural-networks
- variational-inference
- jax
- equinox
-
Online Bayesian Learning Part 1: Exact recursive inference
Part 1 of a series of posts looking into the problem of 'online' learning using Bayesian methods
- bayesian
- neural-networks
- variational-inference
- jax
- equinox
- online
2024
-
C++20: SFINAE vs. Concepts
Comparing C++20 Concepts with SFINAE for template constraints. Modern approaches to type checking and compile-time validation.
- cpp
- cpp20
- programming
- concepts
- sfinae
-
Bayesian climbing grades
Bayesian hierarchical model to analyze route setter bias in climbing grades. Uses PyMC to estimate 'true' difficulty accounting for setter variations.
- bayesian
- climbing
- pymc
- statistics
- hierarchical-modeling
2022
-
Bivariate Poisson Regression with Expectation-Maximisation
Modeling correlated count data using bivariate Poisson regression with EM algorithm. Handle overdispersion and correlation in count models.
- poisson
- regression
- em-algorithm
- statistics
- python
-
Cubic Spline Expansions with Logistic Regression
Flexible non-linear regression using cubic spline basis functions. Bayesian approach with PyMC for smooth curve fitting and uncertainty quantification.
- splines
- regression
- bayesian
- pymc
- statistics
-
MIP Knights
Solving the knight's tour problem using Mixed Integer Programming. Explore combinatorial optimization with constraint programming techniques.
- optimisation
- mip
- linear-programming
- algorithms
- python
2020
-
Huber Regression
Robust regression using Huber loss function. Handle outliers and improve model stability with robust statistical methods.
- regression
- robust-statistics
- huber
- machine-learning
- python
-
Quantile Regression
Quantile regression for uncertainty estimation beyond the mean. PyTorch implementation for predicting conditional quantiles.
- quantile
- regression
- statistics
- machine-learning
- pytorch
-
Network Discovery with Mixed Integer Programming
Network topology discovery using Mixed Integer Programming. Apply optimization techniques to infer network structure from observable data.
- networks
- mip
- optimisation
- gurobi
- graph-theory
-
The EM Algorithm Part 2: Censored Linear Regression
Part 2: Applying EM algorithm to censored linear regression. Handle missing data and truncated observations in statistical modeling.
- em-algorithm
- regression
- censored-data
- statistics
- pymc
-
The EM Algorithm Part 1: Gaussian Mixture Models
Part 1: Introduction to EM algorithm with Gaussian Mixture Models. Learn expectation-maximization for unsupervised clustering and density estimation.
- em-algorithm
- gaussian-mixture
- clustering
- statistics
- python