In the info for prospective students, I stated that "I'm looking for students with solid background in both math and coding". Some of you might wonder what does "solid background" means in a quantitative sense, or you might be wondering -- am I well-prepared for ML PhD in terms of technical skills?
Well, you'll never be **perfectly** prepared, so you should not be scared away that fast. However, to give you a self-assessment of "readiness", in below I provide a list of papers that I've co-authored for "testing" your math skills, and a list of code that I've contributed to for "testing" your coding skills. The idea is NOT to look at them in detail, you should NOT spend > 10mins on each of them. Instead, the idea is for you to quickly see which "technical level" you are happy with.
Level 1: http://proceedings.mlr.press/v70/li17a.html (need basic understanding of neural networks and probability)
Level 2: https://arxiv.org/abs/1705.07107 (need to be comfortable in playing probability rules and linear algebra)
Level 3: https://arxiv.org/abs/1806.02390 (need good understanding on probability theory)
Level 4: https://arxiv.org/abs/2006.16531 (this one is closer to traditional stats)
Level 1: https://github.com/YingzhenLi/test_learning_rates (simple optimiser coded up from scratch and tested on toy problems)
Level 2: https://github.com/YingzhenLi/SteinGrad (implemented a proposed ML approach and some experiments)
Level 3: https://github.com/deepgenerativeclassifier/DeepBayes (excluding the cleverhans package, the purpose is to automate a large-scale empirical study with > 1000 experiments)
Level 4: https://github.com/microsoft/bayesianize (the idea is to build a wrapper for a proposed approach, so that users can use it in a way like using Keras high-level API)
? (you can ask me what would Level 5 look like)
You see, the Level 4 items are from my latest works (2020-2021) and this is after 7 years since I started doing ML research. So don't worry too much if you feel you are not at say Level >2 for the technical skills -- my goal is to train my PhD students to reach Level >=3 at the end of their 2nd year.
However, if you feel not very comfortable even when looking at Level 1 items in both lists, then I would suggest you to do a taught Master in AI/ML first. For example, Imperial has an Msc AI program, and I will be teaching ML courses there.
If you feel you are somewhere between Level 1 & 2 but not sure how research in ML feels like, consider applying for the MRes AI & ML program to get a 1-year research project experience, and I will be supervising projects there.