Accelerating Cosmological Simulation with Machine learning

This 10 week project was done with guidance from Dr John Brennan, as part of the SPUR programm in with the Department of Theoretical Physics in Maynooth University.

The core idea of this project was to apply machine learning methods found in image processing and apply them to solve a problem in cosmological simulations. The key insight was that data in images is stored in same way as is data in cosmological simualtions, so in principle you could rip out some cool methods developed in these image processing papers and stick your own data in there. Below is a poster I made as did everyone else engaged in the programme. Code on github.

Download Poster

In the 10 weeks I had to work on this project, I spent the first 3 learning about the intricacies and fundamentals of machine learning and working with simple models made in pytorch (a python library for machine learning stuff) to classify hand drawn digits. I have to point out an exellent "book" hosted on a website which I found was just very well written and gave me a basis from which to build on. I recommend even just reading the first chapter if to get a grasp on machine learning and ideas behind it even if you have no intention of actually working on building stuff with it.

After the 3 weeks I actually started working on making some stuff to potentailly aid these cosmological simulations. I worked on two ideas, mainly because halfway through the first one we noticed that the second one was far superior. So the first bit was to train a neural network on randomly generated data, as opposed to data taken from running a simulation, with the aim of bypassing the time to create real trainig data and get the same results. This has potentail to significantly decrease the time it would take to create a neural network.

Ultimately, the final part of this project was essentially making high resolution data from low resolution data. Now, I didnt get as far as I would have liked with this but at this point I got pleanty out of this project. I have a comically marginal increase in preformance compared to a basine stupid simple method, but I can technically say that I got an improved result, however small it is.

Below I'll link some cool papers I had the chance to read while developing this projcet.