I'm a PhD student in the Machine Learning Group at Cambridge, supervised by Rich Turner. I'm generally interested in probabilistic modelling and (approximate) inference, and am particularly fond of Gaussian processes. Like lots of other people, I suspect probabilistic programming is going to become increasingly important in the coming years, and am currently finishing up some work on how Gaussian processes fit in this picture.

The above feeds directly into my work on probabilistic machine learning in climate science, which addresses combining the predictions of ensembles of GCMs in a sensible way, and the requirements that this task places on statistical weather modelling.

Gaussian process probabilistic programming (GPPP) is a term I've coined for the work I'm doing to re-design the way that we work with GPs in a practical sense. There will be a substantial technical report available here before the end of 2018 explaining what this is all about. In the mean time, I presented the high-level aspects of this work at ProbProg and JuliaCon.

GPAR is a multi-output Gaussian process-based regression model. It's simple, scalable by GP standards, and seems to work really well in practice. At the time of writing we haven't published our code (it's a mess), but there is this gist which provides a partial reproduction.

MPhil Thesis on approximate variational inference in Gaussian processes when there is circulant structure present in the pseudo-point covariance matrix. The corresponding poster was presented to the course's industrial sponsors.

An extension of the above MPhil thesis was accepted for poster presentation at the NIPS workshop on Advances in Approximate Bayesian Inference (Barcelona, 2016).

Conditioning in Gaussians is an Affine Transform. A (very) short presentation on a cute result that I initially found surprising. This presentation is rather terse, but the GPPP work discussed above relies on it, so a more thorough explanation of this result will be available when that work is available. Many thanks to Wessel Bruinsma for sanity checking this result.

Learning to Learn: a presentation written and presented jointly with Siddharth Swaroop. Here we review a couple of themes in the nebulously-defined sub-field of ML known as "Learning to Learn" or "Meta-Learning". This presentation is not intended to provide extensive detail for any particular work, but rather to frame two research themes in the area of Learning to Learn in a concise manner.

- Stheno.jl is a Julia implementation of my GPPP work. It's a WIP, but makes working with GPs in problems involving multiple related processes signficantly more straightforward than traditional GP packages.
- Nabla.jl is a Reverse-Mode automatic differentiation (RMAD) package written in Julia, of which I am the primary author. The majority of the initial implementation of this package was undertaken in the first half of 2017 whilst working for Invenia Labs (Cambridge, UK), but development is on-going. We have focused on optimising linear algebra (e.g. chol, (log)det, \, / etc) and higher-order functions (e.g. broadcast, map, mapreduce etc) as these have not yet received as much attention in the Julia community as would be ideal. There is an on-going effort in the Julia community to improve native Julia support and to converge upon a single native RMAD package; to assist with this effort Wessel and I have separated out the distinct aspects of Nabla.jl into two separate packages:
- FDM.jl (primarily Wessel's work) contains all of the finite-differencing functionality that we use for testing our reverse-mode sensitivity implementations.
- DiffLinearAlgebra (primarily my work) contains all of the linear-algebra sensitivities we wrote. One can import these in a similar manner to the way one can import gradient expressions from DiffRules.jl.

- NormalisingFlows.jl is a WIP that I pulled together to work with Normalising Flows (see this and this and this). It basically works for simple problems / models, but I've not really tried it out on large problems. There's quite a lot to be done here, and I intend to return to it at some point soon.

This short note provides a very brief introduction to existing work on probabilistic approaches to paleoclimate reconstruction, with a focus on ice cores. As highlighted in the note, it's both a WIP, and is as much for my benefit as anyone else's.