A selection of example projects I've worked on can be found below.
My thesis for the MPhil in Machine Learning and Machine Intelligence at the University of Cambridge.
When learning to complete a task, online Reinforcement Learning (RL) techniques typically require hundreds-of-thousands or millions of interactions with the environment. In many scenarios, however, this is likely to be too dangerous or too expensive. Offline RL methods attempt to learn using static datasets, without any further interaction with the real environment. A subset of offline methods are those which learn a model of the environment from the static data, with which an RL agent can interact safely. However, such techniques frequently fail due to distributional shifts - rapid deterioration in model performance when used outside of the training distribution. I applied the Risk Extrapolation (REx - Arxiv) domain-generalisation technique in an attempt to improve the out-of-distribution performance of environment models. This was observed to improve agent training in certain cases, especially when used in concert with uncertainty quantification techniques.
My thesis can be downloaded here.
This project was conducted for the Advanced Machine Learning module of the MPhil in Machine Learning and Machine Intelligence at the University of Cambridge.
In their 2015 paper (Arxiv), Blundell et al. proposed the Bayes by Backprop algorithm for performing Bayesian inference on the weights of a Neural Network. Rather than point estimates, posterior distributions are learned for the weights. The goal of training is thus to learn distributions that make correct and confident decisions in regions of input space observed during training, whilst expressing appropriate uncertainty in unfamiliar regions. We replicated the algorithm and experiments presented by Blundell et al. using PyTorch, and additionally explored the classification accuracy of adversarial MNIST examples (generated using the fast gradient sign method proposed by Goodfellow et al., Arxiv), finding that Bayesian Neural Networks (BNN) were consistently and significantly more robust than DNNs across various perturbation magnitudes.
The report, which achieved a score > 70 %, can be downloaded here.
This project was conducted for the Designing Intelligent Interactive Systems module of the MPhil in Machine Learning and Machine Intelligence at the University of Cambridge.
The report, which achieved a distinction grade, can be downloaded here.
This project was conducted for the Machine Learning in the Physical World module of the MPhil in Machine Learning and Machine Intelligence at the University of Cambridge.
I used my background and passion for engineering in the energy industry to formulate the problem statement, and my software, modelling, and data science skills to lead the execution of the project with a fantastic team.
The report achieved an A+, with the assessors commenting “All in all, the project was a tour de force.” It can be downloaded here.
The aim of the project was to train object detection models on video footage of calves within an enclosed, undercover rearing area. It was demonstrated that by performing transfer learning with TensorFlow using a relatively small selection of manually tagged frames, models able to detect calves, their heads and shelter entrances could be developed. The trained models detected around 90 % of objects in a frame on average, and were used to generate metrics detailing: the number of calves in view over a given period of time; the number of these that were within a shelter; and the number with their heads low to the ground – a potential indicator of illness.
The full capstone project report can be downloaded here.