Could tell us a little about yourself and about your studies before coming to Imperial?
I am originally from Vancouver, Canada and completed my undergraduate degree in mechanical engineering at the University of British Columbia. I originally got interested in ML and AI after stumbling my way into a data science position at a small tech company after graduating.
What attracted you about the MSc in AI?
I was attracted to the MSc AI as I was looking to pursue a postgraduate degree that would allow me to transition from a career in engineering to one in machine learning by giving me a solid academic foundation in ML and giving me credibility to employers. There are loads of master's programs in machine learning, but most of them are targeted at students with strong prior exposure to either computer science, statistics or both. The MSc AI is unique in that it is designed as a transitional program specifically for students without a background in computer science but who have strong mathematical foundations and a passion for AI.
What did you enjoy the most?
I really enjoyed the blend of theory and practical skills that were taught. I find that I learn best by first learning the mathematical concepts on paper and then through applying them in code, and this was the general delivery structure of all the modules on the MSc. I find programming things myself really helps me visualise things like tensor shapes and dimensions, how things get multiplied, aggregated, transformed, etc., in a way that just looking at equations doesn't. Also, the social aspect of the MSc is fantastic!
What did you find more challenging?
I found the first term quite challenging, as everybody is coming in with different skill levels and exposures to Python, ML, linear algebra, vector calculus, logic, etc., and there are just so many pieces of coursework. But I found that after the first month or two, everybody is kind-of on the same page which is quite remarkable. The first term is sort of like boot camp, but then by the second term everybody is able to learn and program fairly advanced concepts in ML after only a few months ago being barely literate in basic Python. Quite impressive, and a testament to the teaching and quality of the MSc as a whole.
Could you tell us about some of your achievements on the MSc that make you proud?
My team won a prize for our group project, which was pretty cool. We wrote an open-source Python library for simulating data-poisoning attacks in online learning, working with Professor Emil Lupu. I'm also proud of my individual project, even though I realised after submitting it that I made a pretty big mistake in one of the key formulas I derived!
What did you do in your spare time?
I didn't have all that much spare time during the first two terms, but I still had enough time to explore London and go to the pub! Over the Summer term I had a lot more time and got to travel around Europe and visit home. I also found love on the MSc, in the Huxley computer lab of all places! But I guess that wasn't exactly in my spare time...
Could you tell us about your individual project?
My individual project was on sparse Gaussian process approximations and my supervisor was Dr Mark van der Wilk. The individual project was one of the highlights of the MSc, as I really enjoyed that in mine I took a deep dive into the more mathematical side of machine learning. I also got very lucky with my supervisor, whom I loved working under and who pushed me to never settle for a superficial understanding. It's really satisfying to write up your final report and see it all come to fruition, even if you derive your collapsed variational lower bound incorrectly and only realise after you submit!
What have you been doing since you graduated?
I've been working at a super-cool startup in London which focuses on applied generative AI with some really clever people. It's been really nice because the MSc set me up well for the job, yet because of how quickly the field moves, a lot of the technologies we work with basically weren't even invented when I did the MSc, so there is always lots to learn, even in industry! I think ML is a great field to work in if you're the type of person who likes to read lots of papers and keep up with the latest research, 'cause wow does it ever move fast.
Do you have any advice for prospective students?
My first piece of advice would be to get a head start on the Python lessons before term starts, as basically every module and coursework requires writing code in Python, so you'll really make your life a lot easier and set yourself up for success if you have some basic proficiency going into the term. You'll be given access to the Python module before you arrive, to help with this. My second piece of advice would be to focus on taking more fundamental and mathematical modules like Maths for Machine Learning, Computational Optimisation, Probabilistic Inference, etc., as in my opinion these are the core skills that make you a better ML engineer or researcher, and also set you apart from all the people who get Coursera certificates and call themselves ML engineers. The best thing you can get out of the MSc, in my view, is a proper, deep understanding of the mathematical foundations of machine learning—once you have this, you can easily learn more applied concepts and topics on your own. I would say that it's much more important to leave the MSc knowing the difference between first and second order optimisation algorithms and how to factorise joint probabilities than it is to know exactly how image segmentation or word embedding works.